From patchwork Thu Apr 27 10:31:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1774406 X-Patchwork-Delegate: monstr@monstr.eu 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=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-weidmueller-onmicrosoft-com header.b=PCDxSpje; 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 4Q6X9C36P0z23v8 for ; Thu, 27 Apr 2023 20:31:59 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8B1A185F2B; Thu, 27 Apr 2023 12:31:42 +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="PCDxSpje"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DE6018564D; Thu, 27 Apr 2023 12:31:39 +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 EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on062e.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0e::62e]) (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 C355785723 for ; Thu, 27 Apr 2023 12:31:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=stefan.herbrechtsmeier-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l7rUhRZZWZuiazkPqQ4dvO+SLkYOVDTuMIg8uorpvqUs3B4EkG8WFTZlWY6axwZJD5lPOFEz9JbWXsPh+yfO+fXhNlNizFxkJMsljqZwsI9Uq1OROKKFM/zCQHcGTCm2bwcJ3uH5hXhSTZCCiIQAhvtCMDbWNdkZwWgolqivuH75iNxIcr5JNjZACYfpRmpwrV0THB9Hxs0FhueMT+WklteK0qPTCnNQEmLs7nU3MGBmUKvL87B7LXX8SRpCMQEGKTfj5AFksefurvH0nnEy1i+R17W6/qB8KISszJCFjQKnJJ8JrssF+ZOMDgB4FPvtXhIoI4txARqPEm6OUbTdOg== 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=SjeCuVwzdCvGUBVi66kYfLDyPlbaUp0SryVXJrjZ+6Q=; b=Zr058Is2aXG7Um2Z3PbRsil2G7od3jJxcIFvpiHXURm2jKuMY6+IECp3yn9wPpJnDctYPRrqMXr8MrJELUW8kkygiissO60GXq5oDKvnW//W3cgmPCPiOjZZeFbCvPwxIhT6nH1tK1APqCf/bDnjvNH9Gg3XmL79HWJPUFw81e10n271gNKFxS6RO41pza6Ax0o27rVg6kkW9qNQ05bJQS5AkQK3CjRZddfW74/7upMNHMl37qnoR/IFbci8DlR4b/3jM6vm6iJt1pup85vP1B3KAC2DGxxX9eofNuFEYo2IcyOCSC7+K2ckbk2UjA+D7SHDkj0EHUZufO272DQgJA== 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=SjeCuVwzdCvGUBVi66kYfLDyPlbaUp0SryVXJrjZ+6Q=; b=PCDxSpjeNmwHvJ5MVzcHzci/0Co2wD4y7MxmHLCaec7PaWxiAj7O1CIgAgq+kAxp7TasCuUX2m/cDHfIO/PVIk3E910FcVG+QEo8GtCeCe7UlYfMxnQ22506dZXqwQeWA5hav3QRomiSyKyc2h+xXIi2oVE2lliVjWbEPodkAvk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) by AS8PR08MB10270.eurprd08.prod.outlook.com (2603:10a6:20b:63c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.22; Thu, 27 Apr 2023 10:31:36 +0000 Received: from PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::5979:132b:6e3:cfb2]) by PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::5979:132b:6e3:cfb2%7]) with mapi id 15.20.6340.021; Thu, 27 Apr 2023 10:31:36 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Ashok Reddy Soma , Jay Buddhabhatti , Michal Simek Subject: [PATCH v3 2/2] firmware: zynqmp: Move config object permission check Date: Thu, 27 Apr 2023 12:31:25 +0200 Message-Id: <20230427103125.26719-2-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230427103125.26719-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20230427103125.26719-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: FR2P281CA0120.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::13) To PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR08MB6969:EE_|AS8PR08MB10270:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e5c2bf8-d44e-4788-6899-08db470a93ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bGhmaK3QI8LaL9r/vfWezIHZMoXM8U40zdX4AvHHtMIBojxzlY9ptcqRi0TRs9yR5j+ACohhTAIoDuvImNM350lgBrZN519ZKpOJFQVz+s7+rzwXbKfuuJwvaMENbiUFYCYuynXlsNsU036wy6WU/mpKUtabAVqa9RKS1UYz9FbPaeEczkM9hsSfwU1VqPJ7cZ4SybFw4uvJIsgzN0kq5tirIgAPc/wQx0g5GO7hVcJOWugupUv0bB4R9KHe+fdYyPLmQraP/pEJx9iI1btw2DzyD8swcl5CSytY8/Dt9LqaSOBX6RrxVtvt4195+QEjoLC0dvsqwH8JAVTpX42qxjlBdOukFBzAmSiSpedNkBa2+NN3VgwYsHQ85tSA4zB3dOlz8IfPxIl/s6W4deqlaSqC4nAmtlV8/rSs0eO3PofkxBbeBns9QHewSdZol0thUkjDb1yUE5GKuweOhmZZCru6r0lUWknDS9KLaFM6GnqCRyZPcTLUV1jBGTWP/4HGDPXBTVBbD4oYf6td/YIBe5n3fP5W7ajhlqpfml095iXu9TuT77DrVkR1hQIREFpnbETM4LVUFITgfodd5QtzVKnEFs8TK4bilI8U0m0UpxGYlW1hrBg2m4ueaE7nGM1E X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6969.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(136003)(366004)(39860400002)(346002)(396003)(451199021)(38350700002)(38100700002)(478600001)(5660300002)(66556008)(66476007)(6916009)(66946007)(4326008)(186003)(6506007)(2616005)(36756003)(6512007)(26005)(316002)(8936002)(83380400001)(1076003)(54906003)(8676002)(41300700001)(86362001)(6666004)(6486002)(52116002)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4axVhCoi18PHvZiZoshcbDcGBZ1OhAQcK9qyrriKWxaXuJ5LMYWSHLu082HCdd7Eo6dcggCqznZbw2pqRwO8B3MZUvAaqxC847eZCJz9PeZa2zGoQ4G48MABTSVegVZCwCP5IBD1UsX78GcKN8sqFT97eIsMpDIbrY0Sjkbe9OCrSQ/hibUXFQCxvDkI/PCDa3qlgGPjQbdvgBbglpP7w3wTEVtFS+2iAgvBPro2tImqCuL+txATbATfBBWwimPvCKYZUbOcFNKxCuz1Zq57/vmlPd9y6EHgW573JKTELK5T3lA3lBXi/CoxgNuVXS2higAgnbPc6P+ViC+5i+IDTNko5HHxbc13ggEtcBinkcxRzHnibPYWlbA1Gq7vUQxlVYzamL6ayDgVqaCepIdCwl9iAcNvux6IArj20+7Hkjbnu2p4fpRNa9pXvEZFuoMHeYiQ5G/qZeG3PYDWxLVORgRdx4haeo69UCvjXS0PoLV/GckLBW95rBgm9DFKsMaNKUpthKCbl8n1RFF9KMsRjsISaATEXqTeP6Oj+iTmi6p4emybDuKEkfQjOp/0z4Z8uf8rMOPlfvLhotWpbNNiZxA5I9g23tRnYNXicrw9oWNfWPZqkx0JS1NFGK+do1R49aU1th3p+VjaevD8okMLj9SHApkKCMCOBJdN2g5KrZcVAtzQKAbNP9zzLvfBz/GS2vdPIP8X26vhEmubgvAIof0etPB6F4XotZrUCLNp/uw2+F/lPazVE3awSVvkaES9cAdNla1Qcut8VufcBSx053qNLIbciq0MKY3+dNc0dOdixdANxR42cYw5pcf/gr7NEBO9L4ZdN3qnlS8CefB6U9y8vUqGyTot9DAk28ChwOPkmD02r0QOU7A9F08tGcKwpGc3fZx0ElP0uamH9/P6v4lWmj/PH4zvD1qvPPfnQjH9AnwqfCfmfNMnuSJnMxDaG8rsxI0k8rz28HBnMUUTHnyW+N9txAkORbZUmpk7ugprTOVKr5GY/bnZ20RWUPNOYtT/NEJghWdGXkKIoAviHExlZHzrhmiuCFZJAt8Cwcunzo8csCsaqEwSPj0yBr3rWXGqKeDEZ/0Vd4vznrm9eFMEQtC/Kyj0QFEfzRu9XGntlyTe7OUyvDkVkzlfvwj2+1OqB1zgBUSfiruPaUB2dZNIVPE7WrjY9n4McSr1SAiEhqtc1sn2RYiNL1BdIwd5e9igJI+Mlh37NWct55MdBUqRTJfb4xvQDcqsRlRfSmk6myfdgHkv4neHU7D3QHJBHeXksHw4Mf7h56U4WiHTSn+wqsHZV1IPUKeJy+4vONHwJRjmOiV5dZPez07ISGWf+KlTm/1/9g/PgMvkABun3asiGoRAbcGsJEw6NhpdWHPxQLlxpZK3vM9qzEXaTNS/RW5JCtVS4WtDTFyNRQHEXH2oWP3XXixECqhMYIjj8phNdBx8zzhJuX4sFVKBhu4QqSNHjYC9vEAqt4WK4IsT4XZNqZalY5Sv3PykyO0na4rOP2CaPZ1HzarkxBkWIQzwwWcQiR59OtRECBNZrgvDmLgX/4vDdmzomymhEx2QBGVmKeqQyywnVBwUlrPIGfkiJzjhKK8fADHFJ8Sqm7Ln0w== X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e5c2bf8-d44e-4788-6899-08db470a93ba X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2023 10:31:35.9014 (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: G/qL0mBlg9pCNPezR4I80KMTMdw1EkglVGc5rPEGT5rUKWsG34MFXDu9a9Jd7Yy9waM2Sis6EGwW2VNrk7cnAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB10270 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: Stefan Herbrechtsmeier Move the check of the permission to change a config object from zynqmp_pmufw_node function to zynqmp_pmufw_load_config_object function to simplify the code and check the permission only if required. Signed-off-by: Stefan Herbrechtsmeier --- Changes in v3: - Added drivers/firmware/firmware-zynqmp.c | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/firmware/firmware-zynqmp.c b/drivers/firmware/firmware-zynqmp.c index 2b1ad5d2c3..d12159fa78 100644 --- a/drivers/firmware/firmware-zynqmp.c +++ b/drivers/firmware/firmware-zynqmp.c @@ -70,20 +70,11 @@ int zynqmp_pmufw_config_close(void) int zynqmp_pmufw_node(u32 id) { - static bool skip_config; - int ret; - - if (skip_config) - return 0; - /* Record power domain id */ xpm_configobject[NODE_ID_LOCATION] = id; - ret = zynqmp_pmufw_load_config_object(xpm_configobject, - sizeof(xpm_configobject)); - - if (ret == -EACCES && id == NODE_OCM_BANK_0) - skip_config = true; + zynqmp_pmufw_load_config_object(xpm_configobject, + sizeof(xpm_configobject)); return 0; } @@ -239,9 +230,23 @@ int zynqmp_pm_is_function_supported(const u32 api_id, const u32 id) */ int zynqmp_pmufw_load_config_object(const void *cfg_obj, size_t size) { + static bool checked; + static bool skip; int err; u32 ret_payload[PAYLOAD_ARG_CNT]; + if (!checked) { + checked = true; + + if (zynqmp_pmufw_node(NODE_OCM_BANK_0) == -EACCES) { + printf("PMUFW: No permission to change config object\n"); + skip = true; + } + } + + if (skip) + return -EACCES; + if (IS_ENABLED(CONFIG_SPL_BUILD)) printf("Loading new PMUFW cfg obj (%ld bytes)\n", size); @@ -250,8 +255,6 @@ int zynqmp_pmufw_load_config_object(const void *cfg_obj, size_t size) err = xilinx_pm_request(PM_SET_CONFIGURATION, (u32)(u64)cfg_obj, 0, 0, 0, ret_payload); if (err == XST_PM_NO_ACCESS) { - if (((u32 *)cfg_obj)[NODE_ID_LOCATION] == NODE_OCM_BANK_0) - printf("PMUFW: No permission to change config object\n"); return -EACCES; } @@ -295,9 +298,6 @@ static int zynqmp_power_probe(struct udevice *dev) ret >> ZYNQMP_PM_VERSION_MAJOR_SHIFT, ret & ZYNQMP_PM_VERSION_MINOR_MASK); - if (IS_ENABLED(CONFIG_ARCH_ZYNQMP)) - zynqmp_pmufw_node(NODE_OCM_BANK_0); - return 0; };