]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
fpga: zynqmp: Add support to load authenticated bitsreams
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Sat, 18 Feb 2017 09:09:47 +0000 (14:39 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 20 Feb 2017 14:53:09 +0000 (15:53 +0100)
This patch adds support to load authenticated images using
fpga loads command.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/fpga/zynqmppl.c
include/zynqmppl.h

index aa082e0be2c31b1257990d71a0916881cd338737..01924f11d5d25287acaaac1059a52559f6713955 100644 (file)
@@ -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");
 
index 5337a6687c0e85baa1af2e017f37b0a4e2efcc6a..87e67cace66acc527b42e00113ca7570c34e2292 100644 (file)
@@ -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