After ti_secure_image_post_process() authenticates the image, it may
relocate it to a different memory location and update image_addr to
point to the verified image.
However, rproc_elf_load_image() and rproc_elf_get_boot_addr() were
still using the original "addr" parameter, potentially operating on
the unverified or stale image location instead of the authenticated
image.
Use image_addr (cast to ulong to match function signatures) after
authentication to ensure all operations work with the verified image.
Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
ti_secure_image_post_process(&image_addr, &size_img);
size = size_img;
- ret = rproc_elf_load_image(dev, addr, size);
+ ret = rproc_elf_load_image(dev, (ulong)image_addr, size);
if (ret < 0) {
dev_err(dev, "Loading elf failedi %d\n", ret);
goto proc_release;
}
- boot_vector = rproc_elf_get_boot_addr(dev, addr);
+ boot_vector = rproc_elf_get_boot_addr(dev, (ulong)image_addr);
dev_dbg(dev, "%s: Boot vector = 0x%llx\n", __func__, boot_vector);