From mboxrd@z Thu Jan 1 00:00:00 1970 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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AF5A4C433EF for ; Mon, 27 Jun 2022 02:47:21 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5C1BE84506; Mon, 27 Jun 2022 04:43:31 +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="QzzxUX/T"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BC854844E3; Mon, 27 Jun 2022 04:43:20 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50077.outbound.protection.outlook.com [40.107.5.77]) (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 B6DD0844F4 for ; Mon, 27 Jun 2022 04:43:17 +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=CiDV92+Ke4QDV/P9XqWLJDJStBZ43TCsgZKX5eW4EhM7HlAjq71YMmcJoAQofz0TZ/hWMeXX35co5zXJQpG9cj9KSnlkb23SQ2iqh5LMlEwrP69+Bsed122PyWrn+PiIOl4omd65jIX/NBYTOthIivWjjXfFT5Q2fJW9MBErxj7IkZuRCwCRhzIs7lBcDwiOL9HmBuew6W9Gt5zvIH1ax6pPYL1w1FCfkCKeeq06CtZ/lkpGIcmJCbxVKw5hMfXZoSd2DDTM4+qtbOPDXaE2g/QAcHxoiRs8HXvhXQ/WC4NmX6D6mHhILoyNsabF6RB83n+OSubod7EFDulMI1klFA== 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=o361Ya3kDSSSHe0beYPBmixJyRYnq75VkDQ8RYEx4Nw=; b=ZgEijxYkcibRMTVoTz8kQ8o+1nF44/aeGVYN9Yk76YCjoXC8/c2VCXtRM9bBAlYfhwhqN0NVYW8lH1fI02pY8q3xo+fqwZLIqq/uNyr/2j5OydT0ETGFqwIQOjXOpjaKXQ3WdvwBqGQtdqiNidtfPBNQxYVvxqJ7z4NglWworLmbniIzY89ddDUG1m0IIvJwSSCtPqGm6CmS1n5vrcty926QHf/bh4llqGwu6gVuG1CyXFkeqaJduPjDOjdS6mXwYpyTYhCDV4MDZmvqAIZLw2lcDvBOXbHR+ACO/COfEjWo2kr+kFLDzFA0+Lr1Ajc68RCDXNmydYrF56A42lGWlg== 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=o361Ya3kDSSSHe0beYPBmixJyRYnq75VkDQ8RYEx4Nw=; b=QzzxUX/TB/E+8AQNJNWcHwAgW0D2PsXy6nGCxBdeIlEtRdbyWVW9TgjgiRXpQgzSW/IlOLLRf7u0uVyfmkbH+4MeQ7WYAIECF8tkhM+pOuy/D/Jgju04QuXxmkT4HMBMTQACsuVPhOCQyKp5zjEAK1R6rCAH8Oe1i1fomlTbWnQ= 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 VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:16 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:16 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Alice Guo , Ye Li Subject: [PATCH V2 30/49] misc: fuse: update the code for accessing fuse of i.MX93 Date: Mon, 27 Jun 2022 11:24:36 +0800 Message-Id: <20220627032455.28280-31-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) 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: e987b7e8-6931-4e59-eb36-08da57e6c94d X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cpxqJh4UP4atvzfzNXypyy0BugDun97yy2pYPoM4hAbr7nqKOYGOG4tMjah1uiupuRQRX/VtRY7BzYyzAvwJxcBkmEpoAtOyKjV16Rrb8+tU4PRahSNmXu6y++LJpGrHhfCuRIPvTzINc40lYR46wkrjuUPZowEvyHjFcE8opNNxtLWiN+LTExqDVYLjwmwJVpMP8kmto+voNC4gEY0ir7ipJvXeFWodnDIEE6e1sKsKy4KOQ7M86JTMEHxQpwnzWp6DGepX9aPekBCcc6Ok69T7Tn9BsZCjDw0vKdqHPj60bu/ByTpqWREvSXLFa1/KCqfojytbIcsGHL9b/tTlMwvb3BKxReFgJj06h7qQo6RPfj13Z1znzhIT7WSHNxMNg5+ZeOrSEis8EUCJNqiF9gRkvHZyhRbWvpcD10WKTu5NAbQBqeImwaYnhnNBj/Wz5NmbpQ9KK7htS6S0sQ8+WaZwMYZENseoiRJvI3LjQXor63xvoqxZGrPJxj1nbwhhZZi1+uF+E+ZGubbur9JvTELYeCxOh4piPdg++MMQPxLoQOCLCAkdN3MAeUAOuPAn6pewX8ZEmO1bFZuPdcbyKg3no1ipnGTDsY+Dj9tPJuvV9/ofgU4U/xj32g7g3Sla8soFB6vaRT5FFFMYHznVzKVRW20zn/q317ManCAXNZkWfunV8C0s4EKqTpUCPX3G7D03vFmMJ86xSlXNHgMVGI6gwQh8V/RU3qQOF6N4aESgAkYDy6jhIr6VHXS+7uSh6XIgMt3jDja8Sj695DsnZpmsKuM6ogBYUVquR9Ay1WQ= 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:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(15650500001)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007)(54906003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+07AQAbFir8wjp0Dcvo1kqp76eNU3DoUD4INHZOiHm4Lt94vrN3v11MRddeN?= =?us-ascii?Q?2fXI9MM3w5Ilr0mq2TbFwM/sTzTASjVgX7676qbXZ2pJ2aXudnmJfwM1Y/Pq?= =?us-ascii?Q?1ahW+OjnDU7Y4M6IRKY32VuBhqNWgJ7rOeYbt0AKF3OTROjaDnfJnHSMc3A3?= =?us-ascii?Q?jgW3wB8EJGphlQymb8Tu225/mkDlSR7JHcN1hemeE5jk0wlWasWHxVhzoYd7?= =?us-ascii?Q?PWipXBqQMlu0Ul4x/4VxbcAahvNrur84/o+Vjk4dszhJWP9uD1fmCw2RQyUp?= =?us-ascii?Q?2CFccCMnum0OHonrszcSIDFjQz18fYm/mmL3B40IT5qjpKjeGschUkcQwcKT?= =?us-ascii?Q?gnxhvavEIcEGCxLHGJ422Wby9RrhN5HMYYBu5mQzRwydZRqaHQGPH1L0ZE5q?= =?us-ascii?Q?hHXOVAahgITfVXeCL2HyNNmkqVLUqrYOZpB5LrxoCuGAljQh7yoxEDa80MU5?= =?us-ascii?Q?so3/30AiCQ96zwdmkUgq49IHSYgiGiNX3uEfcuCfPqOq3GjEml+oB1Ug5Cbo?= =?us-ascii?Q?uNqwu35xlyI5qMjj04feiuH1an6/oSOZdas7m9dEWSoeQjSiLSUHjDK8DGrY?= =?us-ascii?Q?1m/bOprX2JgWjDjnGv6f18IA1/TxewXVnz3xHykBuaJfMM7FKaV/iL208znS?= =?us-ascii?Q?8MqFSxlAgTZQdNXegcdOVR56nEY/9aB6PW/y6bP6Vo2JOs8jm7YujLveO8Bg?= =?us-ascii?Q?IDSGBVO7jD7HT7M3tEH5tBBecGjILfmoR0DC8736T7EvMUeWmf+sSM8tPh0d?= =?us-ascii?Q?BpVBjZOtxckDp2hEmKsCmXPGdCGxiJ/wajp5m2WYEADg65b85HqwzCCPdXlG?= =?us-ascii?Q?mnaWQbZmkqmqBJnvgGmcNSizxO63JqRKVxIzSDuQMjrQ2dpSDjdFX5ijldyP?= =?us-ascii?Q?RKKWHDiba8mQg8Dtj4jqDSdQP18lAJ27eAFUQGT913v71djzuPTz8y1TiiPY?= =?us-ascii?Q?H8BCwQ5dDTXbLDuVs1pIi5vCkCHnrcZ89v+jWXA33mPOqWcQ3qCX5JHtKuV1?= =?us-ascii?Q?JqxKwQDDSR5m1jGloFdBbTmOtKT0d/McxXdG1IHu4lj154TIaALOcWbgtyWa?= =?us-ascii?Q?HURrrffYMsiSqBvUxBUVoYBYVy69Lu79iLMnFbG6JxN5dZsrZCqVi7Ly6OdK?= =?us-ascii?Q?/k6LDy042ttgxWxc6a/hK0Hc2F18Xdwodsd291z8p7HxDfuLahLeliAIhYeX?= =?us-ascii?Q?D8VOPvTRybpxp91gJJlyuqjx1pHgrEqp6tnDN2kNaqHDJ3sp6B9hJXCtGd37?= =?us-ascii?Q?GJg564BCIFGX9sNYSlwoi9cnwLD3+il4SPUnEPQdDKaoK3+kL2AmSWOe9oUe?= =?us-ascii?Q?Ixff7f/hsO7LzxNdfoa+Gz7H1mPmweWIakFsRKuyGPpDKT8yhw5TSGNn7Hfh?= =?us-ascii?Q?qgb+1PmonyT+a2aw9xGEb8chELKn6brOJNKIOmX+Yr5t7cmmZZwfyDRKRWlG?= =?us-ascii?Q?0gCAje7VcDUto0ulM6ajreB5pRWV/N44Ke58oMtGD/SmZKwIl6+nX7mAX/Ca?= =?us-ascii?Q?A49a4AkdaZ/E7x5cWt2Gi+3T5mULHlzexQ9NmqPGm7EK3xytPx/b5zW1LQ0z?= =?us-ascii?Q?XwDoNtn785EFh0T+zJuofuIZ7HC+HC7FGeAS3pLF?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e987b7e8-6931-4e59-eb36-08da57e6c94d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:15.9486 (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: 969eeQqe+98NmAqp6G+K4Vr0xdribWNfaI5WKwBI5MqRu2UiuyIleQoDQsRljE4/6jSX1XsVXlPXDRhrG0GOKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Alice Guo Sentinel have read access of OTP shadow register 0-511, and fsb have read access of shadow 0-51/312-511. Reviewed-by: Ye Li Signed-off-by: Alice Guo Signed-off-by: Peng Fan --- drivers/misc/sentinel/fuse.c | 86 +++++++++++++++++++++++++++++++----- 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/drivers/misc/sentinel/fuse.c b/drivers/misc/sentinel/fuse.c index abb4c072f9b..e2b68757664 100644 --- a/drivers/misc/sentinel/fuse.c +++ b/drivers/misc/sentinel/fuse.c @@ -75,22 +75,44 @@ struct fsb_map_entry fsb_mapping_table[] = { { 0, 8 }, { 1, 8 }, { 2, 8 }, - { -1, 8 }, + { 3, 8 }, { 4, 8 }, { 5, 8 }, - { 6, 8 }, /* UID */ - { -1, 8 }, - { 8, 8 }, - { 9, 8 }, - { 10, 8 }, + { 6, 4 }, + { -1, 260 }, + { 39, 8 }, + { 40, 8 }, + { 41, 8 }, + { 42, 8 }, + { 43, 8 }, + { 44, 8 }, + { 45, 8 }, + { 46, 8 }, + { 47, 8 }, + { 48, 8 }, + { 49, 8 }, + { 50, 8 }, + { 51, 8 }, + { 52, 8 }, + { 53, 8 }, + { 54, 8 }, + { 55, 8 }, + { 56, 8 }, + { 57, 8 }, + { 58, 8 }, + { 59, 8 }, + { 60, 8 }, + { 61, 8 }, + { 62, 8 }, + { 63, 8 }, }; struct s400_map_entry s400_api_mapping_table[] = { - { 3, 11 }, /* 24 .. 34 */ - { 7, 8 }, - { 16, 11 }, /* 128 .. 143 */ - { 22, 8 }, - { 23, 8 }, + { 7, 1, 7, 63 }, + { 16, 8, }, + { 17, 8, }, + { 22, 1, 6 }, + { 23, 1, 4 }, }; #endif @@ -102,7 +124,8 @@ static s32 map_fsb_fuse_index(u32 bank, u32 word, bool *redundancy) /* map the fuse from ocotp fuse map to FSB*/ for (i = 0; i < size; i++) { if (fsb_mapping_table[i].fuse_bank != -1 && - fsb_mapping_table[i].fuse_bank == bank) { + fsb_mapping_table[i].fuse_bank == bank && + fsb_mapping_table[i].fuse_words > word) { break; } @@ -146,6 +169,7 @@ static s32 map_s400_fuse_index(u32 bank, u32 word) return s400_api_mapping_table[i].fuse_bank * 8 + word; } +#if defined(CONFIG_IMX8ULP) int fuse_sense(u32 bank, u32 word, u32 *val) { s32 word_index; @@ -198,6 +222,44 @@ int fuse_sense(u32 bank, u32 word, u32 *val) return -ENOENT; } +#elif defined(CONFIG_ARCH_IMX9) +int fuse_sense(u32 bank, u32 word, u32 *val) +{ + s32 word_index; + bool redundancy; + + if (bank >= FUSE_BANKS || word >= WORDS_PER_BANKS || !val) + return -EINVAL; + + word_index = map_fsb_fuse_index(bank, word, &redundancy); + if (word_index >= 0) { + *val = readl((ulong)FSB_BASE_ADDR + FSB_OTP_SHADOW + (word_index << 2)); + if (redundancy) + *val = (*val >> ((word % 2) * 16)) & 0xFFFF; + + return 0; + } + + word_index = map_s400_fuse_index(bank, word); + if (word_index >= 0) { + u32 data; + u32 res, size = 1; + int ret; + + ret = ahab_read_common_fuse(word_index, &data, size, &res); + if (ret) { + printf("ahab read fuse failed %d, 0x%x\n", ret, res); + return ret; + } + + *val = data; + + return 0; + } + + return -ENOENT; +} +#endif int fuse_read(u32 bank, u32 word, u32 *val) { -- 2.36.0