1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * When a boot option does not provide a file path the EFI file to be
4  * booted is \EFI\BOOT\$(BOOTEFI_NAME).EFI. The architecture specific
5  * file name is defined in this include.
6  *
7  * Copyright (c) 2022, Heinrich Schuchardt <xypron.glpk@gmx.de>
8  * Copyright (c) 2022, Linaro Limited
9  */
10 
11 #ifndef _EFI_DEFAULT_FILENAME_H
12 #define _EFI_DEFAULT_FILENAME_H
13 
14 #include <host_arch.h>
15 
16 #undef BOOTEFI_NAME
17 
18 #ifdef CONFIG_SANDBOX
19 
20 #if HOST_ARCH == HOST_ARCH_X86_64
21 #define BOOTEFI_NAME "BOOTX64.EFI"
22 #elif HOST_ARCH == HOST_ARCH_X86
23 #define BOOTEFI_NAME "BOOTIA32.EFI"
24 #elif HOST_ARCH == HOST_ARCH_AARCH64
25 #define BOOTEFI_NAME "BOOTAA64.EFI"
26 #elif HOST_ARCH == HOST_ARCH_ARM
27 #define BOOTEFI_NAME "BOOTARM.EFI"
28 #elif HOST_ARCH == HOST_ARCH_RISCV32
29 #define BOOTEFI_NAME "BOOTRISCV32.EFI"
30 #elif HOST_ARCH == HOST_ARCH_RISCV64
31 #define BOOTEFI_NAME "BOOTRISCV64.EFI"
32 #else
33 #error Unsupported UEFI architecture
34 #endif
35 
36 #else
37 
38 #if defined(CONFIG_ARM64)
39 #define BOOTEFI_NAME "BOOTAA64.EFI"
40 #elif defined(CONFIG_ARM)
41 #define BOOTEFI_NAME "BOOTARM.EFI"
42 #elif defined(CONFIG_X86_64)
43 #define BOOTEFI_NAME "BOOTX64.EFI"
44 #elif defined(CONFIG_X86)
45 #define BOOTEFI_NAME "BOOTIA32.EFI"
46 #elif defined(CONFIG_ARCH_RV32I)
47 #define BOOTEFI_NAME "BOOTRISCV32.EFI"
48 #elif defined(CONFIG_ARCH_RV64I)
49 #define BOOTEFI_NAME "BOOTRISCV64.EFI"
50 #else
51 #error Unsupported UEFI architecture
52 #endif
53 
54 #endif
55 
56 #endif
57