From patchwork Sun Jan 17 09:39:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aneesh Bansal X-Patchwork-Id: 569233 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 6951B140779 for ; Sun, 17 Jan 2016 20:42:55 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0ADC2A7579; Sun, 17 Jan 2016 10:42:37 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e1ltZFPYsy9x; Sun, 17 Jan 2016 10:42:36 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E8194A7834; Sun, 17 Jan 2016 10:42:30 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 6189FA780E for ; Sun, 17 Jan 2016 10:42:22 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TO66zr3kULm9 for ; Sun, 17 Jan 2016 10:42:22 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0095.outbound.protection.outlook.com [157.56.111.95]) by theia.denx.de (Postfix) with ESMTPS id 35F76A77FB for ; Sun, 17 Jan 2016 10:42:18 +0100 (CET) Received: from BN3PR0301CA0056.namprd03.prod.outlook.com (10.160.152.152) by BY2PR03MB361.namprd03.prod.outlook.com (10.242.237.13) with Microsoft SMTP Server (TLS) id 15.1.365.19; Sun, 17 Jan 2016 09:42:16 +0000 Received: from BN1BFFO11FD032.protection.gbl (2a01:111:f400:7c10::1:137) by BN3PR0301CA0056.outlook.office365.com (2a01:111:e400:401e::24) with Microsoft SMTP Server (TLS) id 15.1.365.19 via Frontend Transport; Sun, 17 Jan 2016 09:42:16 +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=none 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 BN1BFFO11FD032.mail.protection.outlook.com (10.58.144.95) with Microsoft SMTP Server (TLS) id 15.1.355.15 via Frontend Transport; Sun, 17 Jan 2016 09:42:13 +0000 Received: from perf-idc04.ap.freescale.net (perf-idc04.ap.freescale.net [10.232.14.49]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u0H9fse8028685; Sun, 17 Jan 2016 02:42:10 -0700 From: Aneesh Bansal To: Date: Sun, 17 Jan 2016 15:09:33 +0530 Message-ID: <1453023576-17845-5-git-send-email-aneesh.bansal@nxp.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1453023576-17845-1-git-send-email-aneesh.bansal@nxp.com> References: <1453023576-17845-1-git-send-email-aneesh.bansal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 130974973356501148; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD032; 1:y11cy64PbhrNIc40+7VPbYYuqi4LPYXTI+6WsWd9TefFZe6w9vz8TwMyjbZVpJ4zKTukiRLgAb8gj5b9nL5DuJsC5yZaryGDG2e7kYNvq/ADLdaVtfwsvw2Hh93CmvZ30ZruuRzuUQHICuq3SUy739I720/YSj/9MW4I6ug/+uGq6BQrUGPZNYVuKU7r4tzoXC/EY1OXCjDXmu2nErWkrgn+gdr/dtePpvwd7WOsYc6sQnlDHMF0BNIFCcGvYV98CXU42q0WkGFnMdLzMMPu2qKG6yPhkl9TSU8q04T1NuTh70jofzIsQ0kH9T/yUESyBYF0KKIHo7L7Le/51/j5zUseDuH2oqI7dwk4ezj7i8bEYz/EiPf/nAxkZYg22yw+tc59D7j3Kez7m5OkPZNumlKliAnT6DJsrHgcBmDJ1qM7GG17hKCPgIBrUV7Qobj3Ct0zNP8s3QHPhRfC2/vJ+xKsNDHfbyMrAlML1zF2lGA= X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(4326007)(586003)(33646002)(87936001)(1220700001)(2906002)(1096002)(104016004)(6806005)(5008740100001)(47776003)(2950100001)(229853001)(76176999)(50986999)(105606002)(106466001)(2351001)(77096005)(50466002)(81156007)(97736004)(5003940100001)(19580395003)(85426001)(19580405001)(50226001)(11100500001)(48376002)(36756003)(189998001)(92566002)(110136002)(86362001)(5001960100002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR03MB361; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 2efd1ac1-bd67-4ef1-073b-08d31f227bd6 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB361; 2:ZgxBJ0NFKGvlYuOMqvYgKlFib7ufRq0c6tFgcE0hvYwYIFk3LyQBi04XE5rVkErE+iKgZ74RN+7z5rtOwOi6LR13llTI6SLbxPkdiA/WeZxbeRUGu/1oYIZSyg8dzXjNSMOK0s1mGLkiWdWfvkbjQulGqzHcvr8+q0uDgj3dhOKgn8sunAiKhTxyfCkaD3wk; 3:blHEA7ot2XrxJ4fLnJiG2Nf24Rl1vFlhgdQmE7QOABLlotV51noydotfeMNqOSylDk3NEpu/apRC6fF3Kkvkv0CxfCYFFrTZfLx4qzKuciUjzjCsjJGJ8rdCioJqtSBWLqmt5SDfRgWKTPNmXKKsD2Uxj+Ei1z2m0eUuaMnwKw2Al0Qdi3eeDsByux9EZ7D82pdpT1MBYm4ySdGQIzP4JtEyJSjpX/oTHv1otmd6XpE=; 25:CaL8WTRY9UJwb5y8MI0kgvfbBLT38x/fK7EZ2LFm1C9N5ilWRU/UCf6IE7/07a9f6WRSBb9bD6DAhdWyuis0B2Qgo8vhBo25iCzP5EH1IQnceRQNuVt5KzjYp4GAs/nhSpFjFsLNq8Mlp6dePFnqmQYov6Kp597d9IgBal5tvsDXZhIA0NSOnL4NFFNYaE8cpzfJR7hTvM8ZSFMDtZd8GrUNGCDsRqb0WLI3K3MdJ77i2s4XJLuEbLK6nta+soP/ X-Exchange-Antispam-Report-Test: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BY2PR03MB361; UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(13018025)(5005006)(13015025)(13017025)(520078)(3002001)(10201501046); SRVR:BY2PR03MB361; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR03MB361; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB361; 4:ZxwWwZAYBaLgCpackmJVDWBtRe8UWYARuXtGM6zEzryS6A/usldqDG0kqUZMPvNH9vTeAHepLcF/SXYWBxL1awm3RqidkIK+sW35u/VCVLAvuGYl8//pt7Vv/3ENu7FR2g2xP5uBYPEHJYqWkOP7A0Po37aiaEX1/+bi1qHjgIluCl4N8Pd7ObJs/JRtr5+XoMe6D3wnBljbruTLepJwCyqBLeewDeoFQlfSaJxqdAZ93sdrhnhBZwHGtAWLAgJ3BAkR+Tw3oxgZ6paougLj2Z5JD4HaAoj2FkPl6Va8jeEmTjWT+rGLPvDA9UsrBIVOVEooEWSWdfD82HZW1gVas0KooiuCJj+r7X6F6m5WF307JXRwI1kwXC+BL136U2HXPc6hJdDMoHqozOo0lw4szz8pvnE4AXtaDq3MwsLUq0J95I23aTbKImYS0OUlNDvacWPonehwAIbUKK4EuZ8W3YzGcY3AaRtC17ijSYwWE4k= X-Forefront-PRVS: 082465FB26 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB361; 23:KJyxBlGC0ljgF4RiYn9Fjh+bddpEWqecGY0j6ZtBiD?= =?us-ascii?Q?X6hReqq13z39XF7PgJnZYopX4RSnzRGvBE8na+/8OGrng4s8TLyF6ZYSeKLW?= =?us-ascii?Q?SE6SHzuzrGtXjQmRoH0ea73IrzJRoKw3j6ARx9l8ZrVQmFBWcImha2P0cEOB?= =?us-ascii?Q?Xg5BjB9dH+oXU4TW5UjzwO6gGG1/V5M4IFNiwUJPtTZEZZNXa+slcVl4+Xxd?= =?us-ascii?Q?sILuLNcA80tfSWcr6ACgoad5cbfSGS+2DVOaAvjQ3dNFjAYC9UwKClPeT9ry?= =?us-ascii?Q?xZph58r7GN+ms36blyIsaYDVR9rX5qYGHQPghvME+WW6dhLYXtr32/wJcza0?= =?us-ascii?Q?eD4/fxzjWNxOoGGw1ClcRYhN8jaiCE6SQgyqsE2hxVq55kk12I7FfDnDjCQA?= =?us-ascii?Q?XfzQd5vX5n8MNgElYmmx+Ep+R4gqQOpZsGtLbTJDiqrWO3Z7wo+IwyESOKwE?= =?us-ascii?Q?vTylz3UtECaCqNm+CAN7jicNk8MYw5fYve2G0RRPP6+nEpyBnmjaHyEH/Esj?= =?us-ascii?Q?ueBH8octvgAFKGUPgufy+iRzc3ySduvYY1B6BmbnGZfojLgQnxE8jnh3vP36?= =?us-ascii?Q?/77D6UFlkuZUlXLd/KI28LZ2w+r+WqCw3IkEg2qEzZhOGuxgISIRDdXzwttN?= =?us-ascii?Q?AFH/hQX16DE7SnzOI/lFloRkdO9phTCnrInhvpqR4CEajwGRje2ijzRlXlR2?= =?us-ascii?Q?8Dl/Kamjtdk/s2Q+NapOLIpNPal3wRmEl0p+447OT5IqPYsOC7NCSGg4o6Fk?= =?us-ascii?Q?0bpJuGUzrl7+xR98dW8Dycyv7a5OyAejgByiLLKIbSvwsoq/JO6WQnOpknC3?= =?us-ascii?Q?rJovFyCCtpUkxcR9wQNlMYdi3BENviYJRhWeEXbf7rFlusXXYPhm4s8gzUDC?= =?us-ascii?Q?Oh+1HXFl7v0EPE8o8y12yJ3D1uKkiIo2NgBdLBiZKh+mGNeoaLBHPjVGLNMo?= =?us-ascii?Q?uA3OzXUbJoqkjE6Yk6S8vvClkcDWnf7D+fz4fKe38GX4X3GwM3OfWMrNgNU0?= =?us-ascii?Q?I+YkcdyDpY17WFNlKYXYjtddMJMrht2cu29Yg+R4OlgK5s2DxL12imvHzRuA?= =?us-ascii?Q?EQbRKW5elWuCeD08OmB4wS74sEVltkBOH7Fb9MYNEaPFmHi4etPAT/MFuiLI?= =?us-ascii?Q?922Evq+So=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB361; 5:VguCqr4NbjhJvsVPeP1+j8YrTPWBNG5fhHoRvpiEuAIgd8tZE/TfHX/fqFvUWnGlMrR6fhJTOYDO30I4pqUEgDg6hqR0cgj2M3giI6YNQ/u7hCKxyR83PWcHwMk6D+npYUw2E+qqU7swhb7bG8OBskU05ObwZRublOYy/QME1t4=; 24:ia5nR5fgrOOFvQirzulnUKtvATPqzaYYom8XfvF+nUdKIneHWlcXtqbUdaw8cn7pLqolwK30FXvmOo73rFYyp3rN6uzHr0LDM4WmbXc74ew= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2016 09:42:13.7157 (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: BY2PR03MB361 Cc: ruchika.gupta@nxp.com Subject: [U-Boot] [PATCH v2 4/7] create function to determine boot mode X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 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" A function is created to detrmine if the boot mode is secure or non-secure for differnt SoC's. Signed-off-by: Aneesh Bansal --- Changes in v2: Corrected the macro for SB_EN bit in RCW. .../include/asm/arch-fsl-layerscape/immap_lsch2.h | 3 ++ arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h | 2 + arch/powerpc/include/asm/immap_85xx.h | 3 ++ board/freescale/common/fsl_chain_of_trust.c | 53 ++++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 board/freescale/common/fsl_chain_of_trust.c diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h index 21b803f..297ff35 100644 --- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h +++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h @@ -218,6 +218,9 @@ struct ccsr_gur { #define FSL_CHASSIS2_RCWSR0_MEM_PLL_RAT_MASK 0x3f #define FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_MASK 0xffff0000 #define FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_SHIFT 16 +#define RCW_SB_EN_REG_INDEX 7 +#define RCW_SB_EN_MASK 0x00200000 + u8 res_140[0x200-0x140]; u32 scratchrw[4]; /* Scratch Read/Write */ u8 res_210[0x300-0x210]; diff --git a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h index 89339fe..0a80772 100644 --- a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h +++ b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h @@ -120,6 +120,8 @@ struct ccsr_gur { u32 brrl; /* Boot release */ u8 res_0e8[0x100-0xe8]; u32 rcwsr[16]; /* Reset control word status */ +#define RCW_SB_EN_REG_INDEX 7 +#define RCW_SB_EN_MASK 0x00200000 u8 res_140[0x200-0x140]; u32 scratchrw[4]; /* Scratch Read/Write */ u8 res_210[0x300-0x210]; diff --git a/arch/powerpc/include/asm/immap_85xx.h b/arch/powerpc/include/asm/immap_85xx.h index bc7e5f8..53ca6d9 100644 --- a/arch/powerpc/include/asm/immap_85xx.h +++ b/arch/powerpc/include/asm/immap_85xx.h @@ -1749,6 +1749,8 @@ typedef struct ccsr_gur { u32 brrl; /* Boot release */ u8 res17[24]; u32 rcwsr[16]; /* Reset control word status */ +#define RCW_SB_EN_REG_INDEX 7 +#define RCW_SB_EN_MASK 0x00200000 #ifdef CONFIG_SYS_FSL_QORIQ_CHASSIS2 #define FSL_CORENET_RCWSR0_MEM_PLL_RAT_SHIFT 16 @@ -2193,6 +2195,7 @@ typedef struct ccsr_gur { #define MPC85xx_PORDEVSR2_DDR_SPD_0 0x00000008 #define MPC85xx_PORDEVSR2_DDR_SPD_0_SHIFT 3 #endif +#define MPC85xx_PORDEVSR2_SBC_MASK 0x10000000 /* The 8544 RM says this is bit 26, but it's really bit 24 */ #define MPC85xx_PORDEVSR2_SEC_CFG 0x00000080 u8 res1[8]; diff --git a/board/freescale/common/fsl_chain_of_trust.c b/board/freescale/common/fsl_chain_of_trust.c new file mode 100644 index 0000000..ff67bd7 --- /dev/null +++ b/board/freescale/common/fsl_chain_of_trust.c @@ -0,0 +1,53 @@ +/* + * Copyright 2015 Freescale Semiconductor, Inc. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include + +#ifdef CONFIG_LS102XA +#include +#endif + +#if defined(CONFIG_MPC85xx) +#define CONFIG_DCFG_ADDR CONFIG_SYS_MPC85xx_GUTS_ADDR +#else +#define CONFIG_DCFG_ADDR CONFIG_SYS_FSL_GUTS_ADDR +#endif + +#ifdef CONFIG_SYS_FSL_CCSR_GUR_LE +#define gur_in32(a) in_le32(a) +#else +#define gur_in32(a) in_be32(a) +#endif + +/* Check the Boot Mode. If Secure, return 1 else return 0 */ +int fsl_check_boot_mode_secure(void) +{ + uint32_t val; + struct ccsr_sfp_regs *sfp_regs = (void *)(CONFIG_SYS_SFP_ADDR); + struct ccsr_gur __iomem *gur = (void *)(CONFIG_DCFG_ADDR); + + val = sfp_in32(&sfp_regs->ospr) & ITS_MASK; + if (val == ITS_MASK) + return 1; + +#if defined(CONFIG_FSL_CORENET) || !defined(CONFIG_MPC85xx) + /* For PBL based platforms check the SB_EN bit in RCWSR */ + val = gur_in32(&gur->rcwsr[RCW_SB_EN_REG_INDEX - 1]) & RCW_SB_EN_MASK; + if (val == RCW_SB_EN_MASK) + return 1; +#endif + +#if defined(CONFIG_MPC85xx) && !defined(CONFIG_FSL_CORENET) + /* For Non-PBL Platforms, check the Device Status register 2*/ + val = gur_in32(&gur->pordevsr2) & MPC85xx_PORDEVSR2_SBC_MASK; + if (val != MPC85xx_PORDEVSR2_SBC_MASK) + return 1; + +#endif + return 0; +}