From: Nava kishore Manne <nava.manne@xilinx.com> To: <mdf@kernel.org>, <trix@redhat.com>, <robh+dt@kernel.org>, <michal.simek@xilinx.com>, <gregkh@linuxfoundation.org>, <jolly.shah@xilinx.com>, <rajan.vaja@xilinx.com>, <arnd@arndb.de>, <manish.narani@xilinx.com>, <amit.sunil.dhamne@xilinx.com>, <tejas.patel@xilinx.com>, <linux-fpga@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <chinnikishore369@gmail.com> Cc: Nava kishore Manne <nava.manne@xilinx.com> Subject: [PATCH v3 1/3] drivers: firmware: Add PDI load API support Date: Thu, 4 Mar 2021 12:32:22 +0530 [thread overview] Message-ID: <20210304070224.22346-2-nava.manne@xilinx.com> (raw) In-Reply-To: <20210304070224.22346-1-nava.manne@xilinx.com> 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 <nava.manne@xilinx.com> --- Changes for v2: -Updated API Doc and commit msg. No functional changes. Changes for v3: -Added PDI_SRC_DDR macro in the firmware.h file. 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 7eb9958662dd..9ee02655db89 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -897,6 +897,23 @@ int zynqmp_pm_set_requirement(const u32 node, const u32 capabilities, } 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 * AES-GCM core. diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h index 2a0da841c942..3eba9d5c7640 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 +#define PDI_SRC_DDR 0xF + /* * Firmware FPGA Manager flags * XILINX_ZYNQMP_PM_FPGA_FULL: FPGA full reconfiguration @@ -354,6 +358,7 @@ int zynqmp_pm_write_pggs(u32 index, u32 value); int zynqmp_pm_read_pggs(u32 index, u32 *value); int zynqmp_pm_system_shutdown(const u32 type, const u32 subtype); int zynqmp_pm_set_boot_health_status(u32 value); +int zynqmp_pm_load_pdi(const u32 src, const u64 address); #else static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void) { @@ -538,6 +543,11 @@ static inline int zynqmp_pm_set_boot_health_status(u32 value) { return -ENODEV; } + +static inline int zynqmp_pm_load_pdi(const u32 src, const u64 address) +{ + return -ENODEV; +} #endif #endif /* __FIRMWARE_ZYNQMP_H__ */ -- 2.18.0
WARNING: multiple messages have this Message-ID (diff)
From: Nava kishore Manne <nava.manne@xilinx.com> To: <mdf@kernel.org>, <trix@redhat.com>, <robh+dt@kernel.org>, <michal.simek@xilinx.com>, <gregkh@linuxfoundation.org>, <jolly.shah@xilinx.com>, <rajan.vaja@xilinx.com>, <arnd@arndb.de>, <manish.narani@xilinx.com>, <amit.sunil.dhamne@xilinx.com>, <tejas.patel@xilinx.com>, <linux-fpga@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <chinnikishore369@gmail.com> Cc: Nava kishore Manne <nava.manne@xilinx.com> Subject: [PATCH v3 1/3] drivers: firmware: Add PDI load API support Date: Thu, 4 Mar 2021 12:32:22 +0530 [thread overview] Message-ID: <20210304070224.22346-2-nava.manne@xilinx.com> (raw) In-Reply-To: <20210304070224.22346-1-nava.manne@xilinx.com> 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 <nava.manne@xilinx.com> --- Changes for v2: -Updated API Doc and commit msg. No functional changes. Changes for v3: -Added PDI_SRC_DDR macro in the firmware.h file. 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 7eb9958662dd..9ee02655db89 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -897,6 +897,23 @@ int zynqmp_pm_set_requirement(const u32 node, const u32 capabilities, } 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 * AES-GCM core. diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h index 2a0da841c942..3eba9d5c7640 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 +#define PDI_SRC_DDR 0xF + /* * Firmware FPGA Manager flags * XILINX_ZYNQMP_PM_FPGA_FULL: FPGA full reconfiguration @@ -354,6 +358,7 @@ int zynqmp_pm_write_pggs(u32 index, u32 value); int zynqmp_pm_read_pggs(u32 index, u32 *value); int zynqmp_pm_system_shutdown(const u32 type, const u32 subtype); int zynqmp_pm_set_boot_health_status(u32 value); +int zynqmp_pm_load_pdi(const u32 src, const u64 address); #else static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void) { @@ -538,6 +543,11 @@ static inline int zynqmp_pm_set_boot_health_status(u32 value) { return -ENODEV; } + +static inline int zynqmp_pm_load_pdi(const u32 src, const u64 address) +{ + return -ENODEV; +} #endif #endif /* __FIRMWARE_ZYNQMP_H__ */ -- 2.18.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-03-04 7:11 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-04 7:02 [PATCH v3 0/3] Add Bitstream configuration support for Versal Nava kishore Manne 2021-03-04 7:02 ` Nava kishore Manne 2021-03-04 7:02 ` Nava kishore Manne [this message] 2021-03-04 7:02 ` [PATCH v3 1/3] drivers: firmware: Add PDI load API support Nava kishore Manne 2021-03-04 7:02 ` [PATCH v3 2/3] dt-bindings: fpga: Add binding doc for versal fpga manager Nava kishore Manne 2021-03-04 7:02 ` Nava kishore Manne 2021-03-08 20:19 ` Rob Herring 2021-03-08 20:19 ` Rob Herring 2021-03-10 10:49 ` Nava kishore Manne 2021-03-10 10:49 ` Nava kishore Manne 2021-03-10 17:12 ` Rob Herring 2021-03-10 17:12 ` Rob Herring 2021-03-10 17:19 ` Rob Herring 2021-03-10 17:19 ` Rob Herring 2021-04-15 6:07 ` Nava kishore Manne 2021-04-15 6:07 ` Nava kishore Manne 2021-03-04 7:02 ` [PATCH v3 3/3] fpga: versal-fpga: Add versal fpga manager driver Nava kishore Manne 2021-03-04 7:02 ` Nava kishore Manne
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210304070224.22346-2-nava.manne@xilinx.com \ --to=nava.manne@xilinx.com \ --cc=amit.sunil.dhamne@xilinx.com \ --cc=arnd@arndb.de \ --cc=chinnikishore369@gmail.com \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=jolly.shah@xilinx.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-fpga@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=manish.narani@xilinx.com \ --cc=mdf@kernel.org \ --cc=michal.simek@xilinx.com \ --cc=rajan.vaja@xilinx.com \ --cc=robh+dt@kernel.org \ --cc=tejas.patel@xilinx.com \ --cc=trix@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.