diff mbox series

[v3,1/7] board, boot, package: remove usage of startup.nsh in EFI partition

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

Commit Message

Köry Maincent Sept. 23, 2021, 3:57 p.m. UTC
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(-)

Comments

Yann E. MORIN Sept. 23, 2021, 8:06 p.m. UTC | #1
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 mbox series

Patch

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 \