aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiva Durga Prasad Paladugu2018-03-01 17:44:47 +0530
committerMichal Simek2018-04-09 12:14:50 +0200
commit19ed4b697b9732e0a5097bd233fba7e24dfe9146 (patch)
tree82a8f017cd8f4c66c6ef1b53611a31bddc8214d8
parentb32e11a7158063c6cd773087a2b3b5736da0a273 (diff)
fpga: zynqmp: Update zynqmp_load() as per latest xilfpga
Latest xilfpga expects to set BIT5 of flags for nonsecure bitsream and also expects length in bytes instead of words This patch does the same. Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
-rw-r--r--arch/arm/include/asm/arch-zynqmp/sys_proto.h2
-rw-r--r--drivers/fpga/zynqmppl.c6
2 files changed, 3 insertions, 5 deletions
diff --git a/arch/arm/include/asm/arch-zynqmp/sys_proto.h b/arch/arm/include/asm/arch-zynqmp/sys_proto.h
index ad3dc9aba50..3daf0e81d80 100644
--- a/arch/arm/include/asm/arch-zynqmp/sys_proto.h
+++ b/arch/arm/include/asm/arch-zynqmp/sys_proto.h
@@ -14,6 +14,8 @@
#define ZYNQMP_SIP_SVC_PM_SECURE_IMG_LOAD 0xC200002D
#define KEY_PTR_LEN 32
+#define ZYNQMP_FPGA_BIT_NS 5
+
enum {
IDCODE,
VERSION,
diff --git a/drivers/fpga/zynqmppl.c b/drivers/fpga/zynqmppl.c
index 80388ae7f2c..aae0efc7348 100644
--- a/drivers/fpga/zynqmppl.c
+++ b/drivers/fpga/zynqmppl.c
@@ -209,13 +209,9 @@ static int zynqmp_load(xilinx_desc *desc, const void *buf, size_t bsize,
debug("%s called!\n", __func__);
flush_dcache_range(bin_buf, bin_buf + bsize);
- if (bsize % 4)
- bsize = bsize / 4 + 1;
- else
- bsize = bsize / 4;
-
buf_lo = (u32)bin_buf;
buf_hi = upper_32_bits(bin_buf);
+ bstype |= BIT(ZYNQMP_FPGA_BIT_NS);
ret = invoke_smc(ZYNQMP_SIP_SVC_PM_FPGA_LOAD, buf_lo, buf_hi, bsize,
bstype, ret_payload);
if (ret)