From patchwork Tue Jun 4 14:27:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Funke X-Patchwork-Id: 1943422 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-weidmueller-onmicrosoft-com header.b=yqW0xsGT; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VttH03TS5z20Tb for ; Wed, 5 Jun 2024 00:27:56 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3ED3F884EE; Tue, 4 Jun 2024 16:27:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.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=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.b="yqW0xsGT"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4A32D884EF; Tue, 4 Jun 2024 16:27:52 +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=-0.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=no autolearn_force=no version=3.4.2 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on20700.outbound.protection.outlook.com [IPv6:2a01:111:f403:260e::700]) (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 E8B01883F5 for ; Tue, 4 Jun 2024 16:27:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=Lukas.Funke-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gUzPu8xY1zyu6tZggL9hmekRJC8KWiVfg6tw/C9M97yc5JURweuNPbCrPd3CnRXKp76ZK8iF8CvrXR3DbBdzUMi1N+yMr2ePYu9SsJ+j82Z1M5Ta6ADQzS3evTeVioa290msclXPhos6Dr1AkJlRALJEoCrKmVe3soObQppumsS5dj2VA0C5vrmGgK54s+rAWX3p3730/WaBqvj6Z/XrwRp9lpSb3hGFHR3zmh83yTN9u3+au6j8oftDPSeA9QYNRS3nclHRfhr7zuantszj+GGSpQ6EdyQ+MQasNN430eh9GiW/MaewCETeaIjXB0E/bEUL3AMhuDQAQRhEkmwvFg== 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=56m9BVeZw2+4B9D8qk42sVoWjKA7ZsnbWPzLCOlPyxQ=; b=UYw6U5mDw7HRzdd/py2Rtr72zhRthIVVSL57BUt9gzxvHqiDBMHz0wLy6PqXdovWnC5XBceJWHu0vQmxkas7FYdxjTStmxMxnB/lbMgd0h/L5Snlc3ReyChMxKUUZdfOXjFtWb/nZ3eTamesyrWH1THdLrXBNBI1kAIv3I1OmmYViitBsdF8NkvpsOxLXFnkaKd+ptMC/re85GiHcPrVIv+0fiMq9oJ5Ugnh2BM4HY/g7aJN0jeO81ER6E0aUkwXR6dCh1JJioNij8+8mD37kO820o5mDcq76qIBMqqwMfqiEpwWhrYR5L+5AjAEzOzsD2UREEu6DcuvesGG9BbnvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.onmicrosoft.com; s=selector1-weidmueller-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=56m9BVeZw2+4B9D8qk42sVoWjKA7ZsnbWPzLCOlPyxQ=; b=yqW0xsGTknSh8yDPzH1VhtA5huZ7S4LZnXnW7ws7YWlK+Th0iwqvxaITtGkpf9vHuPEGJwh69/03GrGppvkCxnXr6d+6SewQiKZEro4gAu0vqXrhWhXQ6HpjICCL+kb7yEUHhhCHFILKHCvbo/PBHJIZXqaldY1vSFR72qmeymY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from AS2PR08MB8431.eurprd08.prod.outlook.com (2603:10a6:20b:55a::18) by AM8PR08MB5827.eurprd08.prod.outlook.com (2603:10a6:20b:1da::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.24; Tue, 4 Jun 2024 14:27:49 +0000 Received: from AS2PR08MB8431.eurprd08.prod.outlook.com ([fe80::aeb:1738:d59a:cee6]) by AS2PR08MB8431.eurprd08.prod.outlook.com ([fe80::aeb:1738:d59a:cee6%7]) with mapi id 15.20.7633.021; Tue, 4 Jun 2024 14:27:48 +0000 From: lukas.funke-oss@weidmueller.com To: u-boot@lists.denx.de Cc: =?utf-8?q?Marek_Beh=C3=BAn?= , Stefan Roese , Michal Simek , Lukas Funke , Alexander Gendin , Algapally Santosh Sagar , Ashok Reddy Soma , Bin Meng , Bryan Brattlof , Caleb Connolly , Heinrich Schuchardt , Ilias Apalodimas , Jonas Karlman , Marcel Ziswiler , Martyn Welch , Neil Armstrong , Peng Fan , Simon Glass , Stefan Herbrechtsmeier , Tanmay Shah , Tejas Bhumkar , Tom Rini , Venkatesh Yadav Abbarapu , Wan Yee Lau Subject: [PATCH v3 0/7] Add eFuse access for ZynqMP Date: Tue, 4 Jun 2024 16:27:34 +0200 Message-Id: <20240604142741.425307-1-lukas.funke-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: FR4P281CA0308.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f6::12) To AS2PR08MB8431.eurprd08.prod.outlook.com (2603:10a6:20b:55a::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS2PR08MB8431:EE_|AM8PR08MB5827:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a3ade88-dd57-4d28-00b2-08dc84a28275 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|366007|376005|52116005|7416005|1800799015|38350700005; X-Microsoft-Antispam-Message-Info: =?utf-8?q?bbHe8mEZbyzI6duZJM1EVip2yBZv2dV?= =?utf-8?q?VQLLRh1VAJeDMkHZSY0HgEhUJtcSwqvcBxy8xxLU2dMf57WMb/HFDLTYXvwRgTvy0?= =?utf-8?q?EuQFYzZXVvDzpFKXLfd4jv/MSGdjOT2B0m0dwl0BG+3K/rM3fHrbqvncBsxIiZDV1?= =?utf-8?q?fBc5bQwcxQGXX329HTKMAuD6zONRbs56F7bQghFqRHiXZHD4CFm2Scf3/n0ku1NEM?= =?utf-8?q?ZHpXHao9ylhDTr9jO+8TioJybcTfVQgjm13EonE/LkmYz4Mb9sJSGf3A24/v0VrQc?= =?utf-8?q?+1NjVi1mzQUlSkFi41Zl8g9iwEOAOUMpcxYJv3EMwBZ8O7nje7HWuhqcHZKDp8Uwv?= =?utf-8?q?iui0vujYhqCTQXJxYhgfnozAM+mFL7vAV3tVFSTZm1mp0Xk8217k4cJ9Fb2WN4J6U?= =?utf-8?q?L8SbQHbLwkJtWKG4Ky4LnwU489onyiEaVgyRYGKGFiaOr+0lk6V+tHd4W58uO+RAm?= =?utf-8?q?tYQh+Pp+vcyx2+9vFROGNLqQjm4DqP5CDZTo+9xsH6s0oIfDOhNZTZPR3FN8jKobU?= =?utf-8?q?I6COvcUE2pXRdckHAAoeQOoqpThS4/eohhzCgltbXMPt4sBQULleKPePi1NVX/7qo?= =?utf-8?q?A9drK8R57nSFHfuCXP844JjZbmN4ut/1U4D2f69/JMoGRhJkBO/qq0ui0pXzaPkwe?= =?utf-8?q?SxusCQy3Wy2NiHgQpTdBi0uZZXIBDw4zQN3+4DfHX3+po3ITh1nZ2ZuiHaNsM1pvi?= =?utf-8?q?CuJxUkDm9lNSdZRW0PKqENi17RGVYfGFPBpLl6zk2jutSduQ0bh9NpV9nKY3LMTBf?= =?utf-8?q?gv6WUe5NCNGCyyLM8Q12tx7cTMNt+ACCwsWyBbrAUgb/8+Pg0sDyr8ILYbbcQxrTo?= =?utf-8?q?xqX7i9jX+1+XjYI5tvcBtJIQUAJQp/aYWhyQ740Dp9DE3ULUmX6ZBsA+1hKp1bGed?= =?utf-8?q?+8JeZtwgQT5rnKLz6H82F+e3Rra7L57BxlxYmfjFmoxSlSTfuJGgPswMPue4N3ZPN?= =?utf-8?q?7qLS6/ZPZw65ufes0Sle3ehvG3qLsZlIK1C+oD9zspiJXSxR5yKA8fhx2KqgLVrV/?= =?utf-8?q?BzGBFTworHX89uCYATEJG736gvtJflFxW8emU2+ZyP3s6c1IWCHPYZnzOJT8+xhPD?= =?utf-8?q?K7k9YmUVHTSejq9147/mfHiJ+da4SjmphrcAHzqkAPXNnBL2MRLjW4AxU2fWj7V+O?= =?utf-8?q?X9+a+t9lXsdFrkFtmR4XDjcn358pYsyKBj0J5XhBg7+JBPA9oKq/wAUCp72mht3cR?= =?utf-8?q?efHTJg+D/OtScbaczl/HJ+S9eI+yF+EnHGC9eWTi+FQvebgiXFyQaJdQc9JMpOxpu?= =?utf-8?q?hpcXyu+qozI+H+lZ0PXrLplyH4bNdMZs+7psOdC6zRUiU+KOjVStrQTM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS2PR08MB8431.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(376005)(52116005)(7416005)(1800799015)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?1hJfrp5UoRW7JUMKxk3SKtmftZAG?= =?utf-8?q?i/6pK0cqmGKH90z8VwPcJusdSdhMtmZNuIrvOk1/+rXxvzEtdXKbtOmoq+RQ0NAW2?= =?utf-8?q?9FyR3K6XjbvfK5t2X2YjLo5AoQGeV2Yeb37BMriiAPv1M58Sn4lWPag0sBiQlgJV3?= =?utf-8?q?6ACzHe3FgAmS8Wg5Qdqmw6soj0bUgNIWJnJ3s4KsQC798CHiDERZEqR7OxTbM40vF?= =?utf-8?q?trwzbZJAtIJ7qsiemTBcTfT8tmn2HkkQh6KYz++lyFIHT9eZ4xDyKDcKIn7OALM7w?= =?utf-8?q?iXXOrjLQ38Mk1ydRIs0d66fMcfp6NAmtRBrv2poPUvaybKaccCjlTo/wsC/mUh4Tp?= =?utf-8?q?KsRQP8/n50zUvD8jp5cg0ijBo9uABI/2M1rfQh7NsJkewTzAn62i1LIEjaHy2yohG?= =?utf-8?q?8TeS+uaEtygUum/DAU5MxWgk3COpT+QcwrswFfDYX6cxexdSIqlJDkvyRelxEWDmv?= =?utf-8?q?smsihEWhLL30K4S236Wg0JelsMqX0M6WIfzGJ6HyUyC6ZVOqnPLDuvljxEI2R8YNh?= =?utf-8?q?ZIwZajhquPLcufH+cqlSwdvpPHxrIClqKJ8dN0+ZjkY8jdGq/NNsJakGmr6dr1EnA?= =?utf-8?q?VSUkGuyVsXaGYCYJvb0VxmJToa/6YoAqJrqigfj0D6brjTXeG+xyewf5bVMkOm18e?= =?utf-8?q?o3J1DGUeqrxS9iLVZv5U0HTp1wavj/boO0M5dGBn5SuaZ+rWM4As/uoegmoEWJ+Vd?= =?utf-8?q?EiOlXovIe+mFchwrc4ScjAq0WelGhPnV+N/odtQpmjcv/D5M49rQ4SmXQtEOL/maZ?= =?utf-8?q?APmuM7Osy9fWk2vSeksZlahtid0dwFxBWeT9rnUaa2ZWPomLr+SzJICVmr5YA7gcX?= =?utf-8?q?Z+2kmZ8qNXI0IwJc3/Grb6s/pJUKHGwyP/3j0T9rt5ETHNC5FBB033ARGwlzSh3Vn?= =?utf-8?q?pvDq3Dc8LR0tlt0Vwpjo0web8K1wfZgcB0vBs843vKJdgsLeX4qqBY7vObtuE2Mrs?= =?utf-8?q?dMQNLacITIGOdzOxN4X8tKE7sj4lsZOiRzk2JvwJfXBpLLji1vAauVluTFdr6780c?= =?utf-8?q?muImusbZ0shbkcrhaClgjYrOADSlJOUOJrFwAKfL+txjVx1Vqw08TB7Sr9Cd48iC2?= =?utf-8?q?yz5Haw0MvXue0cgvihGUM6ULZkSRk3GFvkql9chCkgavp0z/dpOaqXzO/dCzcP49w?= =?utf-8?q?V4XkS7h9Fl8I+GIN9+dKpS/gkztz74X4Tk706HdAhH7WpsbhKBU2DcFUyU+J/38Qg?= =?utf-8?q?SUH3+82/ndfxsyBxP2A/BEFC+q3UJ/DqojvZ9aqbit00sjVo/2xakcVWQVMGLLWZ+?= =?utf-8?q?0i4GpphfnCWq90C8VeZFZqGObjNZ/gpXeo8PbI70336H1Eun90m4tLl0+cPD0zr8o?= =?utf-8?q?E9MV6PeJjyf/DtWBIoOY/GEw6KqhgRk9Oj9jRAbjr7xfzluBM4Nwp1+b76V3184YZ?= =?utf-8?q?TFPHR3p80k3pqAPZwXj9etFhxEhfeezg8SJ3FNP/oDSPsJwCjLixCz4ZashnNTk4W?= =?utf-8?q?feuReGxH5gED/HrMLnx1DmdnUrfnFnjMyjTSw6tv7KXklTqJX84174uWH3yLkTzv0?= =?utf-8?q?mBNiai7AdFlUswLAkUBTZKek3zu8Sg8kZQ=3D=3D?= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a3ade88-dd57-4d28-00b2-08dc84a28275 X-MS-Exchange-CrossTenant-AuthSource: AS2PR08MB8431.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2024 14:27:48.9041 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Z0IsATdHfZlaoc6HRhl+73HYzNNRJcw1jl3bNQ3qkRKXeSblKBTQvRZMtlIYbPIWHk2+SCUpRpA167BHSnbAPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5827 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.8 at phobos.denx.de X-Virus-Status: Clean From: Lukas Funke This series adds a driver to read and write ZynqMP eFuses [1]. The driver can be accessed by the 'fuse read' and 'fuse write' commands Example: => fuse read 0 0xc 3 Reading bank 0: Word 0x0000000c: 3cb16685 013af244 40000000 Note: Accessing eFuses requires eFuse access to be enabled in the underlying PMU firmware. Use cases are: - Reading/writing user specific eFuses to enable device specific implementations - Revoking SPK IDs - Reading SoC version/DNA [1] https://docs.amd.com/r/en-US/ug1085-zynq-ultrascale-trm/eFUSE Changes in v3: - Align ZynqMP eFuse driver with Linux kernel - Adapt versal, versal-net and zynqmp to use common chip-id function - Enable CMD_FUSE and ZYNQMP_EFUSE for zynqmp_virt and zynqmp_kria defconfig - Use 'dev_err' instead 'log_msg_ret' if possible Changes in v2: - Drop vendor specific fuse cmd, use existing fuse cmd - Minor code refactoring (reverse x-mas tree) Lukas Funke (7): configs: zynqmp_kria: Enable CMD_FUSE and ZYNQMP_EFUSE configs: zynqmp_virt: Enable CMD_FUSE and ZYNQMP_EFUSE soc: xilinx: versal: Use zynqmp_pm_get_chipid() to get chip revision soc: xilinx: versal-net: Use zynqmp_pm_get_chipid() to get chip revision soc: xilinx: zynqmp: Use zynqmp_pm_get_chipid() to get chip revision firmware: zynqmp: Add support to access efuses drivers: misc: Add driver to access ZynqMP efuses configs/xilinx_zynqmp_kria_defconfig | 2 + configs/xilinx_zynqmp_virt_defconfig | 2 + drivers/firmware/firmware-zynqmp.c | 31 +++ drivers/misc/Kconfig | 8 + drivers/misc/Makefile | 1 + drivers/misc/zynqmp_efuse.c | 360 +++++++++++++++++++++++++++ drivers/soc/soc_xilinx_versal.c | 13 +- drivers/soc/soc_xilinx_versal_net.c | 13 +- drivers/soc/soc_xilinx_zynqmp.c | 21 +- include/zynqmp_firmware.h | 2 + 10 files changed, 427 insertions(+), 26 deletions(-) create mode 100644 drivers/misc/zynqmp_efuse.c