riscv: booti: do not force relocation if force_reloc is not set
If force_reloc flag is not set and booti is called for an address ouside RAM (i. e. QSPI NOR flash), we should honor that and not try to force relocation in a bogus fashion. Signed-off-by: Vitaly Wool <vitaly.wool@konsulko.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
This commit is contained in:

committed by
Leo Yu-Chi Liang

parent
66a21be674
commit
6ba8eeb6f1
@@ -50,7 +50,12 @@ int booti_setup(ulong image, ulong *relocated_addr, ulong *size,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
*size = lhdr->image_size;
|
*size = lhdr->image_size;
|
||||||
|
if (force_reloc ||
|
||||||
|
(gd->ram_base <= image && image < gd->ram_base + gd->ram_size)) {
|
||||||
*relocated_addr = gd->ram_base + lhdr->text_offset;
|
*relocated_addr = gd->ram_base + lhdr->text_offset;
|
||||||
|
} else {
|
||||||
|
*relocated_addr = image;
|
||||||
|
}
|
||||||
|
|
||||||
unmap_sysmem(lhdr);
|
unmap_sysmem(lhdr);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user