diff mbox series

[U-Boot,2/3] fpga: zynqmp: Update zynqmp_load() as per latest xilfpga

Message ID c785f6d835c452a8a2be9c53d0643606c6d14991.1522247420.git.michal.simek@xilinx.com
State Accepted
Commit 19ed4b697b9732e0a5097bd233fba7e24dfe9146
Delegated to: Michal Simek
Headers show
Series fpga: zynqmp: Fpga changes | expand

Commit Message

Michal Simek March 28, 2018, 2:30 p.m. UTC
From: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>

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>
---

 arch/arm/include/asm/arch-zynqmp/sys_proto.h | 2 ++
 drivers/fpga/zynqmppl.c                      | 6 +-----
 2 files changed, 3 insertions(+), 5 deletions(-)

Comments

Joe Hershberger March 29, 2018, 3:46 a.m. UTC | #1
On Wed, Mar 28, 2018 at 9:30 AM, Michal Simek <michal.simek@xilinx.com> wrote:
> From: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
>
> 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>
diff mbox series

Patch

diff --git a/arch/arm/include/asm/arch-zynqmp/sys_proto.h b/arch/arm/include/asm/arch-zynqmp/sys_proto.h
index ad3dc9aba50d..3daf0e81d80c 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 80388ae7f2cf..aae0efc7348e 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)