From patchwork Wed Aug 9 13:11:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shengyu Qu X-Patchwork-Id: 1819318 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.a=rsa-sha256 header.s=selector1 header.b=VkGsCMWv; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RLW1m0Sxbz1yYC for ; Wed, 9 Aug 2023 23:22:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8D5C5867CC; Wed, 9 Aug 2023 15:22:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="VkGsCMWv"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 827948662F; Wed, 9 Aug 2023 15:12:01 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01olkn20815.outbound.protection.outlook.com [IPv6:2a01:111:f403:7010::815]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1B0B68675B for ; Wed, 9 Aug 2023 15:11:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=wiagn233@outlook.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UJrSvn7xXDtyMVaFiyT1uXWoj++Xx1WSCT81I+j22aub1Bl8BbDpgvBX3VBzzlm3ipz2ZIUDOZcUsWMPC8RuJvRDAAP6O7yWq2eWnze2xsEkKPlIdmI7j3deVMczGNJ0qwC19cRfYQ7vUYtGLA7Klcdx0H6Ly8Lp7TFpYFOP3+ARIGnPurw6r547Uj9h21Je3q5a7M2FusE3X8Z5X43FM3qjFUXDFX4RcGH6MWWpFBAinOH66WcAAXW6lpLCtfGyFvPOLgMOKZoqD/BpQQqC6HUOtMFhdBTKl+cI4KUopZ1AqalWtmQAP3269Hn3qUvMWoZFVPw6Pke+HAhmDjwBmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=F4xGc4TRcJj3LeKDxymEH79qm2N2RhicXHdNrE4iDWU=; b=NGC64NrGpgOWhZp/Tk7TFIYkp2YUROksn4MikxxC3yjZSm/njyOYS7MSqLBkUVjqcBjj1mogSWn1zM6nMyFQDI7jo/OLUyprBj+rRJS1A2TztsBDZ8byz9Fna66Gvocxe+kY8eltl/MKQ/SgfEjermthF7Zuyo36OiFu524nddp0HjOTHbQ8IpTTMRkR3zpkPYmVi4+UoRawUXfYTd/tx0I0SU27tZGMsMZhJ1ZuzXGoG99PNfvmLk9sPa4zORY+Oly3bHATyFi15Z8wxnzGVrR53uxyTrunnDecmliXxfVhznmv/w2mQ72vkzHUl+gC0Bts1T24MwGHrc7yFI+Dsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F4xGc4TRcJj3LeKDxymEH79qm2N2RhicXHdNrE4iDWU=; b=VkGsCMWvT1P2ODcuxtbT9bbVUiBzfBo+51qvr1yTUnXDqbFltxyp5/5PBxRmXj5nEjP2hjA0zZfcm3ez3jkQ4k7ehZMSUl/fnSXcW+mzM+xfieh0Wa2Vx2Gkf9t8tp+b8fB+T67yKITO5CCsPZ3QSKilUxA70njWPhw95e0cmjNXdslHA9Qv7fBrAOdpy0loTOMZOGBhKm4lYsOKBt+fO63+U/nymz2PAe3//NHdOsCOXMahdLtP0qyNbwrWj9hJjH0pjHV7Bpfc5Y1Sc9r6IztRYHBx32tM/o2fKqMxaeo2/EAMKdXawp01nBjQS71HQLOENYvduL4Nwp4LG66z3A== Received: from TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:23e::10) by TYCP286MB2227.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:13a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.28; Wed, 9 Aug 2023 13:11:54 +0000 Received: from TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM ([fe80::e67d:f61a:b248:f597]) by TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM ([fe80::e67d:f61a:b248:f597%3]) with mapi id 15.20.6652.026; Wed, 9 Aug 2023 13:11:54 +0000 From: Shengyu Qu To: rick@andestech.com, ycliang@andestech.com, bmeng@tinylab.org, ganboing@gmail.com, yanhong.wang@starfivetech.com, n.shubin@yadro.com, u-boot@lists.denx.de Cc: Shengyu Qu Subject: [PATCH v4 0/3] arch: riscv: jh7110: Correctly zero L2 LIM Date: Wed, 9 Aug 2023 21:11:30 +0800 Message-ID: X-Mailer: git-send-email 2.41.0 X-TMN: [R0mvxBpHjNpxS/IdS+4dsjZM2Ejaip3D] X-ClientProxiedBy: SG2P153CA0001.APCP153.PROD.OUTLOOK.COM (2603:1096::11) To TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:23e::10) X-Microsoft-Original-Message-ID: <20230809131133.28646-1-wiagn233@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TY3P286MB2611:EE_|TYCP286MB2227:EE_ X-MS-Office365-Filtering-Correlation-Id: f9af6fb9-a799-4d67-a17c-08db98da3378 X-MS-Exchange-SLBlob-MailProps: znQPCv1HvwWnnuRaq2x/Z7yS3VNneJrJCsYrBT3WS2YBE3xTMoNxIBOnB1NdrrDdb30iTsDtwM9UUySXW4aXV8D1NWVG3qFhLAT+8SA4TtP2SKn39cpmLGm13EFVGK5vD/mr5YRezUogQtDlicu3RjZAkk0TeIJhM8gOkcyGVLy0zMAg6quPGC0qBNm9Z1oL3Iwtwbt13/r4+5AFPTVqfDAJ7epzNOgei2m8iHqDW3wpnXWAQHHsLr6C2NT2CDAVxVSv4H2Eglh8k5bvxOENTcev7PsQlEszhyl3eeCXfw/BzZad3ePET6UKnfFZ/Cw9hUqqUfBOLopTJMXmT65r1vSiNIHITyl1sFFtusLdJCQjLEKo7rddfA1fegwv7aR7HjUWy6BWydFf43S6RV4t1+BUE+2HUWBPEPvtMwgLtTrSARWKYk1tgQurrG9KO6cPRf+UCbOf5hgjiKq3UO7uVcmma5DJaFlmaDFqVVPZw37oVSz1u0p+aUsky37wr8+v+ObeYJ3xh1f7Wv6zvs5m8kScFAUXT3MgcafaGdO1yJqXbD1cpAWqkBYunUxouigj6YCjlbrsjRAZvm6RtsX4wjrM9ZABg1usWswG5bi8sDBsAq4NiBQCmFkzrmYm/qJ5t672mJgW53JTWmldlitJrf745lbrB0hDXQrR7C5n7v2Z8KE1RIjQ4FUGVRgNbC7o6QH5zvPhqgmqGIERMsOg4FwbiYwc1Mz8AUfpavbr2ag/esVAq0BThv9SbFEJzeJ2ndibMnJzL8M= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jxM0HVMZeZGMks3KPTdHH4BsN6CewqMZaxG9TSQHOhNV1dkARr+1nK+eFYrFhW2VgWd+vv98s+8NUgTmyGzkRlGTjnmD34oVljNCTsCNS5dTMP1A/MaJidw/fGQQUfvAHzvUxX2Sg7OoTP4Bs9wWi8/i2R0+WBwbHinQqUKrmUMl6jLqs5BTzRTfcErbonyk5AyAok5WLhrvuEflaSjGn8jAguBkeIwJ3rqDmYqqgW5tgVnp8qnT5nc2zrItOWNDM2Cgxh/KyRbD9HA76+RCsO95KHU1gSnwy+NMGeSYMcCcI30r9etJrbT44BDERhyXnn4LRTKqhabJQeIXKebSL9X9iI53PqEOzcZuW2fwA+eJsiQ0O1GpH4+z5linjhyVEqVVquUUNo5VnmiaynU7WEk8rggvl/vu/X5KemB2HgC0yRmuYcUDDB9xGVBLDMiRfvc7IRmc7T9sWNgV92iOVEj9OJ0IKz42pSBMi3e4aMjQNoUNxhpSCF2HspsriDB4Ll19jeQ72E6FOJY1MrstEUI/imYb/sLfc1Uy0pGPDoZ+eOcgcCYJKDoWJWLOZmv13A6yJt5AzZyF8m1rV2H74W7rdHofnYaZr/6Vbys5YfK9+97GH7YFhhNXQuSfKyJy X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tbaWXK3UuXv5PV/BXBSjiUqtwtsVGg/oSfGVP657iJiBh+vBCLaJO9TtEwmoEZCHwHLPVUc+2H+Pi3MgnY5ImQJXWjNALfDNERmrqroPOf9Xbp3SMThRQuHZwu7avv6vBuIp2IJ3wsCGVmBVemiCvxCtwolEtOF9qxurBAYF1K5ZW3yjlBJ4U5xOr57dSigwZBEHURW6mZdwhQy0k/qg2AbChDDjJydsg01AcSvjsJNUoY8uu2XWh9wioLKaqu5eAUrdSIS6FtW/UqYKqV718IfXSAwsYfayLxV1MK7IlCbsDdKFFzKm3xscFdwOKzE4Dajr9TzFD4eCi/uQfdLI8xbXFrzyvwDv6VNv4+HFdJQqnMs4p1FxolIc75KjfGQOoBDPpwLdOc4SduX9RyrX1bABljhmMQboza86svDaWnIokojuQg3iebWcVhs8LZm4C7JudxBZfkGi7AjOeArsNWR8dumfyHEQBt9e5NH6Fo1j86mVvyciTk57CNoP6w8LNZX9akjO6H6AtjwAx0+WnE878+qaPzAwDm7Nz7yEYR/Hknyg5YdR28jK+d71LZAaRyG62AKcvS8/seF7Tg7F9c3QR1B3XJ+CFLI5hQRQTXVRk0qmD2v7fZHmFJ61nVAlSDfbhgHDBnL7vKb78EQpShiL+x1/m3FNasnWiQ67jEx+O21D0IVczFYP0AQKhNG+ra1s+DevzOf9OVvB+LWOD5IUQcC4M2MKjQEL0yTcRfyh74vu+LYYerEnkPCeSeTEvOD1xr3xniDuLuRX7e4K+PXRTpWkZfBNTWfxL2b2mLGuQmgvpUrpTc4FuW5YO4BChrCCiW08i5gubAPa9Sy1AamgiIcQXHRmHslEzba0gKtnepfZoVzTshLrfal4Wx6z7JCXDd5I69NhT1d8x0DgvQNsux2cWUskl0NOTBwqcXGCqQ2f26eSaa1+6z7atIrbG0uaC682PtoQRcaM9RHg+gsO3aPP4aYl0K4Z6TGzdmfsbwqYD98APsZgs4g1sdrq+hzYY1f7dUSCbJE2ccoSC28okMG+dhYL0fl1zzFvCafL9NFRUsr4F7bZtJNb4HkjN9SHVqwPLH10FoWXFgX0WGrpE0ScPRzwYlcey+7F5clTxeVDtKsq/uB2a7raAInOhKBexF0w9ai9bZPbdsRivAXcKEfWbUhwBxr4uMoO2F7gjG/TgxSifFrKDHEMzwr+lYv79bWzXkdGWfjSnSsWwQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9af6fb9-a799-4d67-a17c-08db98da3378 X-MS-Exchange-CrossTenant-AuthSource: TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2023 13:11:54.0374 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB2227 X-Mailman-Approved-At: Wed, 09 Aug 2023 15:22:05 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean This series is the second version of Bo Gan's L2 LIM series. Original author hasn't sent v2 for almost 2 months, so I decided to take over this series. Background information: JH7110 SPL runs in L2 LIM (2M in size mapped at 0x8000000). It consists of 16 0x20000 sized regions, each one can be used as either L2 cache way or SRAM (not both). From top to bottom, there're ways 0-15. The way 0 is always enabled, at most 0x1e0000 can be used. In SPL, we don't enable any cache ways, thus all 15 (except way 0) ways can be used. However, due to HW requirement, we must zero the LIM before use. This is because ECC is applied to LIM, and if not cleared first, the ECC part is invalid, which can trigger ECC errors when reading/writing data. There are several issues currently. We clear L2 LIM from __bss_end to 0x81FFFFF in `harts_early_init`. This is wrong because: 1. Each hart (in the middle of a function call) overwriting its own stack and other harts' stacks. (data-race and data-corruption) 2. Lottery winner hart can be doing `board_init_f_init_reserve`, while other harts're in the middle of zeroing L2 LIM. (data-race) To fix this, we split the job, such that there's one and only one owner of zeroing a specific region (No data-race). A new SPL config option `SPL_ZERO_MEM_BEFORE_USE` is introduced. Allowing The zeroing to happen in the same code path. (much easier to reason about). Changes since v1: - Separate single patch into several patches Changes since v2: - Fix typo (ZERO_MEM_BEFORE_USE to SPL_ZERO_MEM_BEFORE_USE) Changes since v3: - Revert v3's fix since original implementation is actually right Shengyu Qu (3): riscv: Kconfig: Add SPL_ZERO_MEM_BEFORE_USE riscv: Add SPL_ZERO_MEM_BEFORE_USE implementation riscv: cpu: jh7110: Select SPL_ZERO_MEM_BEFORE_USE arch/riscv/Kconfig | 8 ++++++++ arch/riscv/cpu/jh7110/Kconfig | 1 + arch/riscv/cpu/jh7110/spl.c | 25 ------------------------- arch/riscv/cpu/start.S | 12 ++++++++++++ common/init/board_init.c | 3 +++ 5 files changed, 24 insertions(+), 25 deletions(-)