Message ID | 20210923155726.87851-2-kory.maincent@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | Add support for ISO9660 image compatible with Legacy and EFI BIOS | expand |
Köry, All, +Dick, Erico, Gerome, Nicholas, Peter, Romain: This patch touches boards for which you are registered in the DEVELOPERS file. Could you verify that those boards still boot with this patch applied, please? Otherwise, I have no comment on the patch; good! :-) Regards, Yann E. MORIN. On 2021-09-23 17:57 +0200, Kory Maincent spake thusly: > The startup.nsh file is useless to boot EFI payloads. We just need to > follow the naming detection specified in the UEFI spec. > The EFI payload need to be placed in the boot/efi folder in the EFI partition > and follow the architecture naming as described below: > 32bit : bootia32.efi > x64 : bootx64.efi > aarch32 : bootarm.efi > aarch64 : bootaa64.efi > > This naming is already right in the packages involved (systemd, grub2, > gummiboot), therefore we just need to drop the generation of the > startup.nsh file. > > The usage of the startup.nsh in genimage is also dropped to avoid errors in > the image generation. > > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> > --- > board/aarch64-efi/genimage-efi.cfg | 3 --- > board/intel/galileo/genimage.cfg | 3 --- > board/minnowboard/genimage.cfg | 3 --- > board/pc/genimage-efi.cfg | 3 --- > board/pc/post-build.sh | 2 +- > board/qemu/aarch64-sbsa/genimage.cfg | 3 --- > boot/grub2/grub2.mk | 8 -------- > boot/gummiboot/gummiboot.mk | 2 -- > package/systemd/systemd.mk | 2 -- > 9 files changed, 1 insertion(+), 28 deletions(-) > > diff --git a/board/aarch64-efi/genimage-efi.cfg b/board/aarch64-efi/genimage-efi.cfg > index 34cca1d64e..2daa70c361 100644 > --- a/board/aarch64-efi/genimage-efi.cfg > +++ b/board/aarch64-efi/genimage-efi.cfg > @@ -1,8 +1,5 @@ > image efi-part.vfat { > vfat { > - file startup.nsh { > - image = "efi-part/startup.nsh" > - } > file EFI { > image = "efi-part/EFI" > } > diff --git a/board/intel/galileo/genimage.cfg b/board/intel/galileo/genimage.cfg > index 31add21e67..b930c0deb9 100644 > --- a/board/intel/galileo/genimage.cfg > +++ b/board/intel/galileo/genimage.cfg > @@ -1,9 +1,6 @@ > # Create an image of the efi partition > image efi-part.vfat { > vfat { > - file startup.nsh { > - image = "efi-part/startup.nsh" > - } > file EFI { > image = "efi-part/EFI" > } > diff --git a/board/minnowboard/genimage.cfg b/board/minnowboard/genimage.cfg > index c5b07179b4..521385aadd 100644 > --- a/board/minnowboard/genimage.cfg > +++ b/board/minnowboard/genimage.cfg > @@ -1,9 +1,6 @@ > # Create an image of the efi partition > image efi-part.vfat { > vfat { > - file startup.nsh { > - image = "efi-part/startup.nsh" > - } > file EFI { > image = "efi-part/EFI" > } > diff --git a/board/pc/genimage-efi.cfg b/board/pc/genimage-efi.cfg > index ec7e85b06c..34befb7d69 100644 > --- a/board/pc/genimage-efi.cfg > +++ b/board/pc/genimage-efi.cfg > @@ -1,8 +1,5 @@ > image efi-part.vfat { > vfat { > - file startup.nsh { > - image = "efi-part/startup.nsh" > - } > file EFI { > image = "efi-part/EFI" > } > diff --git a/board/pc/post-build.sh b/board/pc/post-build.sh > index ed37b3b87e..db23795e27 100755 > --- a/board/pc/post-build.sh > +++ b/board/pc/post-build.sh > @@ -5,7 +5,7 @@ set -e > BOARD_DIR=$(dirname "$0") > > # Detect boot strategy, EFI or BIOS > -if [ -f "$BINARIES_DIR/efi-part/startup.nsh" ]; then > +if [ -d "$BINARIES_DIR/efi-part/" ]; then > cp -f "$BOARD_DIR/grub-efi.cfg" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg" > else > cp -f "$BOARD_DIR/grub-bios.cfg" "$TARGET_DIR/boot/grub/grub.cfg" > diff --git a/board/qemu/aarch64-sbsa/genimage.cfg b/board/qemu/aarch64-sbsa/genimage.cfg > index 285b308d90..c75d9fcca1 100644 > --- a/board/qemu/aarch64-sbsa/genimage.cfg > +++ b/board/qemu/aarch64-sbsa/genimage.cfg > @@ -1,8 +1,5 @@ > image efi-part.vfat { > vfat { > - file startup.nsh { > - image = "efi-part/startup.nsh" > - } > file EFI { > image = "efi-part/EFI" > } > diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk > index 52e9199ae9..ad2edf17aa 100644 > --- a/boot/grub2/grub2.mk > +++ b/boot/grub2/grub2.mk > @@ -168,13 +168,5 @@ define GRUB2_INSTALL_IMAGES_CMDS > $(GRUB2_IMAGE_INSTALL_ELTORITO) > endef > > -ifeq ($(GRUB2_PLATFORM),efi) > -define GRUB2_EFI_STARTUP_NSH > - echo $(notdir $(GRUB2_IMAGE)) > \ > - $(BINARIES_DIR)/efi-part/startup.nsh > -endef > -GRUB2_POST_INSTALL_IMAGES_HOOKS += GRUB2_EFI_STARTUP_NSH > -endif > - > $(eval $(autotools-package)) > $(eval $(host-autotools-package)) > diff --git a/boot/gummiboot/gummiboot.mk b/boot/gummiboot/gummiboot.mk > index 748e87030e..eb1f3da78c 100644 > --- a/boot/gummiboot/gummiboot.mk > +++ b/boot/gummiboot/gummiboot.mk > @@ -32,8 +32,6 @@ GUMMIBOOT_CONF_OPTS = \ > define GUMMIBOOT_INSTALL_IMAGES_CMDS > $(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \ > $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi > - echo "boot$(GUMMIBOOT_IMGARCH).efi" > \ > - $(BINARIES_DIR)/efi-part/startup.nsh > $(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \ > $(BINARIES_DIR)/efi-part/loader/loader.conf > $(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \ > diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk > index 5a76f2f246..c403896759 100644 > --- a/package/systemd/systemd.mk > +++ b/package/systemd/systemd.mk > @@ -514,8 +514,6 @@ SYSTEMD_BOOT_EFI_ARCH = $(call qstrip,$(BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH)) > define SYSTEMD_INSTALL_BOOT_FILES > $(INSTALL) -D -m 0644 $(@D)/build/src/boot/efi/systemd-boot$(SYSTEMD_BOOT_EFI_ARCH).efi \ > $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(SYSTEMD_BOOT_EFI_ARCH).efi > - echo "boot$(SYSTEMD_BOOT_EFI_ARCH).efi" > \ > - $(BINARIES_DIR)/efi-part/startup.nsh > $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/loader.conf \ > $(BINARIES_DIR)/efi-part/loader/loader.conf > $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/buildroot.conf \ > -- > 2.25.1 >
diff --git a/board/aarch64-efi/genimage-efi.cfg b/board/aarch64-efi/genimage-efi.cfg index 34cca1d64e..2daa70c361 100644 --- a/board/aarch64-efi/genimage-efi.cfg +++ b/board/aarch64-efi/genimage-efi.cfg @@ -1,8 +1,5 @@ image efi-part.vfat { vfat { - file startup.nsh { - image = "efi-part/startup.nsh" - } file EFI { image = "efi-part/EFI" } diff --git a/board/intel/galileo/genimage.cfg b/board/intel/galileo/genimage.cfg index 31add21e67..b930c0deb9 100644 --- a/board/intel/galileo/genimage.cfg +++ b/board/intel/galileo/genimage.cfg @@ -1,9 +1,6 @@ # Create an image of the efi partition image efi-part.vfat { vfat { - file startup.nsh { - image = "efi-part/startup.nsh" - } file EFI { image = "efi-part/EFI" } diff --git a/board/minnowboard/genimage.cfg b/board/minnowboard/genimage.cfg index c5b07179b4..521385aadd 100644 --- a/board/minnowboard/genimage.cfg +++ b/board/minnowboard/genimage.cfg @@ -1,9 +1,6 @@ # Create an image of the efi partition image efi-part.vfat { vfat { - file startup.nsh { - image = "efi-part/startup.nsh" - } file EFI { image = "efi-part/EFI" } diff --git a/board/pc/genimage-efi.cfg b/board/pc/genimage-efi.cfg index ec7e85b06c..34befb7d69 100644 --- a/board/pc/genimage-efi.cfg +++ b/board/pc/genimage-efi.cfg @@ -1,8 +1,5 @@ image efi-part.vfat { vfat { - file startup.nsh { - image = "efi-part/startup.nsh" - } file EFI { image = "efi-part/EFI" } diff --git a/board/pc/post-build.sh b/board/pc/post-build.sh index ed37b3b87e..db23795e27 100755 --- a/board/pc/post-build.sh +++ b/board/pc/post-build.sh @@ -5,7 +5,7 @@ set -e BOARD_DIR=$(dirname "$0") # Detect boot strategy, EFI or BIOS -if [ -f "$BINARIES_DIR/efi-part/startup.nsh" ]; then +if [ -d "$BINARIES_DIR/efi-part/" ]; then cp -f "$BOARD_DIR/grub-efi.cfg" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg" else cp -f "$BOARD_DIR/grub-bios.cfg" "$TARGET_DIR/boot/grub/grub.cfg" diff --git a/board/qemu/aarch64-sbsa/genimage.cfg b/board/qemu/aarch64-sbsa/genimage.cfg index 285b308d90..c75d9fcca1 100644 --- a/board/qemu/aarch64-sbsa/genimage.cfg +++ b/board/qemu/aarch64-sbsa/genimage.cfg @@ -1,8 +1,5 @@ image efi-part.vfat { vfat { - file startup.nsh { - image = "efi-part/startup.nsh" - } file EFI { image = "efi-part/EFI" } diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk index 52e9199ae9..ad2edf17aa 100644 --- a/boot/grub2/grub2.mk +++ b/boot/grub2/grub2.mk @@ -168,13 +168,5 @@ define GRUB2_INSTALL_IMAGES_CMDS $(GRUB2_IMAGE_INSTALL_ELTORITO) endef -ifeq ($(GRUB2_PLATFORM),efi) -define GRUB2_EFI_STARTUP_NSH - echo $(notdir $(GRUB2_IMAGE)) > \ - $(BINARIES_DIR)/efi-part/startup.nsh -endef -GRUB2_POST_INSTALL_IMAGES_HOOKS += GRUB2_EFI_STARTUP_NSH -endif - $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/boot/gummiboot/gummiboot.mk b/boot/gummiboot/gummiboot.mk index 748e87030e..eb1f3da78c 100644 --- a/boot/gummiboot/gummiboot.mk +++ b/boot/gummiboot/gummiboot.mk @@ -32,8 +32,6 @@ GUMMIBOOT_CONF_OPTS = \ define GUMMIBOOT_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \ $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi - echo "boot$(GUMMIBOOT_IMGARCH).efi" > \ - $(BINARIES_DIR)/efi-part/startup.nsh $(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \ $(BINARIES_DIR)/efi-part/loader/loader.conf $(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \ diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk index 5a76f2f246..c403896759 100644 --- a/package/systemd/systemd.mk +++ b/package/systemd/systemd.mk @@ -514,8 +514,6 @@ SYSTEMD_BOOT_EFI_ARCH = $(call qstrip,$(BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH)) define SYSTEMD_INSTALL_BOOT_FILES $(INSTALL) -D -m 0644 $(@D)/build/src/boot/efi/systemd-boot$(SYSTEMD_BOOT_EFI_ARCH).efi \ $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(SYSTEMD_BOOT_EFI_ARCH).efi - echo "boot$(SYSTEMD_BOOT_EFI_ARCH).efi" > \ - $(BINARIES_DIR)/efi-part/startup.nsh $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/loader.conf \ $(BINARIES_DIR)/efi-part/loader/loader.conf $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/buildroot.conf \
The startup.nsh file is useless to boot EFI payloads. We just need to follow the naming detection specified in the UEFI spec. The EFI payload need to be placed in the boot/efi folder in the EFI partition and follow the architecture naming as described below: 32bit : bootia32.efi x64 : bootx64.efi aarch32 : bootarm.efi aarch64 : bootaa64.efi This naming is already right in the packages involved (systemd, grub2, gummiboot), therefore we just need to drop the generation of the startup.nsh file. The usage of the startup.nsh in genimage is also dropped to avoid errors in the image generation. Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> --- board/aarch64-efi/genimage-efi.cfg | 3 --- board/intel/galileo/genimage.cfg | 3 --- board/minnowboard/genimage.cfg | 3 --- board/pc/genimage-efi.cfg | 3 --- board/pc/post-build.sh | 2 +- board/qemu/aarch64-sbsa/genimage.cfg | 3 --- boot/grub2/grub2.mk | 8 -------- boot/gummiboot/gummiboot.mk | 2 -- package/systemd/systemd.mk | 2 -- 9 files changed, 1 insertion(+), 28 deletions(-)