extern int authenticate_image(
uint32_t ddr_start, uint32_t raw_image_size);
+#ifdef CONFIG_IMX_OPTEE
+ ulong tee_addr = 0;
+ int ret;
+ ulong zi_start, zi_end;
+
+ tee_addr = env_get_ulong("tee_addr", 16, tee_addr);
+ if (!tee_addr) {
+ printf("Not valid tee_addr, Please check\n");
+ return 1;
+ }
+
+ switch (genimg_get_format((const void *)tee_addr)) {
+ case IMAGE_FORMAT_LEGACY:
+ if (authenticate_image(tee_addr,
+ image_get_image_size((image_header_t *)tee_addr)) != 0) {
+ printf("Authenticate uImage Fail, Please check\n");
+ return 1;
+ }
+ break;
+ default:
+ printf("Not valid image format for Authentication, Please check\n");
+ return 1;
+ };
+
+ ret = bootz_setup(image_load_addr, &zi_start, &zi_end);
+ if (ret != 0)
+ return 1;
+
+ if (authenticate_image(image_load_addr, zi_end - zi_start) != 0) {
+ printf("Authenticate zImage Fail, Please check\n");
+ return 1;
+ }
+
+#else
+
switch (genimg_get_format((const void *)image_load_addr)) {
#if defined(CONFIG_LEGACY_IMAGE_FORMAT)
case IMAGE_FORMAT_LEGACY:
printf("Not valid image format for Authentication, Please check\n");
return 1;
}
+#endif
#endif
return do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START |