zephyr: fix booting address incorrect in ram-load mode

Signed-off-by: Jim Tan <KuoChun.Tan@ite.com.tw>
This commit is contained in:
Jim Tan 2022-04-07 11:26:28 +08:00 committed by David Brown
parent 93d02179b3
commit ee1b7b9d6e
1 changed files with 6 additions and 1 deletions

View File

@ -297,8 +297,12 @@ static void do_boot(struct boot_rsp *rsp)
*/ */
static void do_boot(struct boot_rsp *rsp) static void do_boot(struct boot_rsp *rsp)
{ {
uintptr_t flash_base;
void *start; void *start;
#if defined(MCUBOOT_RAM_LOAD)
start = (void *)(rsp->br_hdr->ih_load_addr + rsp->br_hdr->ih_hdr_size);
#else
uintptr_t flash_base;
int rc; int rc;
rc = flash_device_base(rsp->br_flash_dev_id, &flash_base); rc = flash_device_base(rsp->br_flash_dev_id, &flash_base);
@ -306,6 +310,7 @@ static void do_boot(struct boot_rsp *rsp)
start = (void *)(flash_base + rsp->br_image_off + start = (void *)(flash_base + rsp->br_image_off +
rsp->br_hdr->ih_hdr_size); rsp->br_hdr->ih_hdr_size);
#endif
/* Lock interrupts and dive into the entry point */ /* Lock interrupts and dive into the entry point */
irq_lock(); irq_lock();