From mboxrd@z Thu Jan 1 00:00:00 1970 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 C6A10C4332F for ; Fri, 25 Nov 2022 09:30:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:CC:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Pjb86T6saRUmOAVBYMF7OI8juP1akKF2pQyt2Fh/qZ4=; b=RvyNuUkPjmd8mj hh+pYPy9M9hJHHznqvtpg1UAkNoCY2m9nDlr+07fapTl3WCdywbvDVFgaX6jDFcn2/y3LK00qTssc YsqnQ/k5k+y+fPV94meqA/qRUpRXi3/edU8p3L2/hokjryLI95BkPliYFoylq4V9G2mQbE0IJ0yl2 jpUptAwZs0YolaFtNSvknNwgIFCe1obddJJWy1z6CVB+G77fc/bffjAj45xLfUaY5CrIoU170vm1l Nh2sRLJUljCIFbveHcLp4xDk4wYQfvQKf1JrXMbD5aHXD3DGNKuRJibX2aJBlIPNuysggq7Xz557i YOiuykKOdXjhVJPSAwTg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oyV1H-00EvSb-Tg; Fri, 25 Nov 2022 09:29:17 +0000 Received: from mail-sn1nam02on2045.outbound.protection.outlook.com ([40.107.96.45] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oyUxv-00Ety2-Qo for linux-arm-kernel@lists.infradead.org; Fri, 25 Nov 2022 09:25:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fwoNcf5vXxdmkjJ4mDMeL/N98ONHoWsb4Dh5pwfBWXfP70sHcRsWbHeBYhbjT/7Ks9JWCcqyI1Q1B/19me+0Oggh6zS+nzHEo59gK+UTdIRBuebAPZVEmNxJQpFnayKdv0wABGBwZ31RQFNAScoRouw44KHJZkheI4AX8JYJ5BYvidknrwYmX+xQF5vWJ10viGqSmHNka+VN3ms2kR3tpqqRG9Dxu2IBBYDYlFXXhMKAt0h9OEanc61N/XzFsDNIg519bz6ZRuUQcfDtWhGzc0i0OXxrd81msnUQsmBZ8CaDZzmsBtgKVykLe4rbDeIcWHU2QPOvpqS+rAsiK9ZilQ== 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=ptKLpD/UD56c+zH9PQ/UGytaJcgaunA9AY4taxrDKdc=; b=VLcvBeleLajkYD53JtzOf1hi2KO4ZGetmNXJBu5Zwly/4ZCTSF+pt6+nuc+cuXiKHqGnjiCH2uKqsSjrC/DL6/ZMHNQ8RNDByXWuxSP6SXKA8FLMWauPqZ/5K+JpsiR9kCB0y4XNVtlqy5o7Ungs56269yXDa6lC6mxK8cnD7hlkDf/uT1RJB9Ifs88k50jd4hVHJLQyB1xXjZvIcBsngCzaTdsj5/XiAhqjp+7ELL9VyvswAlBOEn3eHVHNBujwD5aIh+RC2iGDo1HTu5RUxW5g4AQpSJ+MSFNWUDOmib69uTPpIYNUmeVy956GQDY682xtAopLQtz/p02IXLmdbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ptKLpD/UD56c+zH9PQ/UGytaJcgaunA9AY4taxrDKdc=; b=TFHLKIfdfcsSjywGtlv+mFTNFA9Z1bSMq4P/5OMydUuXzwLgG6xgeZ1hsh+da7wcS2XKy+OUZHwUEFdZwMD7lNbjC+6g2rQDuo63WPfWijkt+D7QopJfZjf9yTTCyDd5ZHQLF9C8MEmeIfztV3aIIpJRxHi4G1vOiMalm/71YbM= Received: from DM6PR02CA0067.namprd02.prod.outlook.com (2603:10b6:5:177::44) by BY5PR12MB4856.namprd12.prod.outlook.com (2603:10b6:a03:1d5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20; Fri, 25 Nov 2022 09:25:43 +0000 Received: from DM6NAM11FT023.eop-nam11.prod.protection.outlook.com (2603:10b6:5:177:cafe::5f) by DM6PR02CA0067.outlook.office365.com (2603:10b6:5:177::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20 via Frontend Transport; Fri, 25 Nov 2022 09:25:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT023.mail.protection.outlook.com (10.13.173.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5857.20 via Frontend Transport; Fri, 25 Nov 2022 09:25:43 +0000 Received: from [10.254.241.50] (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 25 Nov 2022 03:25:35 -0600 Message-ID: Date: Fri, 25 Nov 2022 10:25:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH v11 5/6] firmware: xilinx: Add RPU configuration APIs Content-Language: en-US To: Tanmay Shah , , , , CC: , , , , , Ben Levinsky References: <20221114233940.2096237-1-tanmay.shah@amd.com> <20221114233940.2096237-6-tanmay.shah@amd.com> From: Michal Simek In-Reply-To: <20221114233940.2096237-6-tanmay.shah@amd.com> X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT023:EE_|BY5PR12MB4856:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b851400-1017-4b01-43e8-08dacec706d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2/s9sbICfS0BsToy01+yCzRk149W3Uvr3VDimLYC9XF/gfeQcevwtkvIyQ/hFQgpv1bHkjzffkGGL8OPBZS17PveVdULg+0mta48+D9vn2qDUef9hY/DoSKOZcUBSlQuagXqt4a8uxx6is5H/NzaV5KzpTry4aKsLwCYIUlR42yU8YU6eBh6YfgtMj2G6CBspS5u9L3cYHgFHeKrzLIFm60dwDO4NN6LTPepKixPaYMbVFmwMXGWPCT4/7sd4T0VdJq4FCXJ/qR2QegyaHRdaYjeQqOWFRsIGURZQ6vbZosyWYBZM6bYLzk7D9T+r7DSCUIda45GgZCnN/J3mL3UlEzhOoB1AbKVAM+p8PBdPhZZC3k9V5Lg8oQ2BxN+IkIqspRSmClTUeNknQdFOD4+WcZjr8txqtpz9xehScOx1iu7Ssq17vRXXR2Svk+t2/brqRGGbq5987nZh4vJbtb2YbxBDbp7/OrW1vHll9lHyOqaBbSnVmybFMlyLXOJRoxB8ppRaOP9KUeNFK7bdlgygZlZ29zVvsvwTdCkRBYcM8h/KiOTiUvRDQO4W6S00AkLvhLvZGGnk8P/vD9AsAmzdafmRtbSMFye3Vg5qNbmPL8XehANSs24MZ58fbXBycF56/QDYjaWA7v9x3yQqpEcajo2beiDgmMpUkSBDVubMD6YS3DbVzIW9KYZB5Ptkp/6XerrcHtoOaxTL9RWTfRIM5L1X83Cb0AQA7IJ/lRmBNeu+DSeqav+fmxKtqOxsNIKEAy8cf0oZhGwaa+LRcIALw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(346002)(396003)(376002)(451199015)(40470700004)(36840700001)(46966006)(8936002)(2616005)(26005)(44832011)(5660300002)(356005)(16526019)(186003)(336012)(426003)(47076005)(36756003)(81166007)(40480700001)(31696002)(86362001)(110136005)(16576012)(54906003)(316002)(82310400005)(6666004)(41300700001)(53546011)(40460700003)(8676002)(4326008)(70586007)(70206006)(478600001)(31686004)(36860700001)(83380400001)(2906002)(82740400003)(43740500002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2022 09:25:43.2910 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5b851400-1017-4b01-43e8-08dacec706d0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT023.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4856 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221125_012547_955493_E91D043F X-CRM114-Status: GOOD ( 24.83 ) 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: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 11/15/22 00:39, Tanmay Shah wrote: > From: Ben Levinsky > > This patch adds APIs to access to configure RPU and its > processor-specific memory. > > That is query the run-time mode of RPU as either split or lockstep as well > as API to set this mode. In addition add APIs to access configuration of > the RPUs' tightly coupled memory (TCM). > > Signed-off-by: Ben Levinsky > Signed-off-by: Tanmay Shah > --- > > Changes in v11: > - Rebase on latest rproc-next branch and resolve merge conflicts > > Changes in v10: > - None > > Changes in v9: > - None > > Changes in v8: > - None > > Changes in v7: > - None > > Changes in v6: > - None > > Changes in v5: > - None > > Changes in v4: > - None > > Changes in v3: > - Add missing function argument documentation > > drivers/firmware/xilinx/zynqmp.c | 62 ++++++++++++++++++++++++++++ > include/linux/firmware/xlnx-zynqmp.h | 18 ++++++++ > 2 files changed, 80 insertions(+) > > diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c > index 1865e43ed7e7..e4981e7f3500 100644 > --- a/drivers/firmware/xilinx/zynqmp.c > +++ b/drivers/firmware/xilinx/zynqmp.c > @@ -1159,6 +1159,68 @@ int zynqmp_pm_release_node(const u32 node) > } > EXPORT_SYMBOL_GPL(zynqmp_pm_release_node); > > +/** > + * zynqmp_pm_get_rpu_mode() - Get RPU mode > + * @node_id: Node ID of the device > + * @rpu_mode: return by reference value > + * either split or lockstep > + * > + * Return: return 0 on success or error+reason. > + * if success, then rpu_mode will be set > + * to current rpu mode. > + */ > +int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode) > +{ > + u32 ret_payload[PAYLOAD_ARG_CNT]; > + int ret; > + > + ret = zynqmp_pm_invoke_fn(PM_IOCTL, node_id, > + IOCTL_GET_RPU_OPER_MODE, 0, 0, ret_payload); > + > + /* only set rpu_mode if no error */ > + if (ret == XST_PM_SUCCESS) > + *rpu_mode = ret_payload[0]; > + > + return ret; > +} > +EXPORT_SYMBOL_GPL(zynqmp_pm_get_rpu_mode); > + > +/** > + * zynqmp_pm_set_rpu_mode() - Set RPU mode > + * @node_id: Node ID of the device > + * @rpu_mode: Argument 1 to requested IOCTL call. either split or lockstep > + * > + * This function is used to set RPU mode to split or > + * lockstep > + * > + * Return: Returns status, either success or error+reason > + */ > +int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode) > +{ > + return zynqmp_pm_invoke_fn(PM_IOCTL, node_id, > + IOCTL_SET_RPU_OPER_MODE, (u32)rpu_mode, > + 0, NULL); > +} > +EXPORT_SYMBOL_GPL(zynqmp_pm_set_rpu_mode); > + > +/** > + * zynqmp_pm_set_tcm_config - configure TCM > + * @node_id: Firmware specific TCM subsystem ID > + * @tcm_mode: Argument 1 to requested IOCTL call > + * either PM_RPU_TCM_COMB or PM_RPU_TCM_SPLIT > + * > + * This function is used to set RPU mode to split or combined > + * > + * Return: status: 0 for success, else failure > + */ > +int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode) > +{ > + return zynqmp_pm_invoke_fn(PM_IOCTL, node_id, > + IOCTL_TCM_COMB_CONFIG, (u32)tcm_mode, 0, > + NULL); > +} > +EXPORT_SYMBOL_GPL(zynqmp_pm_set_tcm_config); > + > /** > * zynqmp_pm_force_pwrdwn - PM call to request for another PU or subsystem to > * be powered down forcefully > diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h > index ad3f2bd0c470..cf92e739fa3b 100644 > --- a/include/linux/firmware/xlnx-zynqmp.h > +++ b/include/linux/firmware/xlnx-zynqmp.h > @@ -530,6 +530,9 @@ int zynqmp_pm_request_wake(const u32 node, > const bool set_addr, > const u64 address, > const enum zynqmp_pm_request_ack ack); > +int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode); > +int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1); > +int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1); > int zynqmp_pm_set_sd_config(u32 node, enum pm_sd_config_type config, u32 value); > int zynqmp_pm_set_gem_config(u32 node, enum pm_gem_config_type config, > u32 value); > @@ -818,6 +821,21 @@ static inline int zynqmp_pm_request_wake(const u32 node, > return -ENODEV; > } > > +static inline int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode) > +{ > + return -ENODEV; > +} > + > +static inline int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1) > +{ > + return -ENODEV; > +} > + > +static inline int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1) > +{ > + return -ENODEV; > +} > + > static inline int zynqmp_pm_set_sd_config(u32 node, > enum pm_sd_config_type config, > u32 value) Acked-by: Michal Simek Thanks, Michal _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel