From patchwork Sun Feb 2 00:49:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 13956404 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 7D414C0218A for ; Sun, 2 Feb 2025 00:51:57 +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:Cc:To: Content-Transfer-Encoding:Content-Type:Message-Id:Date:Subject: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=EgEy3hHMggT6P9d/K173FLchiWhr15UEACwLSvoyIgc=; b=va3+9YPRts/01E7qAPxgEC+1Da +R2ETsuIkY9jKMXR2UvDR82FwuifYmw2f9k/B7o5cwxi7uFpB6iTr7T4O3R89IU39RbLx3ra2Ag7o Kfar4GZe/sQP6QLIUJ6oA0M6R9hPsnudAgbrM4Ni/YY9abXXPtInbfABzbfcfJi64tPkGv305Bzei Buhk9/lTTzXt5doMRbi8inbaymX3yjOtCNF4+9+T1tMKUrvdpEWsXZZ/p4YQTHOFHSE81MThe9ZYw ajFsgJs6O/qS3/dpkV5L8tVMQuV5WF8mxXvypCcFE0SUV+0dJuAz2Y1uKTcgVIUw2/QwJmu2GZkxe vSked66A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1teOD4-0000000DFm0-3KI8; Sun, 02 Feb 2025 00:51:38 +0000 Received: from mail-norwayeastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20f::7] helo=OSPPR02CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1teOBj-0000000DFcp-3HAG for linux-arm-kernel@lists.infradead.org; Sun, 02 Feb 2025 00:50:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wDv7yKKt+QxR38+cHukeViZPAakHh6n1+UhdocCHR3Ck/+J4y4rsoMuNMYkInwoWZ86DFW0V1vSnIjWQIMkS8pU1vGfO+axTyGoygveROIsx6Yj/Cs0Xe6epu2R7HkAL+EML0XyQCiVJseHSZDqbgsiGDa+1KjMju7lNEUEXMT+s/sMK93xEuYOAtIlcgBKyw1hcfQaYBfjw/Gtl6qMgKhWljKjUyTQ+nYcRUnv0ZmyKxAC+5vkEGrJTt6a1eKTq4TXjkqplsAbZSpUOvJ4VxdQ9OGmkkinZQU6tcbCb8CdEYnAnd+lXbJOtYcW/GWr/Ets7nMpUp4V3lkb77+WzFw== 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=EgEy3hHMggT6P9d/K173FLchiWhr15UEACwLSvoyIgc=; b=IjfhQQenKHlgUj/OP9LK4Loqayw8Rn1emgLZY837jInZs1XwIpVDvBLw7neP0XzcM4C6hVPq9VLgl5mi112K5mvhgz+OqIUyRgk3BQnAPI7D4dzwu52PcKE4SroCm3pX1CsTgyHgULX3fGhcmQAtNvUWg3ooue51VsRuVtycJ9RAHNKM12Qmxpanos3OWwhCy7Ld8A+np4BqpFvEVOiSmmnzHngI+OB+8kr8K3CjZuqFpY+hp1OIvrqkqQzA0pozy5E44L2/nQpZ7gY0tuB60v2ADO+JN7TKOeLgq3zGJHvITPV43bHu2hwfCvosqoMSPr24/6ceogiL7/qmGwKMLQ== 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=EgEy3hHMggT6P9d/K173FLchiWhr15UEACwLSvoyIgc=; b=gmTlhrZ953F/zKhz3DeyJw4U0iLN3H9c0nL+Obhjve0TlNEp7QIUkKglKzd44rZINlAP5Yx9SNyNCxjIdfTCIVhBFtqCH/IKtXKiXaoqajAlLd6mPWc+M6pOD5nSn1Ph5quAh/wRYbt/E39zyLZcn4nGryiY6nRZWo+H4epuDDIPXGC053q5AnrMWqxbAi9IjdQjNlfLwX9FjtHLTQWes4la04/7lUw568CTSDwuiKFvffTz9tE+9WEtOYeG6JS0Rlg0sQZjW4LL4nCIMDZ943s6RBeMEIydUualcfepOIcbWoZtTdrkbdKHqah9p/sKs6xxKT+gjwb9d+LR0KtWSA== 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 VI1PR04MB9932.eurprd04.prod.outlook.com (2603:10a6:800:1d8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Sun, 2 Feb 2025 00:50:01 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%6]) with mapi id 15.20.8398.021; Sun, 2 Feb 2025 00:50:00 +0000 From: "Peng Fan (OSS)" Subject: [PATCH v7 0/2] Make i.MX9 OCOTP work as accessing controller Date: Sun, 02 Feb 2025 08:49:11 +0800 Message-Id: <20250202-imx-ocotp-v7-0-5622ba16451d@nxp.com> X-B4-Tracking: v=1; b=H4sIAAfBnmcC/23PTWrDMBAF4KsErasyM/rvqvcoWUiy1GgRy9jBu ATfPUqgIJcu3zDfY+bOljSXtLCP053NaS1LqWML5u3E4sWP34mXoWVGQBIJiZfrxmust4nHkLI AiRKyYm1/mlMu26vr69zypSy3Ov+8qld8Tv9rWZEDR2dDAJ+t9vA5btN7rFf27Fipd6Z31JzI3 usYcpYYjk70zvVONBeIhEFwFgwenewcid7J5rICGVESaPnnTvXrFCDY3qnmvB4cJLQpJHd0unO EvdPNGT34IJsUQ/ffvu8PodBjIbgBAAA= X-Change-ID: 20241212-imx-ocotp-cbef304140f5 To: Srinivas Kandagatla , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Alexander Stein Cc: devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan , Frank Li , Conor Dooley X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1738457363; l=3425; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=8X86CX6Me1qV8MJPStkVQYA3fugF+rjAuWrO5f94pOE=; b=W++fKUsWLmt/MiFMIaBiftrsE398o8m4zA6VkqGcXvbXUimIhYV0irBmdR1uCtjIyipSJTsdR gQRrjGme+r7D67v67pFOM/CqEWRpCJjf40tdRd/rimy0HBerGetSAcy X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0035.apcprd02.prod.outlook.com (2603:1096:4:1f6::8) 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_|VI1PR04MB9932:EE_ X-MS-Office365-Filtering-Correlation-Id: a00953e1-783e-4488-5e9b-08dd432385dc 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|7416014|366016|376014|1800799024|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?YqxxmfDk1A1usRl/mwJpFwl9tLqCp3m?= =?utf-8?q?45NwsD9VWRGNZC1hjZxIvug4xojzR/3CY1kT7Kap8Dw5eyiqzFD9XgefOo3QRaaYA?= =?utf-8?q?/ZnvQC+hktYh3yA5evAJzbrcxZfTNTKY7DRkj/rX5ICWsY1DGELudEySLtU99KDQi?= =?utf-8?q?aPJNZqtDaR20+/cIoSkXmvAKfQcCu6Wb8Zc5cGGfb1lQZmwt9HssnTC7EpX6Mvbua?= =?utf-8?q?Na3LhTv9eUX0TFG7xzcbZBQaKw88w9fTjAmRyVLVywZWlpoNTPmPI8uo0bUyikQd1?= =?utf-8?q?FD4Iq9m+l7zzFfJr1h6iogupG+lfXf0AK6FQLe6BPkVPKLL6jWgDLqqAQSAmzbYOR?= =?utf-8?q?XZMa6UlJOHD9eszSSWZPOVhOwkpxUBEWG7TJh0erPrAlR65IumhALsoCq17KyFIL2?= =?utf-8?q?tkz7Txlg/5XQ8rCBbkQMHr22cNI/JIdObWttuc/idsRo2y16U6THGpHAlbkptxRph?= =?utf-8?q?eN+O/IUjb4dtZ3NFkz/E2QeAL3t6BCcPG7jo3Tndgwx+Stj9j0mL6/oVGSyAID2Jn?= =?utf-8?q?HW5eVxK164Dmz0HTCg9IeoWdhqPTSI0wd1imu5D2UBxPT2o0hAxuy3fHtJfU90zI9?= =?utf-8?q?NJB+9owDTLxoEkpBwSbHXLB3JDMvmT1YfqoRz2O25vxSkqisJtKm7BEFqQKv+aRE9?= =?utf-8?q?tvUf9QpFlT7w9HWzEiWvaTvbQs2y2Nps7QBiMj1PHOcz5Ck/898ckVRkELLt7L3UI?= =?utf-8?q?gnfVnDwFwD+OacOxh2cMare9cAg22zL/3nFtFBvC34bFVtSKp3aSPqF+xsKyuEXg4?= =?utf-8?q?3hOKDfm3AX3AXmONdp9dNcDTVvTBq/J4j42s2HXGh2Ho9UuHf/Scu4Zb3sB9vrBWS?= =?utf-8?q?vmb9lBlWUjrY5pzNVDmJkAlaFjUMoMa8t9zNYw/XW1c/AcW8M0NnRtHc6jEv7XAhI?= =?utf-8?q?6MC5PSDHnijtXynvIsGBL3cbpanjhIsHo7MU95NGgj5fHYxtv3NV+qcbFTHuRH1wm?= =?utf-8?q?0paPo36zOf9vLhJN+8qcSqbDiA+2kxCErVBUXjQCZHY/ho3L051mXrbgDk0vdQgjv?= =?utf-8?q?7DMpAvrJQ7l5o49xA40z0uo8tZZlzTx5p2FQ3/BekqfQU1KybdD/f+UdLoOMQHztv?= =?utf-8?q?Sh6cDBNUsfIWD9sRF5Q+5CVH/sQS/A/yaTjmCbdPQs9veUNZ3lU5VZD6D4uLqWMEj?= =?utf-8?q?PLgiBiuaoim0WkCC8dxi06t4O4rfH9VL6azxBpq6KXfQlEOFnb/tjM4DvFketJ6gJ?= =?utf-8?q?TpIstGx2ZGxHZ2oaz4yITLVBNvjRSh5Cy8r5/oWjnrEDojb4igHy/daAeR7QYhaq4?= =?utf-8?q?nB08LYwz1iGIVQkAlcZGw/uaBkVu3NOhghiUruTaLFtP1TpQZv51RMaQjOvALkYCT?= =?utf-8?q?LSNcZzYzrhr04qQ1tXMQNnnz5+I3aKz1gBHZFqZbFs37f/RQhqj8B2RmogTwSGw/8?= =?utf-8?q?wNwb9mjzgNUBUwNtYttz76fY1c3yv1vPA=3D=3D?= 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)(7416014)(366016)(376014)(1800799024)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?hNTTJgpaWRh/VIsLthUaV7hSMkO4?= =?utf-8?q?V6xPFDMEgmhFJhAlLzY6oaJEKu7VLPVWAORgpYu1rCgFtMvXMI7mIM1aFhmCrTm/B?= =?utf-8?q?otARKSRQw87X3sXvGk7ct5dgfBlfGM02ZlmoQaWI764icgvICWfy1rBRQQWngSoEv?= =?utf-8?q?VdpYpYbTE28lEsGyglX0u5oYcmRQhVr0RhFP2zR2DzVgZG5nowMhTE6ppr04KKoPO?= =?utf-8?q?U9HXb+XWOIQuGc49rMG+azYC1tTTlajaHfaOCgMx9uiPfHzg3qMPC/U+wlGCOzvEv?= =?utf-8?q?aF+a9/YZMUwB8OUHscy6y6BoCCR+oOXBp6hoUP1+s8soAvNMWlo2hONuq5w0Ox52m?= =?utf-8?q?JQcFOQM7yjYVLzY2HErsrZPNDRTT4g/wrPsET4ut3dU4pfgSs+4uS9zB4CdPjCKCF?= =?utf-8?q?woFYawxUlqPSV60dq+JhigS6j2aeaAXbmPAr3F9Hxi66BtGu+Fblh2jZ/ka1EExRD?= =?utf-8?q?Z8QH6yQpbVErx0+pxHepi2HKUFxYbDFM+Fn672OeVz0+mUpaCcXZns0c4sFprypwI?= =?utf-8?q?KeqWjI23L7a1xmKIYWHLO2P4RL2ckahCxttDBuzFlAyhW3ELdUZ+70l0iCqf3665i?= =?utf-8?q?IWFAY8eNnbgCsAhtgFTGPuCaQ6hJoiKcXxg+3UM5Ayg3WLgodLZZpsHEa7MIBu7CQ?= =?utf-8?q?ybX0O8AgIbGUnUIcIk91qI71xXfopMWBTSx+LbHa3tQSfcy96i+PCoRTlVOp8OfHB?= =?utf-8?q?pkdkn0hsqiJeT6/PGHl6T0gzmYJ4bE7XDDDYifbrGNQOM4ofeCn4hz5WgQ2ODAmL1?= =?utf-8?q?kyEyyMOoEdTmPNM8bH46/OlTl7GF2ik5iBDfWwgm6l6J5HLScVtrUo9RSWO+Mehkc?= =?utf-8?q?PRrKkg97JAkbBcB18Qq1z5jkTWl8xnTe0HlaxZ7/+P3DW1xbvynDqrAofTGWkZitH?= =?utf-8?q?09fnn98IodC1OVNXr/bQ1Hl+sppbohjTuIzPZ4yQ97wl/8kssMPEhN7ihpYO8768M?= =?utf-8?q?tP/wYQrpEumRBOOoWngDBjo0+Ciu8PgMjZIUG0aRJN/BfWcctuQXbJnN3K9AQBXze?= =?utf-8?q?9y4kR3nZ6ubkdmIOU6wpVh2yHXYXvFLN+6i1iyIszE2H+dTzzrWrHhbmP3+Vc9DUp?= =?utf-8?q?XOxmtZG5lw0G7c/YucQ4dmLKDbA+QWquNrS9uoQuhoebxEWIyjjeSYyLaRrtyVcpp?= =?utf-8?q?Unc/jlB49SIBp9N1oHcdSgRNo1v/osqmreMasLa/D2Xbjqf7yBYVmnn+1nKohIYrG?= =?utf-8?q?t9ThIRSfgR8L6m8pfAXp/89y5B+b5nv7z4AqmnjA8sIA621HYPeNK3LlTjA4seGvS?= =?utf-8?q?ZY2AostgPVVP52VextD8aHgXRZO3IduDZmx+QYFDvN0+miC9vNSf/3P0iAE+6mdBm?= =?utf-8?q?TjlwvKksvWItYXIm651jldSFJv0p1hTyI5VgJVwAUvK23h/ZpJltdwKsSo5znLI+X?= =?utf-8?q?8vh/o3uwLU1Js8anXqnoA7kW+NkgJh0WO/FDudbaHwvs3/hMyDpTbUoR/hVEChd3F?= =?utf-8?q?MSCknpsX2gEvcxVvJ3CX1b880Bg22e04Fefhv841CsO4zKNc21wczZ8UC6eCyQ50r?= =?utf-8?q?AWjAio02+dhh?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a00953e1-783e-4488-5e9b-08dd432385dc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2025 00:50:00.7945 (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: YYhx9ZEe0GgZTLB3yffNTCV+bxGNXhcavY4JLyvKVxbFak3CFHIepGqFjpaISEXi+o7grQfH/H4yXSG7fFqVZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9932 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250201_165015_843574_8F4B6BE4 X-CRM114-Status: GOOD ( 16.27 ) 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 Previously there was discussion on using "feature-controller" or adding a specific node to group the fuse information for U-Boot to parse and update node. But rejected by DT maintainer(Rob). Since the STM32 engineers added access controller concept and landed the support in Linux Kernel, reuse the concept for i.MX. i.MX OCOTP eFuse has some bits to indicate a specific periphral or function is avaiable for current chip, for example i.MX93 has variants that not have NPU. So introduce '#access-controller-cells' for OCOTP, and add "#access-controllers = <&ocotp [gate_index]>" for periphrals that needs accessing control checking. In OCOTP driver, the nodes under "/" will be iterated, and checked if property "#access-controllers" exsits. If not allow access, detach the node. In the end, cpu nodes should still be handled by bootloader. And I may also update i.MX8M to use same method to support variants if this patchset is good. Signed-off-by: Peng Fan --- Changes in v7: - Rebased to next-20250131 - Typo fix in patch 1 - Return error when '!root' - Link to v6: https://lore.kernel.org/r/20250121-imx-ocotp-v6-0-76dab40e13db@nxp.com Changes in v6: - Rebased to next-2025-1-20 - Update Kconfig per Alexander - Link to v5: https://lore.kernel.org/r/20250108-imx-ocotp-v5-0-a6d90e18ebe9@nxp.com Changes in v5: - Rebased to next-20250107, but seems Srinivas's for-fixes patches not included, so I picked the for-fixes patches and rebase the patchset. - make gates pointer and using ARRAY_SIZE - Use of_parse_phandle_by_args - Read fuse when needed, not cache them in the very beginning - Use %pOF for node name - Check controller node name in imx_ele_ocotp_grant_access - Use dev_info when detach node - Use priv as function parameter to replace pdev. - Link to v4: https://lore.kernel.org/r/20241223-imx-ocotp-v4-0-f504c1420640@nxp.com Changes in v4: - Add missing of_node_put(provider) - Typo fix in commit log - Link to v3: https://lore.kernel.org/r/20241219-imx-ocotp-v3-0-b22371098071@nxp.com Changes in v3: - Add A-b for patch 1 - Use scoped API when iterate nodes and address build warning in patch 2 - I am also thinking that to drop patch 2 to let bootloader to iterate the nodes that have access-controllers property and update the nodes before booting the kernel. Then just need patch 1 for the binding updates. Anyway, comments are welcomed. - Link to v2: https://lore.kernel.org/r/20241217-imx-ocotp-v2-0-3faa6cbff41b@nxp.com Changes in v2: - Add R-b for patch 1 - Use '/' root node instead of '/soc' or '/soc@0' for patch 2 - Link to v1: https://lore.kernel.org/r/20241212-imx-ocotp-v1-0-198bb0af86a0@nxp.com --- Peng Fan (2): dt-bindings: nvmem: imx-ocotp: Introduce #access-controller-cells nvmem: imx-ocotp-ele: Support accessing controller for i.MX9 .../devicetree/bindings/nvmem/imx-ocotp.yaml | 5 + drivers/nvmem/Kconfig | 3 + drivers/nvmem/imx-ocotp-ele.c | 173 ++++++++++++++++++++- include/dt-bindings/nvmem/fsl,imx93-ocotp.h | 24 +++ include/dt-bindings/nvmem/fsl,imx95-ocotp.h | 43 +++++ 5 files changed, 247 insertions(+), 1 deletion(-) --- base-commit: efc1ed8e768ea7a94386bb73a9d809af7d4522ba change-id: 20241212-imx-ocotp-cbef304140f5 Best regards,