ARMv8/sec_firmware: Convert to use fit_get_data_conf_prop
authorSean Anderson <sean.anderson@seco.com>
Tue, 16 Aug 2022 15:16:04 +0000 (11:16 -0400)
committerPeng Fan <peng.fan@nxp.com>
Wed, 7 Sep 2022 05:40:45 +0000 (13:40 +0800)
This reduces sec_firmware_get_data to a single call to
fit_get_data_conf_prop. I think sec_firmware_check_copy_loadable could also
be converted, but it does not map as straightforwardly, so I have left it
for a future cleanup.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/cpu/armv8/sec_firmware.c

index bbd3f2d..540436b 100644 (file)
@@ -43,43 +43,8 @@ phys_addr_t sec_firmware_addr;
 static int sec_firmware_get_data(const void *sec_firmware_img,
                                const void **data, size_t *size)
 {
-       int conf_node_off, fw_node_off;
-       char *desc;
-       int ret;
-
-       conf_node_off = fit_conf_get_node(sec_firmware_img, NULL);
-       if (conf_node_off < 0) {
-               puts("SEC Firmware: no config\n");
-               return -ENOENT;
-       }
-
-       fw_node_off = fit_conf_get_prop_node(sec_firmware_img, conf_node_off,
-                       SEC_FIRMWARE_FIT_IMAGE);
-       if (fw_node_off < 0) {
-               printf("SEC Firmware: No '%s' in config\n",
-                      SEC_FIRMWARE_FIT_IMAGE);
-               return -ENOLINK;
-       }
-
-       /* Verify secure firmware image */
-       if (!(fit_image_verify(sec_firmware_img, fw_node_off))) {
-               printf("SEC Firmware: Bad firmware image (bad CRC)\n");
-               return -EINVAL;
-       }
-
-       if (fit_image_get_data(sec_firmware_img, fw_node_off, data, size)) {
-               printf("SEC Firmware: Can't get %s subimage data/size",
-                      SEC_FIRMWARE_FIT_IMAGE);
-               return -ENOENT;
-       }
-
-       ret = fit_get_desc(sec_firmware_img, fw_node_off, &desc);
-       if (ret)
-               printf("SEC Firmware: Can't get description\n");
-       else
-               printf("%s\n", desc);
-
-       return ret;
+       return fit_get_data_conf_prop(sec_firmware_img, SEC_FIRMWARE_FIT_IMAGE,
+                                     data, size);
 }
 
 /*