From patchwork Fri Oct 12 14:44:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajesh Bhagat X-Patchwork-Id: 983101 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="xEhTGH1k"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42WrR92VbRz9s2P for ; Sat, 13 Oct 2018 01:52:37 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 0B82CC21BE5; Fri, 12 Oct 2018 14:51:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAD_ENC_HEADER, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id DF511C21EA8; Fri, 12 Oct 2018 14:46:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 65E07C21E13; Fri, 12 Oct 2018 14:46:03 +0000 (UTC) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20041.outbound.protection.outlook.com [40.107.2.41]) by lists.denx.de (Postfix) with ESMTPS id 5D085C21E3B for ; Fri, 12 Oct 2018 14:45:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tI8URstnK88pGx4id3p1G9WY9xvESk0i1oCfeOB1W3A=; b=xEhTGH1kcSMIr3VcM0mnz7tX55KSt0SK93qGjOa30lYp4dzpraPQfwFgPMZBylJ2eoWPHRqdakTzFFVGlA7udX69HzgC10TQnM9XGOOXwFOKo21YNm/QZsDtYPzblykUeV/f18218/ZvIPKTlCu+/N0SkR7cCK8E5Z0Ckfo7bpU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rajesh.bhagat@nxp.com; Received: from phoenix7.ap.freescale.net (14.143.30.134) by DB7PR04MB4858.eurprd04.prod.outlook.com (2603:10a6:10:18::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.21; Fri, 12 Oct 2018 14:45:49 +0000 From: Rajesh Bhagat To: u-boot@lists.denx.de Date: Fri, 12 Oct 2018 20:14:41 +0530 Message-Id: <20181012144454.3707-15-rajesh.bhagat@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181012144454.3707-1-rajesh.bhagat@nxp.com> References: <20181012144454.3707-1-rajesh.bhagat@nxp.com> MIME-Version: 1.0 X-Originating-IP: [14.143.30.134] X-ClientProxiedBy: PN1PR01CA0109.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00::25) To DB7PR04MB4858.eurprd04.prod.outlook.com (2603:10a6:10:18::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d13ca76a-9908-4edb-c245-08d63051677c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR04MB4858; X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4858; 3:aMsdEbO3032FTsZNgulWf+Fc9HRjOWFrV2SvMjCUlEWr8bULGEUccPkEQPtcCEnO0Q99lwsWgZkdplBcqNc1E5thUZUvahjvi9ni8HA7uGmhtTkX93eL7HtjNb3IkC5RFni5eozeg5Dq3isp50JYkN9WsNjqSYcjgpYNTOLV1h8Pd/jsqVSqUK8yC6wYEESstuJ+i4hcyhB8AcsWeOEMuoi4jTw2KlSNbCW2CfnIEEEdn8xO+wnVMj+WpjsQhil3; 25:StbjgHOU5FxHGPTmgqxxckW+6lWrpxJ/TRgmqHRZOfx/rR3/7B9a4ZZk/1IPzvTPjiEBOIt9D26atuYoEqxn0za2MKs8c4B/NeXvJ67DEx2gW7w647i8c8LesSCPbAIqiqv5YFx8X2HGoFTv+iw6uQ97Q60SDsijhs32/AtCtx9h5orCLy1KUmhKGZ4nyq12u9jI1ijCVp2MdzNqGehVNHhKWlFb6lzVDEgCO7VvoLSUQQDQkypJPINMknSXNnOhlDtF0Y6QzRB1HJrbT2wYqeImDdO9vOux1XJDU0o6317WFhbak3TQGMtwDD8UEAfcLBicZUnfnG/nNHdZaN+/xw==; 31:Q+JD2KvecsCG/zzox4r7HtHgwEpFLIIzVIuKvbCh7dBBRSfLdM9LinCZ4NfRyUMs8ezntPNq0FWa5DH6uykhTk7nXBzGGC8PJxiazqIt/nW57Vnl0L3G+H3JTAWRXOAB+tvz2fy8FO/2DnLmvD+j0waGhX9IzE2n1Ft3SkBTCui/3sa/BAezlm7ub03RYUwU7bX1aadUGD5xq3u9dNtrTMZlzVlOLn+LVGZ4CI4BIW8= X-MS-TrafficTypeDiagnostic: DB7PR04MB4858: X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4858; 20:gGJVodwN+CadsYcRy2tImbucSjlKbti23+g3qD5asQMPGlVwNSRSyTV9rqGeFNIMcOkPqOLjw53W1c7uHsK7ZYVOWkj03SFXppR4TLdF+U/NDftF2rjRDSXpid3RC2js9Ot9Fj40A/FwTAeIgfAd7BJwDE4WQMHKUF3ixEXnnT7ddnH5vOSMAdAP6Ly5XDx1Y6ChXGedwTheusNVMx7s4bInx5lGyaTifOVT5TLs6pjq+zO2E3PkZH3OiBLMJ8aISFLPQMO1cZM+lF+Fp/7djw+vL4ZkzHaElhei9YPKu1iiPUNxM7GgKjWIexYtMRlg/dyev3U1Skn1PnY3fq/DhgMIsrLvVXaH5fgg7A57825fiBv0o99W5BNLNfsKTAapmLRoxlzBYUNPI7QArWNp227Zkj+i+5RTnVQNHJxlEL0YnI3/Qk4jnO0k1rsXAga3oR4Sj/DWWAIrIISGxPyp90kl9XEp+qJ0Io90D5SIbyr3dqH2NsIcV3z6uJ/Ar+xM; 4:4rH/jogZ6Z1zq1OONE0LM+kOtIMNZc8hkTRMn6DSs2/sLw4ElO33XlkgISTvY2r7tvjSlCSZFv0rCUhxV0tDHosm4RpgTVoelZKcPwT1RYVDYySU9eO68gdMZOAprEnzn3M6H8MBP7zjxpoVo/YpSh8f3ca5PFHxbPUIQAEV/dwO/Ckb1f/sR5qo3uo4Y0l3IGjxtuUiORK03F82s2USB5VH+wAcuEAR7MUt26izJj8Nz0o8w82knk2v9HzZdGYYQcY4vMq8LOKFEt+c2xwO1kqt04+cuoBzPV24UVb5mbGzozdE3PRGyjwsSNazWlYx X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231355)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123564045)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051); SRVR:DB7PR04MB4858; BCL:0; PCL:0; RULEID:; SRVR:DB7PR04MB4858; X-Forefront-PRVS: 0823A5777B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(396003)(376002)(346002)(366004)(199004)(189003)(11346002)(16586007)(50466002)(446003)(16526019)(186003)(305945005)(48376002)(7736002)(86362001)(50226002)(486006)(6506007)(386003)(1006002)(6666004)(55236004)(76176011)(51416003)(52116002)(1076002)(81166006)(6116002)(3846002)(8676002)(2351001)(105586002)(2361001)(8936002)(68736007)(316002)(81156014)(106356001)(25786009)(6486002)(14444005)(97736004)(478600001)(26005)(2906002)(4326008)(66066001)(956004)(2616005)(476003)(44832011)(36756003)(6512007)(53936002)(6916009)(5660300001)(47776003)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR04MB4858; H:phoenix7.ap.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB7PR04MB4858; 23:IYR5Og/7pXYuBDrtLEmMhmaceVi9j09Plcqr6utRM?= ssfPU4Hjvzo4mEOJLql+/UAHsLUbYAebE7Nj690djlYVFUppqyjAdNN2av55JCtOcEYo0a2wCyarYj1+/ECPU8KefJwQQ7icgQU6p35TNuFg0RUdcA3RrzGByT+NQSSFO6PSltLMG7vjF4SLcmftloyqfaywcLGjjHDNU2sm/SgCMIw1nChVqhJHfa2/lDg6KSD672SN2dE31h+bW2p7mXSLAysdg3pfvDgFx4ZFeiHsDDC2xlMzdZhe5RT6ORHqa+G4pnLddactBRh84FtNIuwO1zaKv0MBH29sy/3O7XzudF4gOUb9toE2eJ8T10FbIoljMFHNzLHig0nt/Qb/j2BDMJS2ceqRRCKwxq59X5rTrvV5umPmMJoTbwhrDi+cSYqXT077g8hq9qXYms6wlKMzPsryR9ex6/luPXNdvkTyzZNZWA9jQizuagnwIyWG2Lrb+HjhZSbDtcZSMZqhE3ECJeC31SpFwTA2LrjugcjAZ/GZfuU+I4Mu3j4PflqpYyVxwfFrKWR8HeyBiG7A9DINSqPyYT0ZZ7fMCE0609IchHoB1wLwM8ypBf/AbbPuwwgZjNXBoz6Ax6pAU30IEh1vIfNoNvuLrQd6Asm9b3ICALRL1a89Vc8hw79+P4XOTAkvurPyWMDCU3Beov93cTIzvhZyJnQUlrjAMiTQ+hUgjk/O6p5+/vsm+WYn7r1TnKS1eBGUUZR8hEBtxnz3q14X9mmrIuNXAgkUIqqqmEtxSTOquFBqbBjh0TBjjQKIpplJo7CxwPdp/D0wX9wPV2ir3yNbFwR2izF8R1MG++u8GWuJoY0e4z0jdu+e1Q8FGgKKbgmRXZmf9SJYhVSmjrElAYRmT7BbchNt+qvQQ2KrQaM8hrk4PL/kkNn+CU0WQH7rIlFVmo/K9TFNnovzHbecL/xzJJxumBDxdseTDLLEPLKr9OUazr8pTc8tVqgF4P5yElZU9hBRcMI3Y7bLX2WT2H/3imiIozZCQ+s0Qc8V7g6ofZKTZ5M89oGGBkcPyGbjw5Z//h52onGcOqy/PhyiiL+YgvSXIFHq4iJrMogXBGp/Mc7qzjdAhjwXCz+u//TL4j7gl13TTDF7fJDR6vOcwqsQ4jyvoK8u+FrG/uh1x7Fz8EoxDEb1JLGjkHGplzjqzM0h/XXBGQfRlb1FI427jRj1P4Eqx2UB4+N1CvK4ev7y6LjZLh3Ay4z2XmkHidtJYh7EfpgjC5D8qNYSM2e9cjKoEUZAmUGNGd6iKeTeQAI4+LTXZTsuJwr6XXfsgFs4bdnXlWQ6/yCLbUTPECV X-Microsoft-Antispam-Message-Info: Gpi85AbfFRpLFl9JvASQaduC2756P44mdm2D9OA2xvaNv1LJXuauZauxfuMjQiIkEo7mRkjnka/cMC+aw0ne7SKE3srORqEHM8XJhaInmSnvr1NKIlEPMnsxclFoC5A+c4Fj5isTNVUSZT6KmuCu+mAHqnAFztpWaU+Gg3Wkbnpl3Cz/Sv3kwxGlzPvh4W5jFkQFkolDcNaEtcQcSTZwCmYgXjWbltwVsO4S1IdYCuIgzk1nW5uw2Bqj00s/QJzpvjbYaI4+Y1ZA+4FCNaWyJdqvNAUvP11Bp47xZ/uONUUfPSdhDsHedvky8NfFYtRunQD4599GWDlVpgornRl3FoxJ2NwraeSHSOBjbZ3qp08= X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4858; 6:7OTouNVzE4wwcmU2CZ7ahFH1+rQd+O+phF8sKSAmd4WcWld1uf1gkOvi82nT000KRuW0EdsaCDktO+c5Y4kBHIHY/tOua+Tkl2aTwgYhH6l2oZHTcmy944td0YynfaBL2AOjXz0YqNNz0K0lrVDYrS654b4PwYDeAaY2neToKNTlxNoi56IEKAqvl0VA09uHpxbpI8fQvX2czW7Qg4dPMKyw1KCey09Sdj7JVg1MVi1jhcOLEmsydLCFq397frk/LoRUZJK8ZaRI+tOz7aMweCi/GpGD6Gm0/M0o0Sanff/d3zQcwEfrdsvAgavZSYy7atvHWPLsajxcZZG/EAPAKt7e+bpN8F/1t1yKNKekztzzmtUw5qgz58JcSXwCwvVXPHqnotQMApthnLWjsBq9+EXApJdwAXRb6VX9HcSf9RGt+HRWKDDVXzCsQrlXIHYScMEYVzws3MT1C1UrceDTGw==; 5:UVlT6IsZSV/LxI8xJ0X/zvhxW6p7uYRyJoU9gE+12x4rabf2FOJ4QpLtwO8/McOYoCKGmyO0okQbzx/fRaiOt744Xqv9T+yQmg2guMQPM8ugTV9DiY1ZavFaNkdxT3cZhhwcEdvOga/J7Nn6qWaqpVxTHL99lf7fjuceMijzti0=; 7:dnoFjqHe5gnwc5zC1gWfZ+QPTw3dC6Q2pFTxnFyZ8aj0SAmyHXJrMj+OSRQ9E00WZGzW4XHa3OZZzvKGv/7wfZfAyiyV/sXw2SF2ARk1R+MaS+LxBWXAUoupqL0B4GJ+/hLQ9MejLUHcbux+a3O47+shZLCLjtpGPNQyZE6LdzuGJU51YamMcJmdQ5UIvas2N1LApAr+15psocYsMZEtjxSapvMXcOSA3TfP/EDKbhLdJmJjrh86n9GlGMJLj+wP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2018 14:45:49.6850 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d13ca76a-9908-4edb-c245-08d63051677c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4858 Subject: [U-Boot] [PATCH v4 14/27] armv8: fsl-layerscape: Update parsing boot source X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" From: York Sun Workaround of erratum A010539 clears the RCW source field in PORSR1 register, causing failure of detecting boot source using this method. Use SMC call if U-Boot runs at EL2. If SMC is not implemented or running at EL3, continue to read PORSR1 and presume QSPI as boot source if erratum workaround A010539 is enabled and RCW source is cleared. Signed-off-by: York Sun --- Change in v4: None Change in v3: None Change in v2: None arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 26 ++++++++++++++++--- .../arm/include/asm/arch-fsl-layerscape/soc.h | 1 + 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c index ca5329f25c..2e3494bee4 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c @@ -693,23 +693,41 @@ enum boot_src __get_boot_src(u32 porsr1) } } #endif + + if (CONFIG_IS_ENABLED(SYS_FSL_ERRATUM_A010539) && !rcw_src) + src = BOOT_SOURCE_QSPI_NOR; + debug("%s: src 0x%x\n", __func__, src); return src; } enum boot_src get_boot_src(void) { - u32 porsr1; + struct pt_regs regs; + u32 porsr1 = 0; #if defined(CONFIG_FSL_LSCH3) u32 __iomem *dcfg_ccsr = (u32 __iomem *)DCFG_BASE; - - porsr1 = in_le32(dcfg_ccsr + DCFG_PORSR1 / 4); #elif defined(CONFIG_FSL_LSCH2) struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR); +#endif + + if (current_el() == 2) { + regs.regs[0] = SIP_SVC_RCW; - porsr1 = in_be32(&gur->porsr1); + smc_call(®s); + if (!regs.regs[0]) + porsr1 = regs.regs[1]; + } + + if (current_el() == 3 || !porsr1) { +#ifdef CONFIG_FSL_LSCH3 + porsr1 = in_le32(dcfg_ccsr + DCFG_PORSR1 / 4); +#elif defined(CONFIG_FSL_LSCH2) + porsr1 = in_be32(&gur->porsr1); #endif + } + debug("%s: porsr1 0x%x\n", __func__, porsr1); return __get_boot_src(porsr1); diff --git a/arch/arm/include/asm/arch-fsl-layerscape/soc.h b/arch/arm/include/asm/arch-fsl-layerscape/soc.h index ef228b6443..daa1c70b3a 100644 --- a/arch/arm/include/asm/arch-fsl-layerscape/soc.h +++ b/arch/arm/include/asm/arch-fsl-layerscape/soc.h @@ -56,6 +56,7 @@ struct cpu_type { #ifdef CONFIG_TFABOOT #define SMC_DRAM_BANK_INFO (0xC200FF12) +#define SIP_SVC_RCW 0xC200FF18 phys_size_t tfa_get_dram_size(void);