From patchwork Tue May 16 14:05:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1782080 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=zMyE9mIu; 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 4QLJ1X3vbTz20dg for ; Wed, 17 May 2023 00:06:08 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id AD5618613D; Tue, 16 May 2023 16:05:51 +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="zMyE9mIu"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A79E486114; Tue, 16 May 2023 16:05:49 +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-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on062f.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0d::62f]) (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 6E5D18611C for ; Tue, 16 May 2023 16:05:47 +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=aojkW14Lox5OF3TRdbsYMYDsRDDsi4iu/ssVNJLtlj8tc49a9eljZBNIueOnVDQPYNqW2gnx6LG7JaxENUmFmdaTWMvcHzw3EO37Z8eFarEq2ZlOkWZXHOG1LrYkwI5V/wpSyQ9qKWny4zzjLDmO++7qR0j39DJHa9wo/5/IWRNe8fXlbfZwqC6qUR+UG10J0VUM7l7iY+tMw972XixAXfcN88BrzHIb0ZZOZHhQ2dh84we42+1+Kn3EOrjUPXQs+qm+7Jfi9/E0pWzRL9ZzvQDIjDbQQbMzaKJB0apd4YgHydzhBtl+LAgqVfmE6AauQHnV/mBACsgZc9crIdqvTw== 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=7IMlE0av5MwECCJuhO6E7mXbTkMR0Nafw2wR809ejmg=; b=Fh0CzE8nSR94ytxgC/r7zB+qqoAWdclECwQac09BYe+vBRP78wMGYIbFNMmW5f8uRsr9hE1MxPle+2N8CuZOGiONauCI2iuZPUuP+bQDxFzOeUenNuBC/Dv2vLUwOWwL8aFmbyuNTY0kjgrVgBPjEIlI+w0ECfEm/+g0FgN8Et/laO0h7WoDbzawgCPx3w6UBlC6/aNR94I1j91D3T3w7G6DCinG5ZGpQT+k2FbmMAnfkongwJ8FWQCwzlVxxxk0u+zMHqjoI2EXbS8OqBHwGiaZyYqZqjQRqzxN7L55+ZbwQP6Mj8HywhFOKzTMv82gFBWQbwy4WXSdE0UN++Qupg== 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=7IMlE0av5MwECCJuhO6E7mXbTkMR0Nafw2wR809ejmg=; b=zMyE9mIuH3o/+qsLY5taYVg3Evybzbawh2YqMqOm9wkm2YImC9ZKu8J9xatBvWy/mgjL3bTIiasL4XhWqCeyM1YUb3v6zDgxcJ1m0JGnwaAlRVm8gEPLONFm9+JoNpBWwER+7YKLB/V6gH4RBJB+u9ROynD2Xg9MIaVqVLCqw+o= 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 GV2PR08MB8365.eurprd08.prod.outlook.com (2603:10a6:150:bd::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.32; Tue, 16 May 2023 14:05:44 +0000 Received: from PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::5979:132b:6e3:cfb2]) by PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::5979:132b:6e3:cfb2%6]) with mapi id 15.20.6387.030; Tue, 16 May 2023 14:05:44 +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 permission to change config object message Date: Tue, 16 May 2023 16:05:31 +0200 Message-Id: <20230516140531.20722-2-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230516140531.20722-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20230516140531.20722-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: FR2P281CA0106.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::18) To PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR08MB6969:EE_|GV2PR08MB8365:EE_ X-MS-Office365-Filtering-Correlation-Id: 017d28a8-f392-466f-9628-08db5616a3b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cYr5CNb0QucpBauDdo2eB4I8tsmOsqxTSYcfuJ2Xg0bM7VpwHfFyf0sech6X5NJZaJHZNvKZVU0aDwaR6CWVgbeWHUk3rgKd+Aiv/MNPbksM1HP43Lu6tsHCw27jsYIsw14QHt8T9etHl+yNAWb0T41PT86Ouo/kG1TOiwgM1IuByM8ZLb3swZL+8ay2eJG/PUhrHihMnuHwY0t9qPOUQngpIwbZsjWLZN6T+M2JuK85SFjevBuPDdxWXQQEuISidKNVpStIZClRboI6b6NzXWn41bgjLPRWaaQwAT9GNG9plw5KAJowiZGnoEtVemhZtNoj1Y1NV1pajCUhpO7fdook3wALCpaF7JpiqGfY80fuE/Fj3+4tgYm8VHAVHJ6cDlz9HWJWUwAl1rusr7Myus5QSrgiNmdf1Mr6iC1rOkYexy75km3LBH1kZTjudlhS7HgZG5PjvphwYVllm8pPWkDmP1tafqkngW4oI72B9wa83RYG0RMGzWTPSD92NI49uw+LTHIq+EMFGxl0i95oKRcAy4XNx6o/Wfe/dImTbQoaBkBLYemazKa7XhdrFapVOM3/Y9oNBwUZ9V47V/m403xNASenA81FJ5/PNMAF2ytUuchwUMHPbjZt0Q1QTnoI 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)(39860400002)(366004)(396003)(346002)(136003)(451199021)(52116002)(6666004)(6486002)(83380400001)(36756003)(186003)(26005)(2616005)(6512007)(38350700002)(86362001)(1076003)(38100700002)(6506007)(8676002)(5660300002)(8936002)(41300700001)(66476007)(66556008)(66946007)(15650500001)(4326008)(6916009)(316002)(2906002)(478600001)(54906003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /SMU2jEJxsTZQ9X79pu9pX6vYvvdiQN11wx9+AbdwG5Ji8dTyOgUKvFpw5jescI4fsOji6QpSDB6R1GdzGY2NtGRBFTJIHYcP0zF6EMMBgfa2ZjOC08ULRSJ7nPRCcxc+OCPvDEzlv/gPVZEs8VNP1o0C3mM5wMz9LCJNQ1URs3Jdxy1cTj6xPjLnjVwctt+RsRvahJT2zxDXd3dMWY/N0ovM1brO5QKfDcfAXKDLe4eLbatNAn0v3KDevs+YCZ3SiwywwtmjuGpHnHOPYNr0LbVD7yd7NwtFxGu/dAgWOCgxppskxMRP/8QryWSAwV+4Og6ddm3uW1KDWCGRj8LuZ6K/1R4rwSUUet/Yo0U6giRQRFX6qXyi1u39z2CiM6i9bl5mlIsFlnDYC7g/h/PfseP5CCB11USbcw7DLYybgScBhSSU22dr+AeMwI+d34oFu7LHoV3HxeRkSS46owUyzJS4GYiECPYzFd0Duaz5Vy2vBoNbMT70YETzYNHjsl5F5hocYJF1FaBlA2R06xEAUdHNzcApgcsZWuwvGlYY9QPzozIJxFk5MU1JE9ykr3mgWqMDc119JUxQXZ8ciFMv6zl29PUTDdblhkGJAmc6FW0r+HqfnZHzuEwFfEQTHObtnwvriHAfchSCnQjY/n6bIf0L4LS5hrt4GHtdOjDXQnVP/ks3H5ixB0S9lcSsaVL+iuzv+ZkVWk1iGQFeLsKV0jLJcGwj1A1sXIPaHs9BPSpFfGIFXtdNaFs8vwT8EYOBX5/d+bZIKPEFaDzgrqq18fLuWDzcUYj7+j9Fl9JuyATiy2uyoq0sWZgK/sfYZBvrdT1fTQ9tjmtknPHvY0+pHO8kp2ePAFgvI7DKZV0P8FgGR9YUDVQXvhG3yEwxSok1f3mU+72Sz+pIkuTVGwWFZC2w23UiW9tfiup4YsjgDnogxPl6GWJ1V14g8zAPCivkxN15HerLepeWWUSU4e+BfgCjPQUq6/cGU0OroLIsPxEn0tL8YniTSVhMBPFTrmSnmNGNOA9pbtJIs49gI36BOJlMjYmBu1e510xldKbHSjLRPnBtb6169UDky2V/rgaeCwlCuy3WVaP7awuLMF1EZ3raTvdo7Wm7faRBijrOA2ypEFqpDKbLtRbLNuLVKqddU+DnIMKDsxZA7JqiIww9nSULTrRbL8nv6JINUNhX9x9fIPhmQsGi9rBpGc1M05gbcGRzW1K3ecfcU1pC41GodcO6xrsrBWk8bBeKfpBgd9PrABRkfeQN4kNRQMN8DD7RKyYlxIoF61pWWF7QZznrS+a+7/9b+7VNCqbhhOaAIDA0zsU6zJoP8qN0XMZe6DbbN4yE3bdJZ3GuVV/tllDBmwAAGrR16Bz76yme+oee/2gL50MBd1DPHAadewNrx/CeO1SOSbuzFUGiV8IhxTPn+rrYupE7UApVa54Vz7rcfQVitJkkcEyVY/6PaKUmrmXkgCovF/YxOTy5G4hT9ZQpn0r2x4LGpEcfp8a6mrocAjxWKeEXTyv3jgk0rXlNFg8pcb2GXRwNRFj+Vq+TiKY6GQr5prZc0/BEsaU0s69mvZ7ZLTCXXQr1GzTBFnyrog4nZwENTaa+ZpFYNpEpsMhHw== X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 017d28a8-f392-466f-9628-08db5616a3b3 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 14:05:44.1791 (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: kv3TcI1Q1jiTMOy2/rZ00TNZMVyBXTfMca93YItan3smY29X7iT3K28mZboGApRLzEQxs0Y78WHqvj7O6C+nWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8365 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 permission to change a config object message from zynqmp_pmufw_load_config_object function to zynqmp_pmufw_node function to simplify the code and check the permission only if required. Signed-off-by: Stefan Herbrechtsmeier --- Changes in v4: - Reword - Move the check back to zynqmp_pmufw_node because the check need to be run after the config object load. - Return error in zynqmp_pmufw_config_close and zynqmp_pmufw_node Changes in v3: - Added drivers/firmware/firmware-zynqmp.c | 36 ++++++++++++++---------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/drivers/firmware/firmware-zynqmp.c b/drivers/firmware/firmware-zynqmp.c index 2b1ad5d2c3..6dc745bd14 100644 --- a/drivers/firmware/firmware-zynqmp.c +++ b/drivers/firmware/firmware-zynqmp.c @@ -63,29 +63,32 @@ static unsigned int xpm_configobject_close[] = { int zynqmp_pmufw_config_close(void) { - zynqmp_pmufw_load_config_object(xpm_configobject_close, - sizeof(xpm_configobject_close)); - return 0; + return zynqmp_pmufw_load_config_object(xpm_configobject_close, + sizeof(xpm_configobject_close)); } int zynqmp_pmufw_node(u32 id) { - static bool skip_config; - int ret; + static bool checked; + static bool skip; - if (skip_config) - return 0; + if (!checked) { + checked = true; - /* Record power domain id */ - xpm_configobject[NODE_ID_LOCATION] = id; + if (zynqmp_pmufw_node(NODE_OCM_BANK_0) == -EACCES) { + printf("PMUFW: No permission to change config object\n"); + skip = true; + } + } - ret = zynqmp_pmufw_load_config_object(xpm_configobject, - sizeof(xpm_configobject)); + if (skip) + return -EACCES; - if (ret == -EACCES && id == NODE_OCM_BANK_0) - skip_config = true; + /* Record power domain id */ + xpm_configobject[NODE_ID_LOCATION] = id; - return 0; + return zynqmp_pmufw_load_config_object(xpm_configobject, + sizeof(xpm_configobject)); } static int do_pm_probe(void) @@ -250,8 +253,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 +296,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; };