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