From patchwork Mon Jun 6 11:23:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1639219 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=A03N9pUO; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LGqtZ0pMTz9sGC for ; Mon, 6 Jun 2022 20:47:02 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 947A8843F6; Mon, 6 Jun 2022 12:43:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="A03N9pUO"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 36E6E843EB; Mon, 6 Jun 2022 12:43:16 +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,FORGED_SPF_HELO,SPF_HELO_PASS,T_SCC_BODY_TEXT_LINE, T_SPF_PERMERROR autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on060b.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::60b]) (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 4A717843C3 for ; Mon, 6 Jun 2022 12:42:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NYek9qjc8Sp13PR1FJ3o3chDGjVj5W3S2hKlTmOqGQxvqLnYEu+173nyLF3JCjUxgtrNZ2ijqb5eQRFDnry72Y5fY0f98Kws/k0jhTnLyjHqoA7Pw39WzNAChTE2RFdmYI2AgnIDE1CYaJodJ+s05a2m4uiLKlFoQA/AVuNH8FUiqBPji3dSMZ56OwlHqTML6wUeZVydbCg1NU+cbc/b5KEqEZdwzGvvqCFF7pJ/jXt/uvcK9+PSXezqmBMHSV+w0anCOyHkcQYCZyA5ei2NTu4Wos5yhBtj1R0TLei9dDJOdE3QUNO9LOhRNcb4P9jgy9PivKklocv8IQ42v317zQ== 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=eIgsfOJVYg6ExMx+FguSkz+OdqHvSAe6qYe5HAcFl7U=; b=Izy9nI7tO9dX4F8mnmyLXTpvn5TPy+tNIBhJjfdhSGVjndkMI+bZx/E0VoWiqNNs7Q4/8f5+00ZvyEc4WZ2kNcQXly9thdqbOXfe16lRhrQcA1RRHLX8WxXuxNRqzvx6J2kZwafYurEcOwSng7ZGCwrEtaQ/z7tMJJKMi9IwtN0WX007mwOApzR7282gHq79x5gHDu7M7L+MLpnIioPxQ7scpvOGN1OHsGuo/Z6GhfmMSanXtYlgsikVjDdOLbQTFM/38/sGHxu8SPprhpvpJ50TFf0tbVXuPOt1bJtKD/ZRThF7WQCutpcNxhS8Upmcsk6Bqy8vbwC//MbHORKZWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eIgsfOJVYg6ExMx+FguSkz+OdqHvSAe6qYe5HAcFl7U=; b=A03N9pUOzb9wHLrkX7IfCR8+s6KH1iUJiOhNXrtAWEqgzWyNM2gFAstVRS19LBybtgFaoU2QTZH4TJ7p2rHa43PjIcpVmRd2KBaL0cvSlSQrR6Lkygk+k0zHGVG6qDK0uVG4/0IbUvDz80CrMJ1YhmErr2Y45NtsoiuXm8HTybc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AS8PR04MB8312.eurprd04.prod.outlook.com (2603:10a6:20b:3f1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Mon, 6 Jun 2022 10:42:45 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::a892:e4a9:4769:13a5]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::a892:e4a9:4769:13a5%9]) with mapi id 15.20.5314.019; Mon, 6 Jun 2022 10:42:45 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH 25/49] imx: imx9: Get the chip revision through S400 API Date: Mon, 6 Jun 2022 19:23:57 +0800 Message-Id: <20220606112421.31711-26-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220606112421.31711-1-peng.fan@oss.nxp.com> References: <20220606112421.31711-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR01CA0025.apcprd01.prod.exchangelabs.com (2603:1096:4:192::10) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fd3efbce-e9c7-4883-dc76-08da47a94ab8 X-MS-TrafficTypeDiagnostic: AS8PR04MB8312:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MlhUQJ0YN7NS4+ekOboYVMAOjjGPm+0EZHx4OdeQh4HnxNBSn3F8T1xThHuOmcsydJ4QGDbFINQ6be/DG75iWtz67GZzqff17c6PllKM/mBXSII1PVAWBXjEYS2DTYpfkR0zMW28FQyksuwEvVYAI36m3SUjc/qOblJJYBu0+djwk8erxtsRTOs6kuZsjndw69nT+L8iz6F7U8bWNp+4+dkr8loLzmax3TQE1vn9ZYGn6O+cziWiCzvl6P+XnLLv5r8Ju93WtH+sayxMUs//Qdr2FSXCAnGzzNUQcHRyMqRTX/3aTYkDpXHnctMGDGUa62ncdnfac5+9POHgN22GxgKNjCxPMtQktOuHuHYWecEJBuYadA27nJVH/n2QuB6ct3Jmix9090wFpvSOoBV/6o87cNmvtvt8rMoDsLWD4h/imn1h0JauMAdBcYr0RQpMr+ZoZG+PWHi/T84F1w8knhsrF/i2+4SG1geky1C0/R5Y7dyimakVMxaKLHYRDnWlPEV2UgSNAQgMxqjSPGSYtyY96x+jlibZhmRwpRzrWBReevewKWSS7ZoMfk/PNpP7ajE+JMWXTogZKe7s9EDa3t9HnhIT1KOSsOGA4YQLdwEvjtGjVweKAJp5QK19AaodYOsPpHWbrpRHHwQt+HelJBcos6mKrRTdF0156mHR2meMrJNrMjqe3CDzKXVzGkKnev+lrlb+7NIDZX1wWm61v3ql2PGX7lQmEpV/tobrLhM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6862004)(8936002)(8676002)(38350700002)(66476007)(38100700002)(5660300002)(508600001)(6486002)(66946007)(4326008)(86362001)(2616005)(6666004)(83380400001)(2906002)(66556008)(52116002)(6506007)(186003)(6512007)(26005)(316002)(1076003)(15583001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8daj7/zeIcm21fgR+FOC7DHYZu7Uen3O6ny2+I9JYj3fyTzlUgA8dkAJx+ItOFvXXYU45EMSkIyNVIFGmt4LRzUO1aasMeJNCMKIfQBwkTPdaq4kxVavMYCINF/885PzRhBhUdkbpERe4CO/JAejfF6eZr3JVjXZWr1dhns8pXHwR5+1TQtAHounkUszcqTRGDmtp8MufqHgfYHv2zDEolUMVeJG5Db3VPqqLMP03Xwa8MtMp9f+ET4vHQamDMgveyEyZP6VGSOEwtltLCpLjSWFVMj3impVq/HtKBsySuNZ37K820aLWV+6euLhGgngoIsg1L8aaDdiZ8xpkoBvefvpGhbm3vDN2LfWNz0pZBj9M76D6/OmkZQTAegmm6ovUCnGp0pOA44uPFggPk2BsrSQE2BDB/1Yz/sFEDo/sPNBZyunrijDgnwbA23QIQo6Dqc4qT2tt/l/OggeIMiuM/WG9MKZ/NmB6Pti5I/CdC58cgnangdpbKJVYRs8iB0r3HVtAKpHMqIkZJVGt1bHpW9Hsw8eT8EfUJmdduTUxEb5bzvwPVmKT5PO5UkSMvGUhLR/ydX8o0avJRZVAZrFpxyOKGKaIeZ+SkuRD2GFz0VQjisR3kADEr4eNyNLaPyG/VKtrp+9WA3sF5qpzD/+PJzAtvuAwmm5ly/53zvG123dCTEqMKSH2/k818r1oMd70Qkd7UxlpLDluCkh/L5+VJKmZF1BEYL5h5qmyKv9aZ+d5fIf+7eHRZyPLIBZNUEca9BKVTLBBj37LqoGAJsgxSxguzIJ0cRw9+Z0fsPt/A15/hTGccewnXhmE9O1wp4hPKYYp+GWVVOW7TwlTh27Dqd7pg24CYxmHOGQ7VwqeW9Pu720b7VGGWhi4sGk0SM53n9X8rwHZf7wNOzmrsAtVQXJzasOek2qH32h748HHRzIURMa4fa5X44bMjDbiviylWbGxgHHDS5IxDv+8tgavyQ7PtgX7OI0Vfp02uR1aAUF3w/v0e1tbUyejk+Xff27MZ9U1CS1v5MaF3FpgC3K87NuurgxgXzuj2G7BiUch++anH4b3meNFEC2r3Kg/6RkH4sYkca3aIU3tN6CPHSKn9Tse/FW8hBC2t7PQEyNWrQwxcxhfdhBXZfEhraDOXNly/P3wubseU9PzXZ+U0OnYzfPCqpMcbsNiPQEyfm3sy6FiM7sGD6IpRVk2pDpuqiTOh29IARrRVgMigCJCAhx/Tc+ftM53iqlGsvprcJTyaK07uIBXsjv1kdTkvd+UfLWKqr4qmHTIjuDj2FQjjI4Df9ZzmiSfu2xw8GBvlYF32QVQzGV1lCV54Siz2M89OL2NoMr6azDMHj+NyD4gpWTiGw5/Ik2mKJ5gwQiXC43DbaPeaniAEvO6O+GN5m7/4RnO+CSPhTDqQu9X4gDN26X+pqxOaIB7K5rK3SneADCa+iKDjJ3AnUdCKKbnuxy7VHmHVDOim2JL8NQ7xbL7IpbP3u30yBtbQclGkbWbNv6lqSwgiH+XahNbMF06ctmYvyoaZM7gG/mtEhTfnEF81lW1GwOW8D+HGYzH615HvVjfpakpPcXVFXV5f6LgWUfFnafUsfUfIY/vHaSphHr6RVqDbcjTj1gO41/X5YCy1B3DCxxA9pLJ97gG05bUEF4a00dxNAnI25w/h/oI6az+9kp1t6s1kV6OOQ6K9vJG7/RGx7eoPTagChtgfhfxHQIad22Cs7nDQlB1uCyoyrqIQZ8KA== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd3efbce-e9c7-4883-dc76-08da47a94ab8 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jun 2022 10:42:45.7052 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IX0h/+arvVcF9kCN3UBb0WTafVfeODpMFbb0lpKGXQq2W8i1oN4KmEdS7VaWS0v7ZUKwIj/lMKAoMvjBlaf8Tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8312 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.5 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Update the get chip revision methond to use S400 API, also record other information like lifecycle and UID to global data. Signed-off-by: Peng Fan --- arch/arm/include/asm/global_data.h | 3 ++ arch/arm/mach-imx/imx9/soc.c | 49 +++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index 09f352269e5..6ee2a767615 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -92,6 +92,9 @@ struct arch_global_data { #ifdef CONFIG_IMX_SENTINEL struct udevice *s400_dev; + u32 soc_rev; + u32 lifecycle; + u32 uid[4]; #endif }; diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 7c71cbdd55a..6df6f3f3296 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -27,6 +27,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -67,9 +68,18 @@ int mmc_get_env_dev(void) } #endif +static void set_cpu_info(struct sentinel_get_info_data *info) +{ + gd->arch.soc_rev = info->soc; + gd->arch.lifecycle = info->lc; + memcpy((void *)&gd->arch.uid, &info->uid, 4 * sizeof(u32)); +} + u32 get_cpu_rev(void) { - return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0; + u32 rev = (gd->arch.soc_rev >> 24) - 0xa0; + + return (MXC_CPU_IMX93 << 12) | (CHIP_REV_1_0 + rev); } #define UNLOCK_WORD 0xD928C520 /* unlock word */ @@ -198,6 +208,17 @@ int ft_system_setup(void *blob, struct bd_info *bd) return 0; } +#if defined(CONFIG_SERIAL_TAG) || defined(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) +void get_board_serial(struct tag_serialnr *serialnr) +{ + printf("UID: 0x%x 0x%x 0x%x 0x%x\n", + gd->arch.uid[0], gd->arch.uid[1], gd->arch.uid[2], gd->arch.uid[3]); + + serialnr->low = gd->arch.uid[0]; + serialnr->high = gd->arch.uid[3]; +} +#endif + int arch_cpu_init(void) { if (IS_ENABLED(CONFIG_SPL_BUILD)) { @@ -212,6 +233,32 @@ int arch_cpu_init(void) return 0; } +int imx9_probe_mu(void *ctx, struct event *event) +{ + struct udevice *devp; + int node, ret; + u32 res; + struct sentinel_get_info_data info; + + node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "fsl,imx93-mu-s4"); + + ret = uclass_get_device_by_of_offset(UCLASS_MISC, node, &devp); + if (ret) + return ret; + + if (gd->flags & GD_FLG_RELOC) + return 0; + + ret = ahab_get_info(&info, &res); + if (ret) + return ret; + + set_cpu_info(&info); + + return 0; +} +EVENT_SPY(EVT_DM_POST_INIT, imx9_probe_mu); + int timer_init(void) { #ifdef CONFIG_SPL_BUILD