RE: [PATCH v8 1/5] drivers: firmware: Add PDI load API support
From: Nava kishore Manne <hidden>
Date: 2021-07-08 11:40:51
Also in:
linux-devicetree, linux-fpga, lkml
Hi Tom, Please fix my response inline.
-----Original Message----- From: Tom Rix <trix@redhat.com> Sent: Wednesday, July 7, 2021 2:34 AM To: Nava kishore Manne <redacted>; robh+dt@kernel.org; Michal Simek [off-list ref]; mdf@kernel.org; arnd@arndb.de; Rajan Vaja [off-list ref]; gregkh@linuxfoundation.org; Amit Sunil Dhamne [off-list ref]; Tejas Patel [off-list ref]; zou_wei@huawei.com; Sai Krishna Potthuri [off-list ref]; Ravi Patel [off-list ref]; iwamatsu@nigauri.org; Jiaying Liang [off-list ref]; devicetree@vger.kernel.org; linux-arm- kernel@lists.infradead.org; linux-kernel@vger.kernel.org; linux- fpga@vger.kernel.org; git [off-list ref]; chinnikishore369@gmail.com Subject: Re: [PATCH v8 1/5] drivers: firmware: Add PDI load API support On 6/26/21 8:52 AM, Nava kishore Manne wrote:quoted
This patch adds load PDI API support to enable full/partial PDI loading from linux. Programmable Device Image (PDI) is combination of headers, images and bitstream files to be loaded. Signed-off-by: Nava kishore Manne <redacted> Reviewed-by: Moritz Fischer <mdf@kernel.org> --- Changes for v2: -Updated API Doc and commit msg. No functional changes. Changes for v3: -None. Changes for v4: -Rebased the changes on linux-next. No functional changes Changes for v5: -None. Changes for v6: -None. Changes for v7: -None. Changes for v8: -None. drivers/firmware/xilinx/zynqmp.c | 17 +++++++++++++++++ include/linux/firmware/xlnx-zynqmp.h | 10 ++++++++++ 2 files changed, 27 insertions(+)diff --git a/drivers/firmware/xilinx/zynqmp.cb/drivers/firmware/xilinx/zynqmp.c index 15b138326ecc..2db571da9ad8 100644--- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c@@ -1011,6 +1011,23 @@ int zynqmp_pm_set_requirement(const u32node, const u32 capabilities,quoted
} EXPORT_SYMBOL_GPL(zynqmp_pm_set_requirement); +/** + * zynqmp_pm_load_pdi - Load and process PDI + * @src: Source device where PDI is located + * @address: PDI src address + * + * This function provides support to load PDI from linux + * + * Return: Returns status, either success or error+reason */ int +zynqmp_pm_load_pdi(const u32 src, const u64 address) { + return zynqmp_pm_invoke_fn(PM_LOAD_PDI, src, + lower_32_bits(address), + upper_32_bits(address), 0, NULL); } +EXPORT_SYMBOL_GPL(zynqmp_pm_load_pdi); + /** * zynqmp_pm_aes - Access AES hardware to encrypt/decrypt the datausingquoted
* AES-GCM core.diff --git a/include/linux/firmware/xlnx-zynqmp.hb/include/linux/firmware/xlnx-zynqmp.h index 9d1a5c175065..56b426fe020c 100644--- a/include/linux/firmware/xlnx-zynqmp.h +++ b/include/linux/firmware/xlnx-zynqmp.h@@ -52,6 +52,10 @@ #define ZYNQMP_PM_CAPABILITY_WAKEUP 0x4U #define ZYNQMP_PM_CAPABILITY_UNUSABLE 0x8U +/* Loader commands */ +#define PM_LOAD_PDI 0x701This should be defined in enum pm_api_idquoted
+#define PDI_SRC_DDR 0xFThis is only used by versal_fpga_ops_write(), consider moving the #define to versal-fpga.c
Yes, currently only versal_fpga_write() is using this #define but it’s a generic thing for Versal platform That’s why we placed it here. Regards, Navakishore. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel