From: Siva Durga Prasad Paladugu Date: Sat, 18 Feb 2017 09:09:47 +0000 (+0530) Subject: fpga: zynqmp: Add support to load authenticated bitsreams X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6959456bfeb507e80db04cbd4ac45632a850a558;p=thirdparty%2Fu-boot.git fpga: zynqmp: Add support to load authenticated bitsreams This patch adds support to load authenticated images using fpga loads command. Signed-off-by: Siva Durga Prasad Paladugu Signed-off-by: Michal Simek --- diff --git a/drivers/fpga/zynqmppl.c b/drivers/fpga/zynqmppl.c index aa082e0be2c..01924f11d5d 100644 --- a/drivers/fpga/zynqmppl.c +++ b/drivers/fpga/zynqmppl.c @@ -236,6 +236,7 @@ static int zynqmp_loads(xilinx_desc *desc, const void *buf, size_t bsize, int ret; u32 buf_lo, buf_hi; u32 ret_payload[PAYLOAD_ARG_CNT]; + u8 flag; size_str = strchr(fpga_sec_info->keyaddr_size, ':'); if (size_str) { @@ -293,8 +294,20 @@ static int zynqmp_loads(xilinx_desc *desc, const void *buf, size_t bsize, buf_lo = (u32)(ulong)buf; buf_hi = upper_32_bits((ulong)buf); + + switch (fpga_sec_info->sec_img_type) { + case 0: + flag = ZYNQMP_FPGA_FLAG_ENCRYPTED; + break; + case 1: + flag = ZYNQMP_FPGA_FLAG_AUTHENTICATED; + break; + default: + return FPGA_FAIL; + } + ret = invoke_smc(ZYNQMP_SIP_SVC_PM_FPGA_LOAD, buf_lo, buf_hi, bsize, - ZYNQMP_FPGA_FLAG_ENCRYPTED, ret_payload); + flag, ret_payload); if (ret) debug("PL FPGA LOAD fail\n"); diff --git a/include/zynqmppl.h b/include/zynqmppl.h index 5337a6687c0..87e67cace66 100644 --- a/include/zynqmppl.h +++ b/include/zynqmppl.h @@ -16,6 +16,7 @@ #define ZYNQMP_FPGA_OP_LOAD (1 << 1) #define ZYNQMP_FPGA_OP_DONE (1 << 2) +#define ZYNQMP_FPGA_FLAG_AUTHENTICATED (1 << 2) #define ZYNQMP_FPGA_FLAG_ENCRYPTED (1 << 3) #define ZYNQMP_CSU_IDCODE_DEVICE_CODE_SHIFT 15