Thread (14 messages) 14 messages, 4 authors, 2021-07-13

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-arm-kernel, 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.c
b/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 u32
node, 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 data
using
quoted
   * AES-GCM core.
diff --git a/include/linux/firmware/xlnx-zynqmp.h
b/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	0x701
This should be defined in enum pm_api_id
quoted
+#define PDI_SRC_DDR	0xF
This 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. 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help