From patchwork Mon May 15 15:52:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: York Sun X-Patchwork-Id: 762583 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3wRQFD530Mz9s65 for ; Tue, 16 May 2017 01:57:04 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 5A1AEC21CBA; Mon, 15 May 2017 15:55:13 +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, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS 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 9D5E5C21CBA; Mon, 15 May 2017 15:53:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BBB18C21C57; Mon, 15 May 2017 15:53:28 +0000 (UTC) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0041.outbound.protection.outlook.com [104.47.36.41]) by lists.denx.de (Postfix) with ESMTPS id 6CAF1C21CBD for ; Mon, 15 May 2017 15:52:16 +0000 (UTC) Received: from BN3PR03CA0097.namprd03.prod.outlook.com (10.174.66.15) by DM2PR0301MB0909.namprd03.prod.outlook.com (10.160.217.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16; Mon, 15 May 2017 15:52:14 +0000 Received: from BY2FFO11FD008.protection.gbl (2a01:111:f400:7c0c::182) by BN3PR03CA0097.outlook.office365.com (2603:10b6:400:4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16 via Frontend Transport; Mon, 15 May 2017 15:52:13 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BY2FFO11FD008.mail.protection.outlook.com (10.1.14.159) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5 via Frontend Transport; Mon, 15 May 2017 15:52:13 +0000 Received: from oslab-l16.am.freescale.net ([10.213.168.194]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v4FFq5Eb000381; Mon, 15 May 2017 08:52:11 -0700 From: York Sun To: U-Boot Mailing List Date: Mon, 15 May 2017 08:52:00 -0700 Message-ID: <1494863523-3681-3-git-send-email-york.sun@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1494863523-3681-1-git-send-email-york.sun@nxp.com> References: <1494863523-3681-1-git-send-email-york.sun@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131393371332252387; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39450400003)(39380400002)(39840400002)(39400400002)(39410400002)(39850400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(50226002)(8936002)(81166006)(8676002)(77096006)(33646002)(189998001)(5003940100001)(305945005)(50466002)(7416002)(48376002)(47776003)(106466001)(86362001)(2906002)(85426001)(105606002)(5660300001)(356003)(8656002)(53936002)(54906002)(110136004)(50986999)(76176999)(4326008)(36756003)(2950100002)(104016004)(6916009)(6666003)(38730400002)(498600001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0909; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD008; 1:bgWEd8qYCI1RFUCnjXCu9nsEBaFT6BBWDldYiUxM5XulzdComK/bhz7JbyBXY+06PT6yeJgSpXyGegxX8z/TOeFj+veAdBKCER6Jg0Hb8eL2CNOTTRNK8f/HgxDELR5vfWa/I0ChXWdGGF19jfqhicREH3sEtFFwztJ4E8rn6EADOhVwrdNkESZAVEhShc3ujPOzoae6bE3MQwY61MfdiOWha0KNUE8y7yL2hZF37pCFbSKwdHCYJPf4e2O9iIsijRrEnxLF891EL7xSBw6T3y2zvb/4Yfg+/SrXIbFUW/dzfTY5n1pmhgu906DNmXiJQCBmmTV8zJh4ewUd355l+K6joHdrsnlqbu5+2gcG52W3KonfeYFzpPyJgirvzLyw+azHdJIfd+KcLn1xzl5xjVxdyQhIxnGM3NGF4+mrpax0li55Q0KwD6SFdY+nadHPGMFYQ1AbDk3JdiAusvOkra3vYBHw0YQX1laz0+3y+iyvz6P1U92HrOzv8Jnu2Y7G7c79ELqRumv9NWgU7I7M3B0XdRVM777cS+Tv43SO9X41SbcGUw9yP2LOmRJxCUZB5o+9fHSzjugb8rs+KzaFGdzuz/fGZqQKItkmjhDGsczzOZcmnLaPyMvQYdRJOSrU MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a4e9d305-2251-438f-92e3-08d49baa5a90 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:DM2PR0301MB0909; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 3:vT4HcNQjQkYP17Q1BMm4E9TK2YZJg9ABTBIhpOlZspFoRQ3+eFVaqsfB+f7hvlauyD8j0+leeJKEKFDJod8mVakwzhtGHWtzF2zQbPKPwYaILWYEnCiUsTgfXlXsm3gU4gWx+rrHx8pvqHvgF8opWKJl5rC6rrFBZ+B2NyTO+te1cZCeRZ6ABP6HGAeMz6V4r2RuXjELiuhw/9pAGlQJbqzyxPpRqxEMZXf8BvQmn3+c4nPAQEfylRyG7JqGM9JgU0KEDuog09nHjNWnSRbb9gtVQ6WvE2OT+6UPYd9e9S5s+yopcfapszd4FljjCGYyUwSuW1nd3qaLD2NJphkU3aehEM2OE3/KXinUhjU19OR9jQ6SErOUkycAk9bkO9fvmqSWVC2oWEg3voIomgrDe4heitY+g8ShzlPBCD4sKIHWi46FtMfpDflA8DNT/SbB; 25:2UZ0ktKftuKqBA6I0HKq357k05Ra2sHl6vMM3Xz4Yf32MDamSiVH+xyv0LuXV5hmOa3HBQ/r9EQWAj71KC/3lJ3e0B0tpXdNYo9ThXNaf2n92Ld4+g+Sg5NswSh0UiaRd5YSN2IgwobiRg/e/kganqpjQR2CQZVpTohOkd6RewydWQ2gF0k3v7tFgWloxllwnRIMezN6lKoBoRdyQkH4Ms85y8EewmZAUqMioW8U88lLFvyfpkmVLe3D/hX9XHAo2Cy6V45mEf42p/8196S7nQS/ku2igCKAVV18KG55Pfzq4CkUtIAZVpo78tyQ+qAydTyTYk4XSgYjnOqo8vRretb6iencqLk0fcFUp0H/nM12FmC6a3yWGb3cOJf8Hhw33UMEqCvqhRkfwsHxPLxehcsP6SSs9qSPK9jeqUIpysadtIu7Jn/QfV1+lfVyJTUlcY+WZEL2gBtrd30jjTIRUw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 31:C2uRLP8Hnr/k1S6rPgPIwtUTGQocM2MvEzwlBhYQ41xxSr/+J0A+MTGkv46+ywWf8O8Ju/f7LemJINTIqjT1djTbfuvl8XVWvCACfrDCBMsf0EPUZawo1qSwYUEIiYlYtXJqbjZVFxzzE0S41RhyRX45AhQjd040vqtgQ1QyLaV5YqAqV74493hd0KaqFGCVzdHl3RguMRfkMBZ72d6PT3tgRjM+JiiCwrUvh9rnCZZy//ZPt/GUZLmcZBiKoCeAs8q8kMBStKNo8Co+oG6Kgw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13023025)(13018025)(13024025)(5005006)(8121501046)(13015025)(13017025)(3002001)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123561025)(20161123565025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123556025)(20161123559100)(20161123563025); SRVR:DM2PR0301MB0909; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR0301MB0909; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0909; 4:G+q23rhSB+DaTwcHgkzewU34TRuvlDpX2/z0ZV48?= =?us-ascii?Q?huA52S49/fNl3zo0sxHvyt2JJ/j7yWje0fas3WWH3UsgDpyLfXRfHlIJtxLJ?= =?us-ascii?Q?xaFN3DCuC+/VFt47bROk2wfVyGz4hLgCLQyNHVrEbfZZJOi0CGQBbJhkI1YQ?= =?us-ascii?Q?ckyBmALfqer6iWw0Y/XcjUXGF1ifHzGYSt45Fqi8aYc/raLRyUpa1t94d7NM?= =?us-ascii?Q?swwGSEF418VqoLirWac9b2rUw3iC0UWwDCJxSsnlXyubiqld/kc92o6CIZA6?= =?us-ascii?Q?sKiSxeObDBNQJDWkZkc9WePOlVP7TGvi0W8grx6Ra7vUqLy649LDndRcGlQp?= =?us-ascii?Q?ou7R5zGwGT/RmvY6Zs0tp8ZfxRDFXSOk8iTgWTY9cTf+PuqX9bHbUmBs9Vom?= =?us-ascii?Q?e5nGIqhbnOrZ3+6sp6O2RYEhafCxkrj/wAlcl9KyBTWgmqa4q76NlAi7/Wx3?= =?us-ascii?Q?POmZ85wv1xn4CETwrpyv2aYcDAvPtHBkecef6qV6rItqBbLMVuDCAU0SzvjJ?= =?us-ascii?Q?s7YQFPvQ/1XlVQklVHP5QxKMT+2+VZR3SFkPzIx4Yrcm5aFN1KTUGF3yw/5b?= =?us-ascii?Q?5dCXO/w/slCOkXdkGv5cwy1ZSBOkenFBDkaPMB46O8tvxLivDM4QOQ4Nqf4K?= =?us-ascii?Q?2S878g+UNzK6in/km25KVKR0BylJPvRA4STIm3d2tlNOGng4+VeRH1vt6a6+?= =?us-ascii?Q?JtKVf1xNUw+2/7mdTiqD5vKXKHNwNvZ6YRvJN5wvrWsif0X2isQA2BY5Vu0c?= =?us-ascii?Q?sG2kFxIYICfOGbAvz3jkh7wZa1SHR6kq3tK1+W5Jd/CCrfe3yf7fyFnfnymO?= =?us-ascii?Q?CWctS7a3M/57CfpAZgbn+ercHYRTQu3kBv5uvTSka89bBCVUPMs7pJfNE3af?= =?us-ascii?Q?5GI2Z3IJD8lryHFT8XtJCB384ulHywuI3Q2o4IB8Ed/qauKWX8tEEMlRWUgk?= =?us-ascii?Q?rhhR8afGoU32kamYdns6JtqZpA9s1eaC5eb6mGajYw=3D=3D?= X-Forefront-PRVS: 0308EE423E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0909; 23:gTiPvkJCv8Pn6Qxd9CmWXAHHDY39LT9ABxCkTqZ?= =?us-ascii?Q?QlV/JZJWn0o4OikeX9YBJyl+KDnO4IyzWNZ0dWTt5Rnqb/jqg0Lmdvtc4hsr?= =?us-ascii?Q?QOBSn0QvU7wQRRUNm0frqfMGvutcscOEmgy2qK10cU9MeMC6C8KPGJufglxt?= =?us-ascii?Q?t4AOc3DQeQ42TONJdVq1B8tJe4xBdBsw1iY4QlEy/7YZ1KC4taHEkjMvYXlm?= =?us-ascii?Q?BoBIpzUO+1sGq7JKpAqKpAlMAndFzDDFEQhyRkQ9tEEXFv1QF6+khwAdz3jS?= =?us-ascii?Q?Sdm9xOninUCoJx3y755axhjWAATY3nzFv01MgpDrWg2mkBb7creaHvvdyDcA?= =?us-ascii?Q?WKqbjCoWucPgArdGjMMqhdVuT0cr3JPmAoJEnpV2BWt7md9oiNS8n1BfMTFt?= =?us-ascii?Q?jlw94zYW93y7D4jyAT5AJFX9J6i6kfkhbUVeebvZu1MKcY/roLoyVenDBsLg?= =?us-ascii?Q?PbfV5cmH56FMKan7C2NAaLaNHL7SYA5d3pdHYkwlT8TYk5CsAHQBUWm3GhdK?= =?us-ascii?Q?3PeIGZ8SGEDUNmkHd4AIOczewe/8q7cEZVv38zpd/pwpms4UxGGz+rhdgdxi?= =?us-ascii?Q?0QiBVy4Tp6nvKBtkaknznKrKlAaTnsgqau+sUySPlD4hT1TC0Kj5QoK9eqsr?= =?us-ascii?Q?cd4Qo/cN470/oF5HfF9A487B3tpwQHoxRA9u89siWgLFfv6xvgKa/gK+/Cy9?= =?us-ascii?Q?ZVm7HqwqaAU5OD1TjbdaYSaF4E+YCe/KY0e1MSmH83XTGX4TNdMn8x2jyWSw?= =?us-ascii?Q?XKvLzXsR2ucgflzsskHqCbdAo027WlgtxZt+mz+F82xyoOQ6Mz+uJhEANZ+8?= =?us-ascii?Q?BR61ETwWYbcPrxRIZ32TfILvjbCdGqLwHoYzkOevcjWaXU0WAdNsP8mawraD?= =?us-ascii?Q?zSgfAPhXrocbqQlRa8vy5Bf7eM1fwIDU5Pw/RjLaGL3yo8NW+FIvgkRmV/Z8?= =?us-ascii?Q?LjMXQfH6iYiNwyiM8sdR9B0yunwoUm+ZyjrWHnuqRBsMTd9OPFYTTsIi3MYX?= =?us-ascii?Q?JxVnqbA48x5IeEBt0/IM5BoySJrFVxL+ZTtSpc//XtLwQPvdd5Nx84hbjNTu?= =?us-ascii?Q?vD6Rr0ixPXMZa1VZr6aTqHDu/QO+YPEtrr4FnIyHv9nXU0yXkyAll4T+5Nxu?= =?us-ascii?Q?XrTQyDUtOPVCMXzzl/Cvz+i7WlR5RqeayUTuNQhiU7/aFGNbWvBug+4tCOLT?= =?us-ascii?Q?OW378xbIqH6eguEu0DTiFyCA/rjgpnLxpNjW+LHFowuHIMreUGG3bEJMLaaB?= =?us-ascii?Q?hYhnk9NwZHN8IePtrmMM=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 6:ia7JmQ9BJGBj8zJy0PjFXQoRuP7//Ii4a/vdWhY5VlHyc40ex/RXyGdJ+17h8SyceR1wZXdP97XO8n7pEyhXLaT/6FTtut7NInDRGzZSIsMWvu46bGrwS6e+yJ1E/nZJQMdnVm2S5/mZKxVp14ZzBSCuPtcRlZYOiLO9HcCZlb5+LrE5Ghzvt1Tx9rUGDQ1TuFO+lKsxUhcF0+JQNNx+ML/qwOIuiQHjNYp2h1azpPciOARXHVc9AjPPcpjoEVDS6MHgjaFKfHBXLI+jxn4CeZqbWclrlcBWH+KSECC1JBdIWK+Dc1q0dH0/AoFuAx8464uD9630P8Ebf7kHgSsIYH0JoArJUtR3oBsvhi6ZMQQWCoVSIEiMbCE1Wtz5L7oBAEy8zwyksuJnbXyARaOB0/0YMgc7b9eZUTEWB0T3YBGh4cFsXtVPhB5wrk1VFcIi9lpgctCzTRNsNe+FZTFXT2Wi5h5DKSqiGtKFqF1Ba4xrX0B4DxJsAyOpPEtXYdBxjOdMwE/SzcHHkOpWxuFpEQ==; 5:jOdveeFmaX4TWkaS5Cy4EBtloIt61VOWli2Q/A2JuuY7SmO2zp7oTG1V5Zaideg9zw3KCK4wGzt/8y2k426j1i/LMUVesb0/MFSAc+ghN8ssmJQC2IrKMYDe3fSbi2o3379CDfjrc3y+nefmiUksCR5zlsCiAh8i+8n0CB6bj5MBPGHMXjTH4ClBH8nCZ32c; 24:RGtTgbOW04afpSqB/h0IEXKo4PAt95FBXy1hUQkjHtuy53HYVUNy/jlpiR1LL+MGlWuCWYm0W/BGT1DNT/94k0vvzDZh368C735L2MbtlJQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 7:AFZpwltCS8eYQYfCIUAv7dNajc2zSav1JZZ5ESjnzOPicBB/Hm4mER/mX51iRh+LgKuY0o2SvqZ8FtVefkWq7o+8XxhUVHQbT9AhIAiFey3oa4zc5LC/uTNl/3MEzUVhKkLo8cBWZ4a0rHaG0m+ZD1oJ3Qacl5zZNVreF/mqN5IOC7IrmB/LelOu13ut2RctZQAPQFgPf2J2JtJb/tvj3ShBpiJBtjn9zOUENLHsHei17vzEGPHGO6VAqZ+uTRuNCN3oaFdL0SJGYdo4j/YbaxDWjBtdcj5/GdI40E2xGLxWOBluP0dyWMMgfKTqCsORU9kzrw/cUTnP7WwjdpX7Uw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2017 15:52:13.1160 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0909 Cc: Marek Vasut , Vinitha Pillai-B57223 , Wenbin Song , Mingkai Hu , Hou Zhiqiang , Ruchika Gupta Subject: [U-Boot] [PATCH v1 2/5] armv8: layerscape: Enabling loading PPA during SPL stage 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" Loading PPA in SPL puts the rest of U-Boot (including RAM version loaded later) in EL2 with MMU and cache enabled. Once PPA is loaded, PSCI is available. Signed-off-by: York Sun --- arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 13 +++++++ arch/arm/cpu/armv8/fsl-layerscape/spl.c | 41 ++++++++++++++++++++++- arch/arm/include/asm/arch-fsl-layerscape/config.h | 1 + 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig index 4c16c4c..25690b9 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig @@ -135,6 +135,19 @@ config FSL_LS_PPA which is loaded during boot stage, and then remains resident in RAM and runs in the TrustZone after boot. Say y to enable it. + +config SPL_FSL_LS_PPA + bool "FSL Layerscape PPA firmware support for SPL build" + depends on !ARMV8_PSCI + select SPL_ARMV8_SEC_FIRMWARE_SUPPORT + select SEC_FIRMWARE_ARMV8_PSCI + select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2 + help + The FSL Primary Protected Application (PPA) is a software component + which is loaded during boot stage, and then remains resident in RAM + and runs in the TrustZone after boot. This is to load PPA during SPL + stage instead of the RAM version of U-Boot. Once PPA is initialized, + the rest of U-Boot (including RAM version) runs at EL2. choice prompt "FSL Layerscape PPA firmware loading-media select" depends on FSL_LS_PPA diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c index eb730e8..2776240 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c @@ -9,6 +9,9 @@ #include #include #include +#include +#include +#include DECLARE_GLOBAL_DATA_PTR; @@ -57,6 +60,12 @@ void spl_board_init(void) val = (in_le32(SMMU_NSCR0) | SCR0_CLIENTPD_MASK) & ~(SCR0_USFCFG_MASK); out_le32(SMMU_NSCR0, val); #endif +#ifdef CONFIG_LAYERSCAPE_NS_ACCESS + enable_layerscape_ns_access(); +#endif +#ifdef CONFIG_SPL_FSL_LS_PPA + ppa_init(); +#endif } void board_init_f(ulong dummy) @@ -76,5 +85,35 @@ void board_init_f(ulong dummy) i2c_init_all(); #endif dram_init(); -} +#ifdef CONFIG_SPL_FSL_LS_PPA +#ifndef CONFIG_SYS_MEM_RESERVE_SECURE +#error Need secure RAM for PPA #endif + /* + * Secure memory location is determined in dram_init_banksize(). + * gd->ram_size is deducted by the size of secure ram. + */ + dram_init_banksize(); + + /* + * After dram_init_bank_size(), we know U-Boot only uses the first + * memory bank regardless how big the memory is. + */ + gd->ram_top = gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size; + + /* + * If PPA is loaded, U-Boot will resume running at EL2. + * Cache and MMU will be enabled. Need a place for TLB. + * U-Boot will be relocated to the end of available memory + * in first bank. At this point, we cannot know how much + * memory U-Boot uses. Put TLB table lower by SPL_TLB_SETBACK + * to avoid overlapping. As soon as the RAM version U-Boot sets + * up new MMU, this space is no longer needed. + */ + gd->ram_top -= SPL_TLB_SETBACK; + gd->arch.tlb_size = PGTABLE_SIZE; + gd->arch.tlb_addr = (gd->ram_top - gd->arch.tlb_size) & ~(0x10000 - 1); + gd->arch.tlb_allocated = gd->arch.tlb_addr; +#endif /* CONFIG_SPL_FSL_LS_PPA */ +} +#endif /* CONFIG_SPL_BUILD */ diff --git a/arch/arm/include/asm/arch-fsl-layerscape/config.h b/arch/arm/include/asm/arch-fsl-layerscape/config.h index 93e6597..79e94f9 100644 --- a/arch/arm/include/asm/arch-fsl-layerscape/config.h +++ b/arch/arm/include/asm/arch-fsl-layerscape/config.h @@ -17,6 +17,7 @@ * To be aligned with MMU block size */ #define CONFIG_SYS_MEM_RESERVE_SECURE (2048 * 1024) /* 2MB */ +#define SPL_TLB_SETBACK 0x1000000 /* 16MB under effective memory top */ #ifdef CONFIG_ARCH_LS2080A #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 4, 4 }