Message ID | 1438356724-6561-22-git-send-email-sjg@chromium.org |
---|---|
State | Accepted |
Delegated to: | Simon Glass |
Headers | show |
On 31 July 2015 at 09:31, Simon Glass <sjg@chromium.org> wrote: > With EFI the start address of U-Boot is specified differently. We could > consider just setting GD_FLG_RELOC and then setting up reloc_off. But that > flag has other implementations and we are not able to use U-Boot relocation > which this flag implies. > > Instead, just add a special case for EFI. > > Signed-off-by: Simon Glass <sjg@chromium.org> > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > --- > > Changes in v2: > - Rename CONFIG_ARCH_EFI to CONFIG_EFI_APP > - Rename ImageBase to image_base > > lib/initcall.c | 4 ++++ > 1 file changed, 4 insertions(+) Applied to u-boot-x86.
diff --git a/lib/initcall.c b/lib/initcall.c index 7142744..db7c558 100644 --- a/lib/initcall.c +++ b/lib/initcall.c @@ -6,6 +6,7 @@ #include <common.h> #include <initcall.h> +#include <efi.h> DECLARE_GLOBAL_DATA_PTR; @@ -19,6 +20,9 @@ int initcall_run_list(const init_fnc_t init_sequence[]) if (gd->flags & GD_FLG_RELOC) reloc_ofs = gd->reloc_off; +#ifdef CONFIG_EFI_APP + reloc_ofs = (unsigned long)image_base; +#endif debug("initcall: %p", (char *)*init_fnc_ptr - reloc_ofs); if (gd->flags & GD_FLG_RELOC) debug(" (relocated to %p)\n", (char *)*init_fnc_ptr);