The app does not have this symbol. Also the memory where the app is loaded is not under U-Boot's control.
There is no sense in relocating from one alloced region to another. U-Boot is not able to relocate to the top of memory, nor decide what other parts of memory are used for. For these reasons, the EFI app skips relocation. It is not running at the address pointed to by the _start symbol. So disable this reservation for the EFI app. Signed-off-by: Simon Glass <s...@chromium.org> Reviewed-by: Tom Rini <tr...@konsulko.com> --- Changes in v2: - Expand commit message to explains that EFI_APP skips relocation lib/lmb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/lmb.c b/lib/lmb.c index 588787d2a90..420eae4d0b8 100644 --- a/lib/lmb.c +++ b/lib/lmb.c @@ -560,7 +560,8 @@ static void lmb_reserve_uboot_region(void) lmb_reserve_flags(rsv_start, bank_end - rsv_start + 1, LMB_NOOVERWRITE); - if (gd->flags & GD_FLG_SKIP_RELOC) + if (!IS_ENABLED(CONFIG_EFI_APP) && + (gd->flags & GD_FLG_SKIP_RELOC)) lmb_reserve_flags((phys_addr_t)(uintptr_t)_start, gd->mon_len, LMB_NOOVERWRITE); -- 2.43.0