[U-Boot] [PATCH 17/48] efi: Avoid using non-existent text base

Bin Meng bmeng.cn at gmail.com
Thu Jul 23 08:49:27 CEST 2015


Hi Simon,

On Wed, Jul 22, 2015 at 11:49 PM, Simon Glass <sjg at chromium.org> wrote:
> From: Ben Stoltz <stoltz at google.com>
>
> When U-Boot runs as an EFI application is does not have a definition of
> CONFIG_SYS_TEXT_BASE. U-Boot is a relocatable application and the relocation
> is done by EFI. U-Boot can be loaded at any address.
>
> This is similar to how sandbox works. Adjust the early board init to deal
> with this.
>
> Signed-off-by: Ben Stoltz <stoltz at google.com>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  common/board_f.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/common/board_f.c b/common/board_f.c
> index 5e09c5f..ad5500f 100644
> --- a/common/board_f.c
> +++ b/common/board_f.c
> @@ -144,7 +144,7 @@ static int init_baud_rate(void)
>
>  static int display_text_info(void)
>  {
> -#ifndef CONFIG_SANDBOX
> +#if !defined(CONFIG_SANDBOX) && !defined(CONFIG_ARCH_EFI)

I think this patch should come after CONFIG_ARCH_EFI is introduced.
And per your commit message, I think here CONFIG_ARCH_EFI means EFI
application. ARCH_xxx is confusing. Can we use the name
CONFIG_EFI_APP?

>         ulong bss_start, bss_end, text_base;
>
>         bss_start = (ulong)&__bss_start;
> @@ -267,7 +267,7 @@ static int setup_mon_len(void)
>  {
>  #if defined(__ARM__) || defined(__MICROBLAZE__)
>         gd->mon_len = (ulong)&__bss_end - (ulong)_start;
> -#elif defined(CONFIG_SANDBOX)
> +#elif defined(CONFIG_SANDBOX) || defined(CONFIG_ARCH_EFI)
>         gd->mon_len = (ulong)&_end - (ulong)_init;
>  #elif defined(CONFIG_BLACKFIN) || defined(CONFIG_NIOS2)
>         gd->mon_len = CONFIG_SYS_MONITOR_LEN;
> @@ -975,7 +975,8 @@ void board_init_f(ulong boot_flags)
>         if (initcall_run_list(init_sequence_f))
>                 hang();
>
> -#if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX)
> +#if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX) && \
> +               !defined(CONFIG_ARCH_EFI)
>         /* NOTREACHED - jump_to_copy() does not return */
>         hang();
>  #endif
> --

Regards,
Bin


More information about the U-Boot mailing list