From patchwork Fri Mar 14 06:52:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 14016343 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1A07FC35FF1 for ; Fri, 14 Mar 2025 06:55:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:Date:Subject:Cc:To:From:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=XnFyzZnqMoky8Ia5bG8t1qzz0EqjBcV6mjGfZUxjJQk=; b=lfDcfQxDKLgnjwsh8CnqjF1VN0 bkV4No86hOu8XfktrsX6QiJiLGhxBIKHVkkqi+GZ2b4BjQeucMSz0ZxNXuSwF+tWuJ8d/fynnfeRR HHuYjo6MXT6fWsU9Sm+SmYyVxvzNBiIx4aD7WJvKeCyNX+zaJfKkqW3UAlyNiXG3RwoLPwkJYYexk m2hmm763OqDKereY7b87jbHbhuWGeFVlkoS2Rund3Y8FSWMpmnQiZJ2UnWHvb+mfiHx5UqL3FPhg5 6RdwKI1W0z5cZbr/Zk+utmZtjbwO2Wba7qrYpdFA4k0Mmpv+/rJptGwXlCdGQ+U0XsR3OIG1QNzF+ 3aFV9Ekg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tsyxB-0000000DFUP-3he3; Fri, 14 Mar 2025 06:55:33 +0000 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tsyvW-0000000DFM4-0y76 for linux-arm-kernel@lists.infradead.org; Fri, 14 Mar 2025 06:53:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EGl6PlINSQ+Z76E202lsrxmRY47C+6jKFOArFPgtBiDIMwOJ9cRgN9nz200LIY2hS5kd1R21OCGLMh4sdbLU49uh5/8XyNwW2ogopHOxQKs60rRjsISjoaRtq6WRE15FcREmCE62s84qZnKtEly0O6ydddkYTSLUm9WxzjZef5MlZ/rsJEe63ypAVHd9UAZhXVa252Mq5i8Hje6GulyXUG27lxZsaF1vZv0S63xBeTHg8Qyfkg9n7lYKOZYlmhkrvvyiuziEZnlpFizssBgvPtdcvRMhfnpSUZW6zvGtbggCEuV6McI3EGHZqA6NeCpvi/5iAHUXc6Q/85vGP+ULDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=XnFyzZnqMoky8Ia5bG8t1qzz0EqjBcV6mjGfZUxjJQk=; b=rOorjmrUZdtJUm4CtlCDas45mOs+hqML4BdzCZExg7VsfZvlUjrtR65nu0QFAC1sq1EsxpwQFX8CKIPyj/gjpLUaebxRpPX1YBzW7pXYVCT0fQ/37JFJvpqZ954jBbt5i1v1ByfAQOgP+Cj2oiE5d6NG6flG+idyUZ8t7ScXoVOdMid+jeGdK91yoG61qDTyHG5MIu+r+Xrsb60HbogSUJWF0nHO2klU4l8Ad0wVgRKysjUpjXdEq53LYxQx0gx3oJGzrFKPhTwg6x9dpy0lsTTY1iZKnkIE4IDT8ZCrrVJgD1kfpkt1B1u4oh92JdazQxMxpZD/NMP++Q4vCIsQkQ== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XnFyzZnqMoky8Ia5bG8t1qzz0EqjBcV6mjGfZUxjJQk=; b=waDNCSOnSM5t/DuXjubLDH9mX6QUbqLOb27F/QRMXFSZ2xbRzfeH37evlo6Ot0kqJcgEnalYS7fRgw/siuIdPHhmf0ApDt+S9MlDK+GWhH1XWZWltB4WwFjFcWljufMck+gn5jmGmdKjkkTV3THdlK+WEwI6wlbSsCF0r/NGg1l3e0HsFX1/bylHu5ei+PHpaDevbyMwKQX+Q03FCO7T0EXTUDCR/9FgfrOWCj8CkESz/VJTKJ1d2BuXqO0JIdcJ2hbGdvC6cc7w6Zua0D7t5tEH62xlMwFs4pujHuRGKPdvHbiPtcHJAXtxLpNv0OCXOKEzY86eEpvmEdfZw61xmw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by DU4PR04MB10483.eurprd04.prod.outlook.com (2603:10a6:10:565::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.31; Fri, 14 Mar 2025 06:53:39 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.8534.025; Fri, 14 Mar 2025 06:53:39 +0000 From: "Peng Fan (OSS)" To: shawnguo@kernel.org, s.hauer@pengutronix.de Cc: kernel@pengutronix.de, festevam@gmail.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, marex@denx.de, imx@lists.linux.dev, Peng Fan Subject: [PATCH] soc: imx: Dump higher 64bits UID Date: Fri, 14 Mar 2025 14:52:25 +0800 Message-Id: <20250314065225.442717-1-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.37.1 X-ClientProxiedBy: SG2PR01CA0160.apcprd01.prod.exchangelabs.com (2603:1096:4:28::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|DU4PR04MB10483:EE_ X-MS-Office365-Filtering-Correlation-Id: 75a5eabc-39e0-4abc-918e-08dd62c4f314 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: RkFXd/Ec/Fgp6Z2O+TUUsnj2TgRdlddsweV1k8ZawFk2eKhP0kTWQ2qp35pwV08wmQraNsnWRPr8dPCUaX8lvIze9YYFZ/yctxOKPqmWpCrpB60KdcYo+0qAfwgjOekKtkcGxdVlB7bzKFdTOFp1vVXn99NY6kACC1CMyEvddi1ObGRR5VGuY7psRU/CODXfRpPL98XgcMzsw4Q2l7HISc+Xs0cuzAY7WbqWI/wvrwQp1DFgqj1F2nxbbXwGy8x55hzCuiXY+iWqwC7lw6PYVO/YYPm+vw8Fn5BCdD4CD1biPIRVnkSODe80402fBpVchOI9DlR1rN6TpG0AHBy3NcGcUnP0ZRZLJwhBI7tvFkN5P9Hqv51UcnePR6lJPfUVI0qx2vBuc5j3Xz5f5vjxt+jgwpdgR1vG4WIminXifMtTfMr5P4JiicjFohKK9DHin0w+lqwFxds/qA14D4xtx3H5LluOkVaJj6en+PEDgEiqdF5gHYy/4cxReQEMkOFr+Xb6MvssO6sPSIjRl8WUFwOsnU16zaDhXdiBxiQQFRPBPPgBUxjLkNiFIu0ME3XRCGYntvimBRJZykTrXZZiexAKvht4PbeHvfFPchA8AcrzZ1cUtEbnddaVuZy50bMq1x0sAAwNEMpsNp18f4IBKzPBuAGTegRFisQO2kpF6zbNhnU07Ab7kYpQynRM68QOYrg4mT3+LBC+kuYnbMrpcbGo3XEjTww0hRr5w4k11J+PloBfps7whbisbeP/yxu0VbWT4wSi+AQXNhJQZJB5+0tHPvOVGpieDoqC8SL7mPIRmal/hB6WhCYbydJY+KyQHFj9AtcxsNS4K+KOqiiSwfNXGOUjMzbP7wvB4AceYWHbDtT7ZKHOtMYsuU785/L9nZFZ5csEhknlmLNedGM9HQwBzBvAe23BQwWS1akC1SMwMkno/5MJp60rpPB3RcnX2EQmmZfHKsUIcdTlLSykDTpKJHImIU2FkWa530mMTwN4wO9W/vKYoeQSOBFBT/MNV0FOX90KTbQkmeTt6sijFcl/lysrDk0v+7mx0rsVO5Lu/Gaj7qfDN+QerhfN058roSNxWxQL6OX7LOPEGIyMM+V7ZMWg8UMllGIuE3oZHCC+sI2IlAe+Z4bNjLO6WkOas3cVS3N5BMdw+laIpDZmjSuV/m5WKeJ2g8l0gZJhHWO90bjIu/A5iYe7lUbtOajekTtts33ZfVXv2ZxsrOL4kab92BHK9eu4nZPbdl5t7kbMH0uTaoFAB9pG8tJUIKvhACrAwz92IZ0Lza5uvBYZwOyvBMnHWsfH74ntMh1OIWTMtXOuaZi0wdS3HvDK8Fu/4nBRJ4CGX5K8XUeJdXuJ2L6t9fPCr17iwW3yecTnvNJwLlI+OyddzmocKtyoFZ2FWT+j0NCtvZ3Ch/XGp6yB64SoyNQC0mAvfGf8wXHqj4vd1GUkRIDA2Syp0CNmWBTA X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IMWs2TBSRXoVCO9/+CjCBtB26VWdoHSbR29nJNy8coXYdnrkaVuRUCVZ9DIz9wASLuVNBY75dQWNsdY/VklNuxZDN+A8czifV0GwFh3IZSm6xSLziheadA0a3rXe160X8+AdsX1boXWJBWfVdcp/v7m/0gjPCifdh4q21Po3klMk94e1ysXP/GO7OUNCZj5M33YlDB524sl2ZQmnSeHNH+MFRHWatPLrsYXbqm4nsZETLk4Y93dVT7krkacSg4RnY8kAv+grP3dchlJ8c8FcP5TDHC0jaEFC2X62F7BymikNwqYwIK5aDxCr/IPR8XVBzf1knU0nXjq074JKHZIUlL+zDTGyTGPPlxMwGmGc0jnbMAC9ihwDE2Aay6RivI3yfzFHUwIWzQli5VFcPnavREmrIIm9IoTUPiicwt6bCCp6l9aZWwAHdlelx9Iy9aTLVyp3FhIUrLSuQwf5t4zz0hUWXqvp+7S1FIuYoTvARBXvBE78ilbwSqbgO424s+Dgb4w9NOL92fEZHgRClRbJDfuB2N67hg/5OUB4WPkb7eKVM6679nq0hQTMZNF6ShqiEyAqQ5kIflVYQ+tUTx0oqVJyuxt3i5IsvTXlpTfRCEBlm26BYJwL5TWgkMwuZQ0yP8vWnj6MgAd3Ce3UK0rjRvuvagin3GCT5xEmSOIZhW32EvV/MXk0AI6v0PgviH6b7zwuemwW0UJbC2tEqdMSNT576kqzgBtzoVX75Z/b7ooXmiXI8GRRAj6XHaVGmJvyJKzbiVqxDZl4njPIyyjLb7zd2DgcN4wV7BQyWXk1Rg5TpKPdaR4CwokXgpB1B9adw9B7bjq9ILRFM/MfstYaOAy4sJQQSCWDRGbUMYn5eTXst2LsAa8t6w09IYGeNn8G/Fu4QUiKpAjyLUATT0Ol0MnjMjAxdDpsE7FrzQzfj2fx4j0KUT8sKI0IQJMkYjb0TonnA/kSZVbQPRFhTG+GX/vvNTroR5PoS7zKjfN78KT0+Tm9c6+TRf4XG6K8uUUyOOq2uak+M9Xg9Gg+nwMtYMjcxb6aYrncTb3d9RaEBDgkOIzkisGTDsRdiDm7ElFE6De0sdpRe37wYZaXzl7KicZ3Lu1w2OJ9cHyoyOScxyKvyOcEi9FPAtN5rJKHmarsNp3BDXigfOeqlUFvhCvWhdxlh+q22qmB57SUbNPLFFBr40x6ojFTPCUGjkzkEOuxArYLVUxMYFVLqOokNUISgtBNFh9/QFnJ1PthC952ps2fi2qsa9Ma9JsjW7d3aBN4W//fycSUgOLHMZ/2uOwwFm947yzMjmZWwChDIj9Op/OoBwSMoY3WScam6B3ua/ShoH8Lf7vPwrCWcG9a6IegP+F9Bj1PAnYIkSPPwo/g3zufoo0f/C84TrOOK5zVSUFOBUqF/17YcugJ0845BkK7khvYUIhWZ9BKzuF5VlU/hnkDxZGVZNuoBtj7BP3NCNJ/XjZZuTrjlMGZntOpOfFm0ZSDKthG6bC1+cirklKm+1mEHBhruwzd9ddqFNjCFtKLJD8p8NdVefUK4bRHeGbmk1IXjuquAHTKk2kiudeG0zkLLQovcBr/ggL0MeLJAmnL X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75a5eabc-39e0-4abc-918e-08dd62c4f314 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2025 06:53:39.0331 (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: 0azjYfpiOZlqly6m9/NcL1FdYh6BRJaXW7Xroz1rD4Zh+tjAVgUVck7DKLivEW4t8NSBoIShuPGIHNaHWCkSPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10483 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250313_235350_281013_3854F56B X-CRM114-Status: GOOD ( 13.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Peng Fan i.MX8MP UID is actually 128bits and partitioned into two parts. The 1st 64bits are at 0x410 and 0x420, and 2nd 64bits are at 0xE00 and 0xE10. Dump the whole 128bits for i.MX8MP, by introducing soc_uid_h. Signed-off-by: Peng Fan --- drivers/soc/imx/soc-imx8m.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c index 3ed8161d7d28..02d8c85e9a28 100644 --- a/drivers/soc/imx/soc-imx8m.c +++ b/drivers/soc/imx/soc-imx8m.c @@ -24,13 +24,15 @@ #define OCOTP_UID_HIGH 0x420 #define IMX8MP_OCOTP_UID_OFFSET 0x10 +#define IMX8MP_OCOTP_UID_HIGH 0xE00 /* Same as ANADIG_DIGPROG_IMX7D */ #define ANADIG_DIGPROG_IMX8MM 0x800 struct imx8_soc_data { char *name; - int (*soc_revision)(u32 *socrev, u64 *socuid); + int (*soc_revision)(u32 *socrev, u64 *socuid, u64 *socuid_h); + bool uid_len_128; }; #ifdef CONFIG_HAVE_ARM_SMCCC @@ -49,7 +51,7 @@ static u32 imx8mq_soc_revision_from_atf(void) static inline u32 imx8mq_soc_revision_from_atf(void) { return 0; }; #endif -static int imx8mq_soc_revision(u32 *socrev, u64 *socuid) +static int imx8mq_soc_revision(u32 *socrev, u64 *socuid, u64 *socuid_h) { struct device_node *np __free(device_node) = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-ocotp"); @@ -102,7 +104,7 @@ static int imx8mq_soc_revision(u32 *socrev, u64 *socuid) return ret; } -static int imx8mm_soc_uid(u64 *socuid) +static int imx8mm_soc_uid(u64 *socuid, u64 *socuid_h) { struct device_node *np __free(device_node) = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-ocotp"); @@ -131,6 +133,12 @@ static int imx8mm_soc_uid(u64 *socuid) *socuid <<= 32; *socuid |= readl_relaxed(ocotp_base + OCOTP_UID_LOW + offset); + if (offset) { + *socuid_h = readl_relaxed(ocotp_base + IMX8MP_OCOTP_UID_HIGH + 0x10); + *socuid_h <<= 32; + *socuid_h |= readl_relaxed(ocotp_base + IMX8MP_OCOTP_UID_HIGH); + } + clk_disable_unprepare(clk); clk_put(clk); @@ -139,7 +147,7 @@ static int imx8mm_soc_uid(u64 *socuid) return ret; } -static int imx8mm_soc_revision(u32 *socrev, u64 *socuid) +static int imx8mm_soc_revision(u32 *socrev, u64 *socuid, u64 *socuid_h) { struct device_node *np __free(device_node) = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-anatop"); @@ -156,7 +164,7 @@ static int imx8mm_soc_revision(u32 *socrev, u64 *socuid) iounmap(anatop_base); - return imx8mm_soc_uid(socuid); + return imx8mm_soc_uid(socuid, socuid_h); } static const struct imx8_soc_data imx8mq_soc_data = { @@ -177,6 +185,7 @@ static const struct imx8_soc_data imx8mn_soc_data = { static const struct imx8_soc_data imx8mp_soc_data = { .name = "i.MX8MP", .soc_revision = imx8mm_soc_revision, + .uid_len_128 = true, }; static __maybe_unused const struct of_device_id imx8_soc_match[] = { @@ -211,7 +220,7 @@ static int imx8m_soc_probe(struct platform_device *pdev) const struct of_device_id *id; struct soc_device *soc_dev; u32 soc_rev = 0; - u64 soc_uid = 0; + u64 soc_uid = 0, soc_uid_h = 0; int ret; soc_dev_attr = devm_kzalloc(dev, sizeof(*soc_dev_attr), GFP_KERNEL); @@ -232,7 +241,7 @@ static int imx8m_soc_probe(struct platform_device *pdev) if (data) { soc_dev_attr->soc_id = data->name; if (data->soc_revision) { - ret = data->soc_revision(&soc_rev, &soc_uid); + ret = data->soc_revision(&soc_rev, &soc_uid, &soc_uid_h); if (ret) return ret; } @@ -242,7 +251,11 @@ static int imx8m_soc_probe(struct platform_device *pdev) if (!soc_dev_attr->revision) return -ENOMEM; - soc_dev_attr->serial_number = devm_kasprintf(dev, GFP_KERNEL, "%016llX", soc_uid); + if (data && data->uid_len_128) + soc_dev_attr->serial_number = kasprintf(GFP_KERNEL, "%016llX%016llX", + soc_uid_h, soc_uid); + else + soc_dev_attr->serial_number = devm_kasprintf(dev, GFP_KERNEL, "%016llX", soc_uid); if (!soc_dev_attr->serial_number) return -ENOMEM;