From patchwork Fri Sep 1 08:25:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumit Garg X-Patchwork-Id: 808577 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=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xkC3P1yW1z9t1t for ; Fri, 1 Sep 2017 18:25:05 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id F1F53C21EC6; Fri, 1 Sep 2017 08:24:55 +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_H4, 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 86383C21EB4; Fri, 1 Sep 2017 08:24:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 3D0A2C21EB4; Fri, 1 Sep 2017 08:24:51 +0000 (UTC) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0085.outbound.protection.outlook.com [104.47.42.85]) by lists.denx.de (Postfix) with ESMTPS id 657E7C21EA8 for ; Fri, 1 Sep 2017 08:24:50 +0000 (UTC) Received: from BN6PR03CA0083.namprd03.prod.outlook.com (10.164.122.149) by CY1PR03MB2265.namprd03.prod.outlook.com (10.166.207.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Fri, 1 Sep 2017 08:24:48 +0000 Received: from BY2FFO11FD041.protection.gbl (2a01:111:f400:7c0c::148) by BN6PR03CA0083.outlook.office365.com (2603:10b6:405:6f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Fri, 1 Sep 2017 08:24:47 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD041.mail.protection.outlook.com (10.1.14.226) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Fri, 1 Sep 2017 08:24:47 +0000 Received: from vinitha-OptiPlex-790.ap.freescale.net (vinitha-OptiPlex-790.ap.freescale.net [10.232.134.143]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v818OgmW021859; Fri, 1 Sep 2017 01:24:43 -0700 From: Sumit Garg To: Date: Fri, 1 Sep 2017 13:55:00 +0530 Message-ID: <1504254301-7970-1-git-send-email-sumit.garg@nxp.com> X-Mailer: git-send-email 2.7.4 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131487278874635475; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39380400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(50466002)(498600001)(626005)(356003)(105606002)(33646002)(305945005)(2351001)(106466001)(189998001)(8936002)(8676002)(50226002)(50986999)(2906002)(81166006)(77096006)(81156014)(6666003)(68736007)(8656003)(53936002)(54906002)(97736004)(36756003)(104016004)(6916009)(5003940100001)(4326008)(47776003)(110136004)(86362001)(85426001)(5660300001)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2265; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD041; 1:bUUW0O6Cgrzlm1TUkkiQ7LDCax8MUzyNGA6y+HVgxKzJgSWhZ2XCUbFQcqgU0js0fsRsMmHou2yxiceRBjBNn2NcwznKdnyBt362ckLq6uWjX7nXFnC6dTkKmdny6FiI MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5bbe8f6c-1a59-4478-21cb-08d4f112e832 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR03MB2265; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2265; 3:BO63YrrbaifJz8Qmb1qtODPsKxfud4GX8xIfJrv+CX6YzIIAxUycUmkeTBqIpTT/n4OJVm/nbR6QQSO0x8Od1CfAG/M0Zo4oGeQhI3IcbM2zl+7Ovw37R2vKoWBJUaHbgSv9Pro4Nus7rLNzdMq1Lgor0GIk4dT2TzuLcSaVNB4c+Sq+ylUC2sIIKdgLMpY0kPyAvbHe7vMm+OHgkoQoNWQspSuj2kpz4bUXv1gmX3xUfUxHGFU4E3ieI2rEEbNbIveYoVEOvl6KiIu1W4GbeWqq3L9lK6Sn58OcNiRkDnZNBv4ibRuoZ/HspK3hvxxyWhX4xqztBOJp/sGkc2CSyRiH9sVopYfQqZyEgETpNG8=; 25:ArxvuUI8HXDB6XtOCdDmfta5/DgfxFF6UE10a4p6pPwfQPXM6u9Dh8d3+857W4ocI7F7YNj1QQ69GWnnXk1xBGbdcFWArjma/eJ82+CdHkBME0vyuKudmzNtnbSlyzvlJLbBk3VpojcyEFy3tZCLoEYicjpMMpcZgY3yue9PzLdOAMISQyjJytWV+nN5Q9syGHMLCp8JLoGsrz7rdH9PektK22WJXHy8FUWdhkvuLSoF/YANluHAYE7Pp+h6hpgdeCH/toF6vzqHU11oNP8POtuRy8XqTfKtmp9SUcW06Gi2fC+gh9PCGZBEmzq3s0LO5jfQWZ9L64Iuuq24ZSblUQ== X-MS-TrafficTypeDiagnostic: CY1PR03MB2265: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2265; 31:96IUoTGCbIqMohVVw7BeOOINrBz+SKddQDhRfPEseg/mqPBo5bNzUxZlEoZo2NMb4lD0Woebpf49lJKBnAOHCl+/LXIY1xMFYnt/vJtceNomqSJsfCneQ4dZHmXTteViSCTphj26KLA/hgQ0LrKeCt7vXWPyFvXquyxEMw7WlANMdWNE50WBIZrX+WL49HAq8ukGSzG0F0ZVbIrY7kn0CCNBtJq62XsnvH43B5c84hs=; 4:dfP44g8eopKJ+FHs+TvckDflDItkI8Hrvmz260xZkEvd74ss8kNpeUgHJ8S/vPGw0saRCSfAng8hnvWNk6LbToIetEeFqp3qFRw8euUWnF/wvb0csKge5f7+OyaJU1R20IddxusxZmADwWlysnu6xwJTAWp24eL/tEcVX22EqPVXTKFMIeyI9vAbMajvg9e52gZv9LJ0c3pyjmX444uFuKcOyIKzlOMaOOiXkyGLI7SWoiPO6oqp+0XLi72WatCvZQp7r2pB5/3E8+pkl/3iW+Kd2dvwIMMh5ln8n6u/sMc= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(13018025)(13016025)(8121501046)(3002001)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(6055026)(6096035)(20161123563025)(20161123565025)(20161123556025)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(20161123559100)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2265; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2265; X-Forefront-PRVS: 0417A3FFD2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2265; 23:VCq0nOe2Sh7SK9pjpcC15EbHOF05MbjLjN/x2Scm3?= Kq9tOnYNIsvpsTewJRWpYN2ahjKJgdiWySJfQnOtC9Q6/b2boKKOyWc5pSGfCxecwvdda9t9wdb+aGLrDxjNfNfl/97uSclab2jGLqsr40vPNAVwHotJgRPR8MfuMgPahapUOuwuMzqhactQzk4b6kg/KMMgJ8EpFtUCCTvNo40EcKd+q8I+K/S3agtqDWbmHKiWgXKQyz+OY6kYjxS58b+0ThFDkIYJqT/8AzzU2XQCSrTwzNbhG+DjXvXVt2FOKsdPl7BAWu41UfBpVt6lwTsr1s8JTQ/3+BUiShSgZwv/WZP4eUubvP5K6cOKEDmKn2jA3vVtY2efMhzgUeuBlASyo48k7F5x0Vkd+T7UCr/aNSNKkk/yYwDA4o5kpu1Wf0hTzuUvWK3xhygg5AxMFLilEVER2ffIAl82jB3jBoR4yRJtztbof6se+T/PU73wvdeYB8iI19c/BrtbfuYc/SM57OfjpLn5oMp+X//1HMLju7rZj/eVYxUQ+PnaK8Of5Q/uIKn/iwmdNPgvQXz/pvNx+MRUMTJn2MzuoMQgRvYd2UfDf9SerypxcSFpz7xvp+URyHkILrrkI9HxaRsuUzxtREfVrfXhfMM8DO4Y4OypLvgxd2H6/5JlRZvp2uoSTXsVCWnGh8O+gWMs6wOJdJl9Wz57z2pMbGOd4CD+uJJr6vcyPYAgNQLTFSgfEedBsjsUi4+PI2gWp8h+aFdVf7B6TbMzSPHD+Xt3T78J4hyT6JBM6VpQeMh7Ajv337SdqugjIxw6SlELpHYt0Sg3tVaPy2zPaQ/pK06334secM6liq9AWhbmWT5Q71G9k6SgukiNYGDEE9Ps//Kk0Nkh4V3rE9ZlX3dCW6eeM9KDKhVWab/9+7QrOEannz2B+s/GYy5ZdhLAl0zOG4Dmqa7F1YEa2FsU+L28VGotIcYztLhnnNacHgO8VCForT716eaIOriUSrG4P9U5fZcfQOuqFGigo3tA078wvbbS2LlUKbwjt7jMGZ25aFnVqDcqASVIA7YGTxbpa9QVIiL7iTq5Lk1 X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2265; 6:CpaE3p/1sJKqsNlZ4UdnQATwaGBJPR+EHV4qejyKbM0U844H8k7z7y2jgErmD0Taz18bjbxaxXwcs45MDOXPjRHzAEsZ6D1JA8NpDeZse3cgaDGxW5u2RcBYReV5KBMQgN1SBdya228LdSMELkOXx2VAEEvLV1RMJsSpeJdrSFOfaogP6uNhjkJCpx8VLmyITRuI0r1S2sNBzUl4wZWdDwheoOpl/oIXbNhxKhuftRBZqAc3Iy/OQU5gpireqTG46q/BnKAhM2Cl9Lcu/hfjGPwAflOMriUxy5AMyM6Kv96KSW+X8ksegNyxpmY8ncqr9VEIskRBnMU+HFsLlG8W7w==; 5:JCIOV/l+YIVNy/sqILra4MEkaKS+H8rcfybxfTv35mWuROfJUJRU+rT1aGFLB+CiGGXKZgQEJeEyAJPnlM1PDL7LuKsvMvV47wqfcwFPp2xPWpe3Rfq8QPYDqXDALSljM+EuiqueN/lo1jJtq0TBGg==; 24:LPIeMJEB41cFvGhWSi35UfTzSDSZCjbOmfIJ0m4uj/eG6L9o0PByNaPrZvpNF9u1QiwtdK8Ny893n6oWtxkTspOhx54iQBIrgz4VN8r8XW0=; 7:Y9Uint6n5pBjF+2iiUVETlX146ktceCanu/F4Je1R+n/5nAanlR5XF1CxOslxUEnQ0/V2hKt2qSuXX/IOugRbUc/HXvxKhMH9JNX6RQDKYI2beQXtutoeczaHcFm2uHzoNVd2/TGB1+KfTLJEPR7M5lD/4iq3eyqwv5OBkSmYJSy/4GBFpIFV9HZLrJymEsbP9i05hK8qtAEwztkrDmvxQ41KALWiv+HZrxNN80Mem4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2017 08:24:47.1515 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2265 Cc: sahil.malhotra@nxp.com, Zhiqiang.Hou@nxp.com, pankaj.gupta@nxp.com, arun.pathak@nxp.com, ruchika.gupta@nxp.com Subject: [U-Boot] [PATCH 1/2] armv8: layerscape: Allocate 66 MB DDR for secure memory 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" Change DDR allocated for secure memory from 2 MB to 66 MB. This additional 64 MB secure memory is required for trusted OS running in Trusted Execution Environment using ARMv8 TrustZone. Signed-off-by: Sumit Garg --- arch/arm/include/asm/arch-fsl-layerscape/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/include/asm/arch-fsl-layerscape/config.h b/arch/arm/include/asm/arch-fsl-layerscape/config.h index a7098be..95e2791 100644 --- a/arch/arm/include/asm/arch-fsl-layerscape/config.h +++ b/arch/arm/include/asm/arch-fsl-layerscape/config.h @@ -16,7 +16,7 @@ * Reserve secure memory * To be aligned with MMU block size */ -#define CONFIG_SYS_MEM_RESERVE_SECURE (2048 * 1024) /* 2MB */ +#define CONFIG_SYS_MEM_RESERVE_SECURE (66 * 1024 * 1024) /* 66MB */ #define SPL_TLB_SETBACK 0x1000000 /* 16MB under effective memory top */ #ifdef CONFIG_ARCH_LS2080A From patchwork Fri Sep 1 08:25:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumit Garg X-Patchwork-Id: 808578 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=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xkC4H69kVz9t1t for ; Fri, 1 Sep 2017 18:25:51 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 7757AC21ED6; Fri, 1 Sep 2017 08:25:33 +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_H2, 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 F3B95C21EDF; Fri, 1 Sep 2017 08:25:28 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AD214C21ED5; Fri, 1 Sep 2017 08:25:04 +0000 (UTC) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0066.outbound.protection.outlook.com [104.47.37.66]) by lists.denx.de (Postfix) with ESMTPS id 97F2CC21EE0 for ; Fri, 1 Sep 2017 08:25:00 +0000 (UTC) Received: from BN6PR03CA0060.namprd03.prod.outlook.com (10.173.137.22) by CY1PR03MB2268.namprd03.prod.outlook.com (10.166.207.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Fri, 1 Sep 2017 08:24:58 +0000 Received: from BY2FFO11FD032.protection.gbl (2a01:111:f400:7c0c::124) by BN6PR03CA0060.outlook.office365.com (2603:10b6:404:4c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Fri, 1 Sep 2017 08:24:58 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD032.mail.protection.outlook.com (10.1.14.210) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Fri, 1 Sep 2017 08:24:57 +0000 Received: from vinitha-OptiPlex-790.ap.freescale.net (vinitha-OptiPlex-790.ap.freescale.net [10.232.134.143]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v818OgmX021859; Fri, 1 Sep 2017 01:24:53 -0700 From: Sumit Garg To: Date: Fri, 1 Sep 2017 13:55:01 +0530 Message-ID: <1504254301-7970-2-git-send-email-sumit.garg@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504254301-7970-1-git-send-email-sumit.garg@nxp.com> References: <1504254301-7970-1-git-send-email-sumit.garg@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131487278980793600; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(6009001)(336005)(39860400002)(39380400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(50986999)(53936002)(54906002)(76176999)(36756003)(47776003)(498600001)(48376002)(110136004)(50466002)(2950100002)(68736007)(626005)(4326008)(104016004)(85426001)(50226002)(97736004)(8936002)(81156014)(81166006)(5003940100001)(8656003)(6666003)(189998001)(6916009)(86362001)(8676002)(356003)(106466001)(33646002)(5660300001)(2351001)(105606002)(2906002)(305945005)(77096006)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2268; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD032; 1:SJgcTF66j2YpQB48R+DMClXXL5VAIscZPAByJRDouQA1G2e1zOfNxujEQms1jSxK5mZm+FQ74unzb0Epyz08FMrWJguPyo3v30Ld7Qh7jVDAuoQFMw2/ot6m10PPrOud MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ccd43ed1-ccfe-4e8d-f9f8-08d4f112ee85 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR03MB2268; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2268; 3:6XBf4WXCh5WDwlfZLpb6V3mh60c0UNizLQFfNBaVZCiYCAGLvSGAiMFsUO8zSlJXgrmzbjE7Q2VfDLdli0/WmKrviTdRT66P+bnUxs5A/MVTF7LhmnnEUZo3eGTGWmCqY7Gb/02Ip4kCsecQWxp5ASk3nesbOQX9ePtfKHgwi8jKSJXFgXQJrhjA4oeKT1DNLxkh1QnDS+QnEYzAyoDw2puMvu0lrPAwa6a1uUMAJkPWtxazVkmKoSPdHP8v/LXtL9N8R74c3qwvEU48WuzQouJWhMf1dsO9q88xMf+kXAbaG/7Y/0vurvY1lJVFIxW5iy1OnX35skNOUn0rB1sm8qjtdO/RHDC70XaT8hiJ6NA=; 25:4VJxa1eCTwrlDjI8ZH95Pg5EUHpTbyBLKgW0ia9hq+xc4kwh6cgHAi/8HRkfJKLcjSc3hNhwzBneHqpmTtwyZ1WGDLSKe0ky7ft62gvyrNbZEg4mjnQA9cjP2cj4EnZzuxagpWFyTl7+N/Dg/DRnYv+JrLa3tMuH0LImlIbB7YVTWzJEKZziHQisEMoBkIOGrrm83ZwJvx2Bt20YWbUUDp/4HmLiLOskYFwJDO7Q5PyjNgNHEaCtSXKdakSjh24fKHwNuwKdsHk9sVkgWPi0GeN0ZNGHIFEzhxFN8LdOgVR0WeMOFMs0BTzwJc+wZNhnsKUc2jpCcK8Xlto4Acgjfw== X-MS-TrafficTypeDiagnostic: CY1PR03MB2268: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2268; 31:NlR4bQ0ckADmfM0IzcAdIEe0OgvemrRZVKZlaPsUNblRO9AitUdC2va7SG8am9dWErAoma4vF4nwUMyzI+TS0ei4cBIqGQGg9Ki+mGqBhULRO5d+XpOnHkAOZZNN8fk1tu2466TxkjdO521LjF1jvOBeJNtsYp75lV033frJzdqfRlzQxcnNWEyc7S7NniRStvFEgDToMoGJQ1I29yIcySvUx2VJ5P1LucxIFERBgic=; 4:Iw/Y7fn0X5x0HvZqNffzObWpo7FLUsXa8GXZN9I7vyHMlVru0LRBFFSPRajzat+bzFr+sIqtSRzCyRTF8/OpI1xCqa3b/zc+ESfMfxFuctnWjFK6LMMCIYKSS4jSusewy7pQRQ1R1kPupk1F8HFS3eKvA9uAba7doj++5U+x2JbjWw0wjdxqzcLdHSRjJZpO4ZvGU6GUqbcfQj9O/zNDeyycOxmtCppT4MPQvTiwFAd/en/xU8oXc3PZQMrV1A0muZPAoYkgOe35/uajiIdccrcpBoMGqBblqu7glOjyUf8= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(93006095)(93001095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6096035)(20161123561025)(20161123563025)(20161123556025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123559100)(20161123565025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2268; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2268; X-Forefront-PRVS: 0417A3FFD2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2268; 23:KdY4Z5aqhZbttlJVGhlqsbXLrIGVkueuwYxsInnxW?= s9SYltiv7fQVdPXR54slnfxUugZKEJD5ByMhx382WZ6ObfrmmI8JxZusvIsbCUlWu3yY7BgTd0dkXOg/Qp+XwZKVBZuFiPbnKVRdzOapobfkLUhDpVsMfsTu9rGjYaeeQy9Vu+KguTfRborXpX2Ce73A+XFtSDL++BiX8y0o7K1A2uo0Fyc+0rjFebYNp3t5OSOV4iVagzbZMi9QwzlhuwR/acDVu8qLmvfX/MPhCt+0HWx3J8U0kl7k8aHjD1zwQpNieI56iqsa76wOfyUTnhqKugwWTXk3mH2a4u2FXQQM/T236rJT1tf6rLuM1SVyznpS0bohWB127of20UUVmtp40XxZlmy1fspLukpdVK6bXPZ1TWbNtw+t7FWqPUxCAoZwShOzb0zUmEXWdcBlCYLWji/UFa8HthSfcIyl9NbXUq11M22sUJNS73UjvWg+L4KuIiAaq598pj0qPfIIm+xWxTeFl7XyX9CV2Lw34XE/fg9dTF92H9yXl2RAqhyoxcWwJtsestDicwiYB6Bqxlz83no08h+7ABJee0Sn5ioRvyu0TUtoweqgeNPWKegK8Q6ecU+nnRQNTpcKZxfln5z09DSPzhx160+y1qtt0Kf+PcQ4TR79QnNPw8R9mHOhApcm0yX7i5K/uvVxb/95vdLSXMpVI1PwUqGN0gVhgrX7ocPDayYa+58KsPBDRrRyiglgmEbLR52h0nbncNEw+KJKKb2YMmt/FjUvW1lLH+HzgVQ0dZKY1WT/RRiEzbKBsFcaJPS/XZTU+WHNJGfbcwgcUXn19Uk/x3zRFzkzJvcJAChldsFMg3LQk2jIgUIs02XhynGXLGzlCIN+AINclpRApPT/mgwNuReNF4JaXzO4l8EV9sAwJ4fYMsotZoxOxyblewtRXmd42AOs4b62/IvePhdYWy2Vif76445eXXY0Pz3QpGckCdu3T+l5h1zXMIWM9pmSei0hvFpaPRnY1XwD7qUGbqEQJ5BKVrPNLjtrLE3BbEszw6RstQXu8hwYZFYFsuVuZMsDRlobaV9Ieni/tWd1ztPfdmHyQEZ9DQ/f4LaT+kYIAfZWv/eZLDQu1q0B1Kw9B6cxYqsPmnazyhhQApxXCKWH57V41bCGvbCFxNb4Row4obYDNQUEau/lhIRi/OAyTpTmOsNIIm7gkfq/8fzlSWEcVNXAhaaW96uhA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2268; 6:or8VU+1d5v3VfCS0MNI0EKGBtWLPZYH/++Vs2wWBiGPg06PcagQB8m/xf8McUMp6p9xRDIYHMpoE03nIrXM5++d6QTPy92Ll5kWjkoGufZWTzUircLZyd5MDeLXB8ZmsVysu8kSyMORYOQcf6D8GasiuQvnCedbOU3rLFAW0iXbj7+9iAyqhxhdb+b3xEzbTtatNWqUPuoy2ZzWuYgZuzSkjFZsXTr5SCRlsnYfVBNSyAWWyDn7VIaluxwh3AGQ+y2ZSPhdMCfD9+eJ+hUQbjZb4qRLYep1MCecKXuGGiinAZyPfZJ/e0UynM4Ag/d7VEn+mBnSZ6EncAMixk6RHwg==; 5:eMVoxNo0+WQGCf9WZc4I1fGu7CpU4vjDGKY+yemW+dwFGDWMtJCX/uVuerQS5ahq+5/W9/hKv6uaEfGwBPq4+qNsT+Y0yj6y+8ON2mGF01saGmzHDu+hlt9oEULyDyTdzmyE5NV8CmdMBMZ/GkmNRg==; 24:oFejA/pEK80N5g6KeIwoQrOUKgog65O5K/jBYJa8a7XcFjPAfbWYyhOEX15/4AjiFM0mqVDrZPFNT0o8UME912M0Uu93Ye7d67Q60IztbKk=; 7:4PMaK+r8y5MkvkSAl8+0mjvH2aZ4AyPcGw/UCIy8uF3tINUEdhxFhGrG5A4u33rRSRn+xPCpYDIWcI1Qc1+7vMaN+9lY8v8gMI9eWvnQDmQiwxPPB3nAITz02zAR5GtKNNF+qsPf+yMve6t3YAbYEZEE+q54WFvCzM+meAYgBoiIPVynN45QW2IEg7Gk1/6NwTOdbgvE9OnqZJWSGhREaz7vdwWj5BIBv85PdKRhc6w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2017 08:24:57.7673 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2268 Cc: sahil.malhotra@nxp.com, Zhiqiang.Hou@nxp.com, pankaj.gupta@nxp.com, arun.pathak@nxp.com, ruchika.gupta@nxp.com Subject: [U-Boot] [PATCH 2/2] armv8: sec_firmware: Add support for loadables in FIT 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" Enable support for loadables in SEC firmware FIT image. Currently support is added for single loadable image. Brief description of implementation: - Add two more address pointers (loadable_h, loadable_l) as arguments to sec_firmware_init() api. - Create new api: sec_firmware_checks_copy_loadable() to check if loadables node is present in SEC firmware FIT image. If present, verify loadable image and copies it to secure DDR memory. - Populate address pointers with secure DDR memory addresses where loadable is copied. Example use-case could be trusted OS (tee.bin) as loadables node in SEC firmware FIT image. Signed-off-by: Sumit Garg --- arch/arm/cpu/armv8/fsl-layerscape/ppa.c | 16 +++++- arch/arm/cpu/armv8/sec_firmware.c | 92 +++++++++++++++++++++++++++++-- arch/arm/include/asm/armv8/sec_firmware.h | 4 +- 3 files changed, 104 insertions(+), 8 deletions(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c index 35c612d..87a0885 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c @@ -35,6 +35,7 @@ int ppa_init(void) unsigned int el = current_el(); void *ppa_fit_addr; u32 *boot_loc_ptr_l, *boot_loc_ptr_h; + u32 *loadable_l, *loadable_h; int ret; #ifdef CONFIG_CHAIN_OF_TRUST @@ -252,9 +253,9 @@ int ppa_init(void) PPA_KEY_HASH, &ppa_img_addr); if (ret != 0) - printf("PPA validation failed\n"); + printf("SEC firmware(s) validation failed\n"); else - printf("PPA validation Successful\n"); + printf("SEC firmware(s) validation Successful\n"); } #if defined(CONFIG_SYS_LS_PPA_FW_IN_MMC) || \ defined(CONFIG_SYS_LS_PPA_FW_IN_NAND) @@ -266,15 +267,24 @@ int ppa_init(void) struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR); boot_loc_ptr_l = &gur->bootlocptrl; boot_loc_ptr_h = &gur->bootlocptrh; + + /* Assign addresses to loadable ptrs */ + loadable_l = &gur->scratchrw[4]; + loadable_h = &gur->scratchrw[5]; #elif defined(CONFIG_FSL_LSCH2) struct ccsr_scfg __iomem *scfg = (void *)(CONFIG_SYS_FSL_SCFG_ADDR); boot_loc_ptr_l = &scfg->scratchrw[1]; boot_loc_ptr_h = &scfg->scratchrw[0]; + + /* Assign addresses to loadable ptrs */ + loadable_l = &scfg->scratchrw[2]; + loadable_h = &scfg->scratchrw[3]; #endif debug("fsl-ppa: boot_loc_ptr_l = 0x%p, boot_loc_ptr_h =0x%p\n", boot_loc_ptr_l, boot_loc_ptr_h); - ret = sec_firmware_init(ppa_fit_addr, boot_loc_ptr_l, boot_loc_ptr_h); + ret = sec_firmware_init(ppa_fit_addr, boot_loc_ptr_l, boot_loc_ptr_h, + loadable_l, loadable_h); #if defined(CONFIG_SYS_LS_PPA_FW_IN_MMC) || \ defined(CONFIG_SYS_LS_PPA_FW_IN_NAND) diff --git a/arch/arm/cpu/armv8/sec_firmware.c b/arch/arm/cpu/armv8/sec_firmware.c index 0e74834..927eae4 100644 --- a/arch/arm/cpu/armv8/sec_firmware.c +++ b/arch/arm/cpu/armv8/sec_firmware.c @@ -105,6 +105,74 @@ static int sec_firmware_parse_image(const void *sec_firmware_img, return 0; } +/* + * SEC Firmware FIT image parser to check if any loadable is + * present. If present, verify integrity of the loadable and + * copy loadable to address provided in (loadable_h, loadable_l). + * + * Returns 0 on success and a negative errno on error task fail. + */ +static int sec_firmware_check_copy_loadable(const void *sec_firmware_img, + u32 *loadable_l, u32 *loadable_h) +{ + phys_addr_t sec_firmware_loadable_addr = 0; + int conf_node_off, ld_node_off; + char *conf_node_name = NULL; + const void *data; + size_t size; + ulong load; + + conf_node_name = SEC_FIRMEWARE_FIT_CNF_NAME; + + conf_node_off = fit_conf_get_node(sec_firmware_img, conf_node_name); + if (conf_node_off < 0) { + printf("SEC Firmware: %s: no such config\n", conf_node_name); + return -ENOENT; + } + + ld_node_off = fit_conf_get_prop_node(sec_firmware_img, conf_node_off, + FIT_LOADABLE_PROP); + if (ld_node_off >= 0) { + printf("SEC Firmware: '%s' present in config\n", + FIT_LOADABLE_PROP); + + /* Verify secure firmware image */ + if (!(fit_image_verify(sec_firmware_img, ld_node_off))) { + printf("SEC Loadable: Bad loadable image (bad CRC)\n"); + return -EINVAL; + } + + if (fit_image_get_data(sec_firmware_img, ld_node_off, + &data, &size)) { + printf("SEC Loadable: Can't get subimage data/size"); + return -ENOENT; + } + + /* Get load address, treated as load offset to secure memory */ + if (fit_image_get_load(sec_firmware_img, ld_node_off, &load)) { + printf("SEC Loadable: Can't get subimage load"); + return -ENOENT; + } + + /* Compute load address for loadable in secure memory */ + sec_firmware_loadable_addr = (sec_firmware_addr - + gd->arch.tlb_size) + load; + + /* Copy loadable to secure memory and flush dcache */ + debug("%s copied to address 0x%p\n", + FIT_LOADABLE_PROP, (void *)sec_firmware_loadable_addr); + memcpy((void *)sec_firmware_loadable_addr, data, size); + flush_dcache_range(sec_firmware_loadable_addr, + sec_firmware_loadable_addr + size); + } + + /* Populate address ptrs for loadable image with loadbale addr */ + out_le32(loadable_l, (sec_firmware_loadable_addr & WORD_MASK)); + out_le32(loadable_h, (sec_firmware_loadable_addr >> WORD_SHIFT)); + + return 0; +} + static int sec_firmware_copy_image(const char *title, u64 image_addr, u32 image_size, u64 sec_firmware) { @@ -117,9 +185,11 @@ static int sec_firmware_copy_image(const char *title, /* * This function will parse the SEC Firmware image, and then load it - * to secure memory. + * to secure memory. Also load any loadable if present along with SEC + * Firmware image. */ -static int sec_firmware_load_image(const void *sec_firmware_img) +static int sec_firmware_load_image(const void *sec_firmware_img, + u32 *loadable_l, u32 *loadable_h) { const void *raw_image_addr; size_t raw_image_size = 0; @@ -172,6 +242,15 @@ static int sec_firmware_load_image(const void *sec_firmware_img) if (ret) goto out; + /* + * Check if any loadable are present along with firmware image, if + * present load them. + */ + ret = sec_firmware_check_copy_loadable(sec_firmware_img, loadable_l, + loadable_h); + if (ret) + goto out; + sec_firmware_addr |= SEC_FIRMWARE_LOADED; debug("SEC Firmware: Entry point: 0x%llx\n", sec_firmware_addr & SEC_FIRMWARE_ADDR_MASK); @@ -289,17 +368,22 @@ int sec_firmware_get_random(uint8_t *rand, int bytes) * @sec_firmware_img: the SEC Firmware image address * @eret_hold_l: the address to hold exception return address low * @eret_hold_h: the address to hold exception return address high + * @loadable_l: the address to hold loadable address low + * @loadable_h: the address to hold loadable address high */ int sec_firmware_init(const void *sec_firmware_img, u32 *eret_hold_l, - u32 *eret_hold_h) + u32 *eret_hold_h, + u32 *loadable_l, + u32 *loadable_h) { int ret; if (!sec_firmware_is_valid(sec_firmware_img)) return -EINVAL; - ret = sec_firmware_load_image(sec_firmware_img); + ret = sec_firmware_load_image(sec_firmware_img, loadable_l, + loadable_h); if (ret) { printf("SEC Firmware: Failed to load image\n"); return ret; diff --git a/arch/arm/include/asm/armv8/sec_firmware.h b/arch/arm/include/asm/armv8/sec_firmware.h index 6d42a71..2ba1847 100644 --- a/arch/arm/include/asm/armv8/sec_firmware.h +++ b/arch/arm/include/asm/armv8/sec_firmware.h @@ -9,8 +9,10 @@ #define PSCI_INVALID_VER 0xffffffff #define SEC_JR3_OFFSET 0x40000 +#define WORD_MASK 0xffffffff +#define WORD_SHIFT 32 -int sec_firmware_init(const void *, u32 *, u32 *); +int sec_firmware_init(const void *, u32 *, u32 *, u32 *, u32 *); int _sec_firmware_entry(const void *, u32 *, u32 *); bool sec_firmware_is_valid(const void *); bool sec_firmware_support_hwrng(void);