From patchwork Tue May 23 12:42:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1785113 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=SrnCqgWa; 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 4QQYsB4MbKz2020 for ; Tue, 23 May 2023 22:43:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B6C3A86040; Tue, 23 May 2023 14:42:52 +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="SrnCqgWa"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 419CD85FEC; Tue, 23 May 2023 14:42: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 EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20620.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe16::620]) (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 E17E585F59 for ; Tue, 23 May 2023 14:42:33 +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=PdZQN3Lm7hu6LYnNHyu/4PvbEVcShLSmlpjCrfAdQsJJcqulaog2UmKvn/sv+jZXAZ61uHFGEA1BEhPFA9ITJmDLExMnrQuqOi9WTU/hylQ9h5Hx6ZVXZKDZjsyStDXLx2Zj/S6Urb0EyUzMUxREYdH6mVsI9LZg1/buh8fOeHe3CwK0R0JbZZ0uv5JkyQw6Ayo3u7hXpAfZ1/16GnkZAuswzHs8mvyCK34tI20pdByyNzIi/Nddi8OmZ9KAOz5DyLMXv+NwQYOWLAGUhceStFgTwFeqfsIYHYT8Ydj4sFr7f/P1nwD68TfYNSuCjj9AMr7YMYWb1DBSuRFeZylJNQ== 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=iaL1BLW1MR4KPmCSeyuTvT4m3gj1XQ0vXP69PZhRQ40=; b=fdpFUNW5JujEO+KnoTxodAu+OOS/2WKcL95EcbEbgjF6DTLzdqWzmRpvG30sIRx5erNZ7mInQmAo5GtMZWFUhytFWgZ5Y9T2MPNNwHMeXHBtQrHik6xn1XfsQkG5GbpQruQ47DY8kzlnrEtGfuIqUBYDey4zebTptfQko0QGBl6HE9pCvcNbNzaZlqf1rameKzNOylOAn/i4RgeHS/y9WOjqDU0TfyjOVWMCDCHcdg6qDuH6r8aqUOykkV9ikOPGHXr1K6Bo1fNhch13ypafzWotmBRjdBwxVcvmq0gxg6cwP7ZVslEa9pm6XevYxbynlf1lmdzYwUnSCUPu8OjywA== 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=iaL1BLW1MR4KPmCSeyuTvT4m3gj1XQ0vXP69PZhRQ40=; b=SrnCqgWayb/gFTAyIgSOFjTNtspfyeb/69QeWPSf4qVGT/opGh5wyuIiperwFO/e941ZZgv/ahTf7N8YghJ5RGQWTUf5EiWyG617pP218J6YUE+39qAxKk192/84IoYtERpmLi2VD/cFLf/vdDxatdBBglToMESCunezzKheBUw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from AS8PR08MB6964.eurprd08.prod.outlook.com (2603:10a6:20b:349::5) by VE1PR08MB5791.eurprd08.prod.outlook.com (2603:10a6:800:1b1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Tue, 23 May 2023 12:42:32 +0000 Received: from AS8PR08MB6964.eurprd08.prod.outlook.com ([fe80::e8f4:c34:a59f:ce35]) by AS8PR08MB6964.eurprd08.prod.outlook.com ([fe80::e8f4:c34:a59f:ce35%7]) with mapi id 15.20.6411.029; Tue, 23 May 2023 12:42:32 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Ashok Reddy Soma , Jay Buddhabhatti , Michal Simek Subject: [PATCH v5 4/5] firmware: zynqmp: Move permission to change config object message Date: Tue, 23 May 2023 14:42:13 +0200 Message-Id: <20230523124215.30915-4-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230523124215.30915-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20230523124215.30915-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: FR0P281CA0133.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::11) To AS8PR08MB6964.eurprd08.prod.outlook.com (2603:10a6:20b:349::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB6964:EE_|VE1PR08MB5791:EE_ X-MS-Office365-Filtering-Correlation-Id: 57ffb37a-2615-4ebb-1114-08db5b8b2d20 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yrLCq9OZs0mAUSQoeiHK57mqVSy6OMxcE/ekzsLTWMztwYwQMoMqn6r0DOMTSkwOF89xjFPtXzoGaO02bHUPPxCkmz1B2NxQIiEH5c6mmkCLnkAdxKXEJ1Fn5xhdFOMtZRg+2+9GQ0iPfIF7x7k8CWG0xIrq1aYxZpUVChMZj+XeHJ75stmKbJlxgQdODwbhJeEsW+HiwL1wW2db9xJINiVQ3Kx4qLcwh89uXfa7i6VX3eluNzU1VjCuZF4+2ugrfSKaYwReLl5OD6KsiHN0mjBKhfWCY3IDUQl16Zx3mC9iCquwcjvVWM8eAUqVkGI4NM0St25udLQsGdzupSD4pvPjTCG4hQktcsNT2KDzmpmXtsv8FqQQPaglV4rigb6LIQog3mvcgd8OEIWiPAZruAIYylZ4ehne30bbSouU86GPUhumPnlmFlimORpaizS4JadffYxdIQXecu07DCbiAhnbEwszZz/XIdQjoMi4hR/HpMVoLijyoBHGco+Ah8i9HysKOWlDh7TpUD1JzyTG1JfvErb5EeEtT8NHj5wHjv6LAgZVQEpyj+0J/IplpUI9MyWwij5cVC/tJaUcVdRNKgszcmwYiXtYp/yKsg0H1ktmRT2Bb3v2Rcemyc09y6FF X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6964.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(366004)(39850400004)(376002)(396003)(136003)(451199021)(186003)(6506007)(1076003)(26005)(38350700002)(15650500001)(6512007)(38100700002)(2616005)(36756003)(83380400001)(2906002)(54906003)(52116002)(316002)(6486002)(41300700001)(6666004)(478600001)(86362001)(6916009)(4326008)(66946007)(66556008)(66476007)(8936002)(8676002)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ucS6SXrwbpDJYdfvKy6J1R0h1npRzWbyHjMUrDU72E0KRio1cDr1QI2GKx+WZFKPs6HI5Ix9sPaBKpDaNxTCpfLV++A/BE4jLy6IMuyT449X3B+C3HLAjIGuBWonkOdHSjrenA/J4MBHwIIcq2xuK7gT2x/viJUmJtt8Wom8Z6gxC4+fIJzQTDnDX3Mr0fxwsIaEh1Wd6BRNOJCnCHh9LGQi4wsCJrcYyhx7ufTEt0I0ll22BpBNce3qmPpHhOo70YiEx/Bn9fnvQoWP7LUGYnj/djcP0qOfsWe/n8ehZoFOG+7A35xlsEfD5aIHpBhSkreH6MhGEeBKmv2bdAQoFkZI76aV4PhBBcqaBjdR7u0aQ/3HLDnq5PARPpsTf1tA15SoWzTahIx+qrELkBdrusJRRj+ge4/6WIF+cX4my87DkwTmgdkR598mU3nVw4aFtQYBYxcsAGPT1C/m2hFUnKnlvhqBGDoB8X8Dd2E7ac8D9t9x7gwkohPG6vj9USNKdAo5Am1WAPqe9Su5wKaPH9oj8X1w70oHj1TkwKYcVmdrmpH4l3qGd8o45BFGbjh0lz2udaXWWSx6SSdanTiEaaEk/uE1bhaf/4hM9DB889z/pPnewhmkYfMhojZQwyXtA7yUPEpUVJzz1DFL7NwZeXNX4duJ9TC0+I8gll3dUUiwEjZBj/Ls9/b37OQLicGtrXqcVArniUfzK3UZhP5JTN1TtCenLMKUvKmbP6k2sXkjVQavSUBOnwXIP56/8nkPhwrTMopHr42sskiIaIBDKncDUvOO6ytEspVeGbypYNm7mHQH5Vo0HvIN8H/fWG3c8SEn+TK76Mx5nAKfJ6Q6Lv5Cl94+I1YKt/gO7GOn6q3HlBW/M1Dyj/b+w0dFnAVNvHBXB2d2FcI1oixA1GyUg55a3jrd3kRLq+ccHpph3l6vbSOeZB1m4hBrcb+epWpfqsGqbYjDtmLsI3OE4nOfcsxOY724TB/gx5lH3HTYEsbm8imPvPcwrnDLb3oft3jzNq+0Dd0UsTEL9zMVhudlppYgjZtxHbDkeV7qRArBsHaHJcG8goAl/WZdzEEl8NtTkJR4VLrSn8PrDVSjQIPbugmcNanG6/HT3Oy8Nb/A90K450lqJkooUOmHSD6lX9UBM30CvTHBzV0RD4QJALGp7HhWZYXMRb9A+BJv6pFWwP/Taydf34cdDBoGRsyaiWwsCGg31vMSR5w+88iYGvseJSjGDo0XuvawmoPAIXclA1tj1a+Tw9VbrwgOHL2ORfx8JG4f05iUyRC7ReWchcBGqfL1hcWX9ApwBj1+vfKzFmT45bRr6kjH1JW1WuaCqDiHft93mTYoS54vEwEKkL+hRQs9xLkZjD1DiLSVMnKt7QnVTNM1vqrcsM2TB8iEjtgTUPqjsNI+AF0M+PAyo3edSOrXJU/fAzzWb3MgNcf1el8yz0BJgO64K9UCwjqd6pI49yqvk8lmGa/LMT9qRdhJoNAzYY6zuUWI27Net/KUajVSiGmlbxrsxgLgqJ3/tqJz2ukohrJcCXZ4Pv75iKcEj1eBaBSmLKFGxHq7l43Utj2RTksbCC7hx1h9HLGyc6OU0JBQtGlBjtoTrG27djoRPw== X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57ffb37a-2615-4ebb-1114-08db5b8b2d20 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB6964.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2023 12:42:31.9718 (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: l31YJ64XowvH4E4ATdxcLAsAuhgJczXM0yqBNK6r4K+GmzJh393Z97w1jHMQr1yUN/8BOKDAL2TVWJeo5XTcAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5791 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 v5: - Return 0 in case of no permission to change config object in zynqmp_pmufw_node to keep old behavior. - Reword and unify static variable names. - Initialize static variables with 'true' to store them in data section to make them usable before relocation. 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 | 34 ++++++++++++++---------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/firmware/firmware-zynqmp.c b/drivers/firmware/firmware-zynqmp.c index ca3a0b55c9..e1abfb4cec 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 check = true; + static bool permission = true; + + if (check) { + check = false; + + if (zynqmp_pmufw_node(NODE_OCM_BANK_0) == -EACCES) { + printf("PMUFW: No permission to change config object\n"); + permission = false; + } + } - if (skip_config) + if (!permission) 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; - - 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; };