cdrom: Use uppercase EFI boot filename on LoongArch
Commit Message
Some Loongson 3A6000 firmware reads the ISO9660 filesystem
case-sensitively and fails to find bootLOONGARCH64.efi. The
uppercase BOOTLOONGARCH64.EFI is valid UEFI naming and works
on unaffected firmware too, so use it on LoongArch only.
x86, ARM and RISC-V are unchanged.
Tested on a Morefine M700S (Loongson 3A6000).
Tested-by: Vincent Li <vincent.mc.li@gmail.com>
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
---
lfs/cdrom | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
@@ -66,6 +66,12 @@ ISO_ARGS += \
ISO_FILE = $(IMAGES_DIR)/$(SNAME)-$(VERSION)-core$(CORE)-$(BUILD_ARCH).iso
+ifeq "$(EFI_ARCH)" "LOONGARCH64"
+ EFI_BOOT_FILE = BOOT$(EFI_ARCH).EFI
+else
+ EFI_BOOT_FILE = boot$(EFI_ARCH).efi
+endif
+
# Dracut modules that the installer does not need
INSTALLER_OMIT_MODULES = \
cifs \
@@ -185,7 +191,7 @@ endif
# Build a GRUB EFI image
mkdir -pv $(DIR_TMP)/cdrom/EFI/BOOT
- $(call GRUB_MKIMAGE,$(GRUB_ARCH)-efi,/EFI/BOOT,$(DIR_TMP)/grub-efi.cfg,$(DIR_TMP)/cdrom/EFI/BOOT/boot$(EFI_ARCH).efi)
+ $(call GRUB_MKIMAGE,$(GRUB_ARCH)-efi,/EFI/BOOT,$(DIR_TMP)/grub-efi.cfg,$(DIR_TMP)/cdrom/EFI/BOOT/$(EFI_BOOT_FILE))
# Install GRUB configuration
mkdir -pv $(DIR_TMP)/cdrom/EFI/BOOT
@@ -199,7 +205,7 @@ endif
# Copy the bootloader into the image
mmd -i $(DIR_TMP)/cdrom/boot/isolinux/efiboot.img ::/EFI ::/EFI/BOOT
mcopy -i $(DIR_TMP)/cdrom/boot/isolinux/efiboot.img \
- $(DIR_TMP)/cdrom/EFI/BOOT/boot$(EFI_ARCH).efi ::/EFI/BOOT/boot$(EFI_ARCH).efi
+ $(DIR_TMP)/cdrom/EFI/BOOT/$(EFI_BOOT_FILE) ::/EFI/BOOT/$(EFI_BOOT_FILE)
# Show what has been copied
mdir -/ -i $(DIR_TMP)/cdrom/boot/isolinux/efiboot.img ::