From patchwork Tue Jan 31 08:42:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Li X-Patchwork-Id: 1734676 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=bqfJQEao; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4P5dzy4r1Bz23gV for ; Tue, 31 Jan 2023 19:50:38 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 955E585A11; Tue, 31 Jan 2023 09:50:14 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=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=nxp.com header.i=@nxp.com header.b="bqfJQEao"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9B102859B9; Tue, 31 Jan 2023 09:44:52 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, T_SPF_PERMERROR autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2061b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::61b]) (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 0F2F5859C0 for ; Tue, 31 Jan 2023 09:43:44 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ye.li@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T2vfc4CSBSs1bFu/JES2/1W8t6dLeR3ySxedl9qwWhcAwrbdYpmVK7Dd4cZSeF0dOyzW+T2mmDwsOVvq8DYqKLoRapH4qbvs/nvoGe6P75p0OgmpFO3AHjAngl2+wmh2ZeVnunPi0JvyZBB5b8XSHCd34kE6F9t3nFNSUkJ/bz4tluPA9PreYK2pHMzZf+QzbZx7d/5IqMT2jdoZlTcU+1DDlRHlly01J2t4QD3QsLfHITAOQG93BoriI6e6m5u4so+YY5qdLYuJ0F/9tnO+3TYBRZtD8lRaHMFmTE25tDrnl06ZQf9cghHZO/VR7JyhZ9j7Jf9Fgx7fyIyHO3TA6w== 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=ddGiFBc88teJqEA6/cECjKrFzODAhFMZO/I0W68iBtc=; b=gUuNpcIgX7PLdBrUbRoIO4ZGUu57N9SuTFSc0t8/ACjY4EouaqZrD2UdfnYwx5GxSYkN/WEbUSdc56XZnlOd3n30fxZO3NGKdEYCct6xKtIMJ4ULvPOES0CzZHGhdFQV8OeAoBZdAuus85h0FkkrthbTx6thGr8eYeBbORFV6wGKex0VhuQEWuryUDbTTj4osL0PqKEURdJdqM6JGx7ikbP3S06IKAJYpoPeo4Ck+EY9bKGi1eAT99kcWppDk6Iq1NywFwzgO8hsov+DA1bjpoaLM3Cd82xCwa0RUS7ee9F92NfS8T1B55mZ4oDE9eurCZm/m3qxBDFOF7ESnyxWyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ddGiFBc88teJqEA6/cECjKrFzODAhFMZO/I0W68iBtc=; b=bqfJQEaoKzM5JJqbfi0y3LsneIfuviLc9fPFaLyIZxSwYdeBh0a2l5ifP4jRk2qPRsPjxjawEQO2p/4dUWxQy+VBuTcTwWK+b6/ZKTN8oD5UkObUs3gJegIKi+4hcnArYBmyDxvsjrAq54pNcV/DP+t+3TH5TBgM338jsBM/h2Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB5302.eurprd04.prod.outlook.com (2603:10a6:20b:7::20) by GV1PR04MB9086.eurprd04.prod.outlook.com (2603:10a6:150:21::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.28; Tue, 31 Jan 2023 08:43:34 +0000 Received: from AM6PR04MB5302.eurprd04.prod.outlook.com ([fe80::1582:1a4a:3dda:50c6]) by AM6PR04MB5302.eurprd04.prod.outlook.com ([fe80::1582:1a4a:3dda:50c6%5]) with mapi id 15.20.6043.038; Tue, 31 Jan 2023 08:43:34 +0000 From: Ye Li To: sbabic@denx.de, u-boot@lists.denx.de Cc: peng.fan@nxp.com, uboot-imx@nxp.com Subject: [PATCH 17/23] misc: fuse: Lock 8ULP ECC-protected fuse when programming Date: Tue, 31 Jan 2023 16:42:28 +0800 Message-Id: <1675154554-88217-18-git-send-email-ye.li@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1675154554-88217-1-git-send-email-ye.li@nxp.com> References: <1675154554-88217-1-git-send-email-ye.li@nxp.com> X-ClientProxiedBy: SG2PR02CA0065.apcprd02.prod.outlook.com (2603:1096:4:54::29) To AM6PR04MB5302.eurprd04.prod.outlook.com (2603:10a6:20b:7::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB5302:EE_|GV1PR04MB9086:EE_ X-MS-Office365-Filtering-Correlation-Id: 2805febe-23d3-4e85-f449-08db03673d19 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K8f9SZ1d6ou6/aSJHMpdkFuckPxwaB8Fe/D7UAsxYwbOpy/OnxmZPyNrziSWoS/tgr9mDzYwKwYYzjS6w10DMy2iCl3ihEeyZYiNESIMymnu+XQ8Pjt1eKfk2FptNPhN1W2ud7V5D5jh6MrSfh/cJx8iyzvS5yHFY8uelI7X2uF9+F5LVcI5YlEYUgOXGjqNUfHgndocmUpnP7EO0XJz6KMkeR2n6KRTABvAicdmZcPziETlfcPn6yhUnsoBdSGtgxyrroAVaYOEaElUcmIBsc8CWkBkCzco8FBphDqTLuUyUtl2XyxgAtug5i5Ubm3ux5BU5JjN1oMBfuSsnWncJlknUqzdvAILVflBTt+c73mUu2w5+Bi/DM6X6uNijnwTlV5cM6e31XSYKy8rI4TBvmvRL1vIbQaqS2Ilr1A6VMcfmBzswsTh8gkdjNeDt6NVl2FUkXtFjpmTl3PucnWiVipn5/Mym/FcijNCtFSxpqgBPMXyut/a2BopqQ2qSVhSlNdoEK3kqtMjw4eMkHR0cYaY7U+EeBOEa4LaC7dJR+eAlL/RzI4hDjfZ+OfnEQEN9pDtWF5ptTZsQhLNUt6ROminD0eSf93YP5pH6A/9EC4xZX2r1rsyE+/srdolBLhmWuNoA+jfAVN6O+CQA2f3GZPtxebsZlm14Bx3mezaBWY1qCdX6SeXucY9x7ScT8QxcTnpIxXc02joof6TxgQZcw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB5302.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(136003)(376002)(39860400002)(366004)(346002)(396003)(451199018)(38100700002)(38350700002)(41300700001)(26005)(186003)(6506007)(6512007)(6666004)(83380400001)(86362001)(66476007)(2616005)(66556008)(66946007)(4326008)(8676002)(52116002)(478600001)(6486002)(316002)(36756003)(44832011)(2906002)(8936002)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EtfSp5rq96UIAYjqX3bllFqSZwisesEsmgs86aITwKASS6OaJNA8uSd2q2bTPWWURDMyko4+ySEcDeY9kFueWWZ6waRK0SmItA2BCZu+UMG4oN7CiwK48ukfaGkIv0g55e7ZyN9/50iHiWBd/ytgFVZWPZKZht3kdG5k0mWdxfIXpcE60ipEebf7m+xKUZcw0Y6fRLFp2QkDrWcpdJuqMlB7/51iLYJvpl5QOCVuCBLIeRt94J27iV6acN6bZ4h94W9Zc+mQxGR+7nSNkhvJJb+l1aDeoEzEIWB8dHqORCAvPNuR0N6xyibg6oPWgaSS0y9WTZwVspUqhUFaSHjndz6xjzst2bT6htVE9/Tz4n4OXw6eSkqA8Ajz5936cUN73NGBBeULUfRUynr427pTp+ksZgH9V5jkjDVd4TZOoWfOxrDLMyVTpEebsUGOqxKoS895i1obthLKByy9fhJM9lX3DTZHY4YYim09lDxFbmSrYoNZ1zEyBdwHpVvtdnxd0ynvIm12I96RdT/wcjFQvZtvEOLTAmgFUffbIRD+Epxx+HepR+fmpLasKlhRC+70bEo//9f5D9fduTHSoDRr0RGZYWl46BNvaaYefUfhZqUftkHhkLkGf/pDcQTTfhwtM5Cwdie246kwTxrEW8Pbret5T9K28pYdkU/PryQFJ0pD2ZW18k4HvEJT9bNgcdpFt+GvfweSA+SU+aVvAruX2/fCI4hx7mONAKX5rexFw0hyEDLD3XS3FNoKW1LsIIBvZ3l5eiptW6cUAsuuUhVUoUktzWI/UuojnHLaJZvMa8wk0/jWF+3M7tVeLmi7/rHbcPJIZ7E3bOALdCOsqgTb0yLU8949Z64LijiQnPGClorGUbrzgN54Mrm3NBTq0uNdoQbnYIbzJBxPsj+T6WIukIviqbgR9e7OBrkY5+iw3iljyZXlBHlaWibqh6J/8ZIPdnknAX8lS3SbnWtF3SmDPi5MeHXfwW7nOdKjY9h8gd2GZwZ6eTaE1S+OXwBaVzDaMTzbjxp1pyPz3U4PWVVwUm8hxxyvlt26wwMRPn+LoBYzr5wavVakfmNDmPKQaEOmKdFOc3RM0aMvh1U7GnYkwMljszmm4pMnuTYE+8wl0sH7gRAjz5kQEgZuXbCsPqDlUtOBqEP5a+si6s8La62FMxSZ8hnB7HI6KbkHMEKTxkZkJmsGVyq7uMGLo0sX2+LOJ+27YHoy15EHm+ImeqGIjmd8FGO2LW39pzC614sJayxHlkp8WxW0ILnfhEwW8cPO2KSD/Ijd7I6lC0rOu9gSvyV9XXVpBo4Z0yOjcMbemwNBRoQ5yWMVuqi/JWrj2M+jbp13UGFaNQQFqF+g2jXNTEC3afL/H6Dc+bUUxFTsBMhxGYFhvvR7LA89gpZ7lppVXO1OqybwG2aS062h4Vnh7s4D1yHk74GFk8AstmaeO33d1RUbtGS5f364OiKEerwW+FuT1SOYaXMHjsrCSoKElYTSxWpftUgJYjd+21o9QZiUqfc0xuUbSaIuUPdQX4VSpI0sR/4u26ajZQ2pCWhODMOA6L2uUkc+nsk9z7FlycYy2ELM7ZglZm6WPgESgQRH X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2805febe-23d3-4e85-f449-08db03673d19 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5302.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2023 08:43:34.7495 (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: c6z8SJsv2dSwQLlLDlG2jZcOVP3KPwlx3580kO71REJUIv/dFmSweOz4Uy90tf+m X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9086 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 The ECC fuse on 8ULP can't be written twice. If any user did it, the ECC value would be wrong then cause accessing problem to the fuse. The patch will lock the ECC fuse word to avoid this problem. For iMX9, the OTP controller automatically prevents an ECC fuse word to be written twice. So it does not need the setting. Signed-off-by: Ye Li Reviewed-by: Peng Fan --- drivers/misc/sentinel/fuse.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/misc/sentinel/fuse.c b/drivers/misc/sentinel/fuse.c index aa691d3..99342d3 100644 --- a/drivers/misc/sentinel/fuse.c +++ b/drivers/misc/sentinel/fuse.c @@ -60,6 +60,11 @@ struct fsb_map_entry fsb_mapping_table[] = { { 46, 8 }, }; +/* None ECC banks such like Redundancy or Bit protect */ +u32 nonecc_fuse_banks[] = { + 0, 1, 8, 12, 16, 22, 24, 25, 26, 27, 36, 41, 51, 56 +}; + struct s400_map_entry s400_api_mapping_table[] = { { 1, 8 }, /* LOCK */ { 2, 8 }, /* ECID */ @@ -280,11 +285,26 @@ int fuse_prog(u32 bank, u32 word, u32 val) { u32 res; int ret; + bool lock = false; if (bank >= FUSE_BANKS || word >= WORDS_PER_BANKS || !val) return -EINVAL; - ret = ahab_write_fuse((bank * 8 + word), val, false, &res); + /* Lock 8ULP ECC fuse word, so second programming will return failure. + * iMX9 OTP can protect ECC fuse, so not need it + */ +#if defined(CONFIG_IMX8ULP) + u32 i; + for (i = 0; i < ARRAY_SIZE(nonecc_fuse_banks); i++) { + if (nonecc_fuse_banks[i] == bank) + break; + } + + if (i == ARRAY_SIZE(nonecc_fuse_banks)) + lock = true; +#endif + + ret = ahab_write_fuse((bank * 8 + word), val, lock, &res); if (ret) { printf("ahab write fuse failed %d, 0x%x\n", ret, res); return ret;