diff options
| author | Naman Trivedi <naman.trivedimanojbhai@amd.com> | 2025-08-28 15:42:22 +0200 |
|---|---|---|
| committer | Michal Simek <michal.simek@amd.com> | 2025-10-09 09:07:03 +0200 |
| commit | 4146a31dcec709058a8e793b86712b0ffa1ba15a (patch) | |
| tree | fde641edd88939431fff5a3e1000ebfcf38c4963 /drivers/fpga | |
| parent | e7fe2c7bc60d9963f8309d0094fec753b767fd36 (diff) | |
drivers: firmware: update xilinx_pm_request to support max payload
Currently xilinx_pm_request API supports four u32 payloads. However the
legacy SMC format supports five u32 request payloads and extended SMC
format supports six u32 request payloads. Add support for the same in
xilinx_pm_request API. Also add two dummy arguments to all the callers
of xilinx_pm_request.
The TF-A always fills seven u32 return payload so add support
for the same in xilinx_pm_request API.
Signed-off-by: Naman Trivedi <naman.trivedimanojbhai@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Senthil Nathan Thangaraj <senthilnathan.thangaraj@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/5ae6b560741f3ca8b89059c4ebb87acf75b4718e.1756388537.git.michal.simek@amd.com
Diffstat (limited to 'drivers/fpga')
| -rw-r--r-- | drivers/fpga/versalpl.c | 5 | ||||
| -rw-r--r-- | drivers/fpga/zynqmppl.c | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/drivers/fpga/versalpl.c b/drivers/fpga/versalpl.c index 624493ad838..630d1ecfea3 100644 --- a/drivers/fpga/versalpl.c +++ b/drivers/fpga/versalpl.c @@ -40,13 +40,12 @@ static int versal_load(xilinx_desc *desc, const void *buf, size_t bsize, buf_lo = lower_32_bits(bin_buf); buf_hi = upper_32_bits(bin_buf); - if (desc->family == xilinx_versal2) { ret = xilinx_pm_request(VERSAL_PM_LOAD_PDI, VERSAL_PM_PDI_TYPE, buf_hi, - buf_lo, 0, ret_payload); + buf_lo, 0, 0, 0, ret_payload); } else { ret = xilinx_pm_request(VERSAL_PM_LOAD_PDI, VERSAL_PM_PDI_TYPE, buf_lo, - buf_hi, 0, ret_payload); + buf_hi, 0, 0, 0, ret_payload); } if (ret) diff --git a/drivers/fpga/zynqmppl.c b/drivers/fpga/zynqmppl.c index 1199b249e36..048d0d2e7a1 100644 --- a/drivers/fpga/zynqmppl.c +++ b/drivers/fpga/zynqmppl.c @@ -291,7 +291,7 @@ static int zynqmp_load(xilinx_desc *desc, const void *buf, size_t bsize, buf_hi = upper_32_bits(bin_buf); ret = xilinx_pm_request(PM_FPGA_LOAD, buf_lo, buf_hi, - bsize_req, bstype, ret_payload); + bsize_req, bstype, 0, 0, ret_payload); if (ret) printf("PL FPGA LOAD failed with err: 0x%08x\n", ret); @@ -335,11 +335,11 @@ static int zynqmp_loads(xilinx_desc *desc, const void *buf, size_t bsize, ret = xilinx_pm_request(PM_FPGA_LOAD, buf_lo, buf_hi, (u32)(uintptr_t)fpga_sec_info->userkey_addr, - flag, ret_payload); + flag, 0, 0, ret_payload); else ret = xilinx_pm_request(PM_FPGA_LOAD, buf_lo, buf_hi, (u32)bsize, - flag, ret_payload); + flag, 0, 0, ret_payload); if (ret) puts("PL FPGA LOAD fail\n"); @@ -356,7 +356,7 @@ static int zynqmp_pcap_info(xilinx_desc *desc) u32 ret_payload[PAYLOAD_ARG_CNT]; ret = xilinx_pm_request(PM_FPGA_GET_STATUS, 0, 0, 0, - 0, ret_payload); + 0, 0, 0, ret_payload); if (!ret) printf("PCAP status\t0x%x\n", ret_payload[1]); |
