]> git.sur5r.net Git - u-boot/blobdiff - lib/optee/optee.c
optee: Add optee_verify_bootm_image()
[u-boot] / lib / optee / optee.c
index 2cc16d7c97a2a0e6dc4053ebd0923b262804465a..365c078a51def7888cb2f0392b2a95b217d7f534 100644 (file)
@@ -29,3 +29,23 @@ int optee_verify_image(struct optee_header *hdr, unsigned long tzdram_start,
 
        return 0;
 }
+
+int optee_verify_bootm_image(unsigned long image_addr,
+                            unsigned long image_load_addr,
+                            unsigned long image_len)
+{
+       struct optee_header *hdr = (struct optee_header *)image_addr;
+       unsigned long tzdram_start = CONFIG_OPTEE_TZDRAM_BASE;
+       unsigned long tzdram_len = CONFIG_OPTEE_TZDRAM_SIZE;
+
+       int ret;
+
+       ret = optee_verify_image(hdr, tzdram_start, tzdram_len, image_len);
+       if (ret)
+               return ret;
+
+       if (image_load_addr + sizeof(*hdr) != hdr->init_load_addr_lo)
+               ret = -EINVAL;
+
+       return ret;
+}