[PATCH 1/1] efi_loader: correctly identify binary name

AKASHI Takahiro takahiro.akashi at linaro.org
Sat Jun 11 01:56:09 CEST 2022


On Fri, Jun 10, 2022 at 08:55:24PM +0200, Heinrich Schuchardt wrote:
> Only on the sandbox the default EFI binary name (e.g. BOOTX64.EFI) must
> match the host architecture.
> 
> In all other cases we must use the target architecture.

So most of the new code, particularly else clause of "#ifdef CONFIG_SANDBOX",
is the same as the *original* commit in my (or rather Kojima-san's) patch.
Please retain the original copyright.

[1] https://lists.denx.de/pipermail/u-boot/2022-April/482711.html

-Takahiro Akashi

> Use #elif where appropriate.
> 
> Reported-by: Vagrant Cascadian <vagrant at reproducible-builds.org>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
>  include/efi_default_filename.h | 40 +++++++++++++++++++++-------------
>  1 file changed, 25 insertions(+), 15 deletions(-)
> 
> diff --git a/include/efi_default_filename.h b/include/efi_default_filename.h
> index 13b9de8754..fc46e386a6 100644
> --- a/include/efi_default_filename.h
> +++ b/include/efi_default_filename.h
> @@ -14,32 +14,42 @@
>  
>  #undef BOOTEFI_NAME
>  
> +#ifdef CONFIG_SANDBOX
> +
>  #if HOST_ARCH == HOST_ARCH_X86_64
>  #define BOOTEFI_NAME "BOOTX64.EFI"
> -#endif
> -
> -#if HOST_ARCH == HOST_ARCH_X86
> +#elif HOST_ARCH == HOST_ARCH_X86
>  #define BOOTEFI_NAME "BOOTIA32.EFI"
> -#endif
> -
> -#if HOST_ARCH == HOST_ARCH_AARCH64
> +#elif HOST_ARCH == HOST_ARCH_AARCH64
>  #define BOOTEFI_NAME "BOOTAA64.EFI"
> -#endif
> -
> -#if HOST_ARCH == HOST_ARCH_ARM
> +#elif HOST_ARCH == HOST_ARCH_ARM
>  #define BOOTEFI_NAME "BOOTARM.EFI"
> -#endif
> -
> -#if HOST_ARCH == HOST_ARCH_RISCV32
> +#elif HOST_ARCH == HOST_ARCH_RISCV32
>  #define BOOTEFI_NAME "BOOTRISCV32.EFI"
> +#elif HOST_ARCH == HOST_ARCH_RISCV64
> +#define BOOTEFI_NAME "BOOTRISCV64.EFI"
> +#else
> +#error Unsupported UEFI architecture
>  #endif
>  
> -#if HOST_ARCH == HOST_ARCH_RISCV64
> +#else
> +
> +#if defined(CONFIG_ARM64)
> +#define BOOTEFI_NAME "BOOTAA64.EFI"
> +#elif defined(CONFIG_ARM)
> +#define BOOTEFI_NAME "BOOTARM.EFI"
> +#elif defined(CONFIG_X86_64)
> +#define BOOTEFI_NAME "BOOTX64.EFI"
> +#elif defined(CONFIG_X86)
> +#define BOOTEFI_NAME "BOOTIA32.EFI"
> +#elif defined(CONFIG_ARCH_RV32I)
> +#define BOOTEFI_NAME "BOOTRISCV32.EFI"
> +#elif defined(CONFIG_ARCH_RV64I)
>  #define BOOTEFI_NAME "BOOTRISCV64.EFI"
> +#else
> +#error Unsupported UEFI architecture
>  #endif
>  
> -#ifndef BOOTEFI_NAME
> -#error Unsupported UEFI architecture
>  #endif
>  
>  #endif
> -- 
> 2.36.1
> 


More information about the U-Boot mailing list