浏览代码

boot/grub2/Config.in: add symbols to represent legacy and EFI boot

There are cases to want a synthetic information whether the legacy BIOS
or U-Boot boot scheme, or the EFI boot scheme, are enabled, without
resorting to testing all and each platforms.

This is already the cae in grub2 itself, for the configuration of the
BIOS/U-Boot boot partition, and builtin modules and configuration on one
hand, and the EFI builtin modules and configuraiton on the other hand.

It is also the case for mender-grubenv, which will want to know if
either or both are enabled, but without having to resort to testing all
the cases.

Add two new symbols, that each represent those conditions:
  * BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
  * BR2_TARGET_GRUB2_HAS_EFI_BOOT

Each target selects the appropriate bool, which makes it much more
simple for other packages such as mender-grubenv to check if grub legacy
or EFI is selected.

And of course, we also make use of those symbols in grub2 itself, to
simplify the conditions for showing.hiding legacy and EFI options.

Additionally (but that does not merit being in its own patch), add a
comment on the closing 'endif' for the EFI part.

Signed-off-by: Adam Duskett <aduskett@gmail.com>
[yann.morin.1998@free.fr:
  - s/BR2_TARGET_GRUB_/BR2_TARGET_GRUB2_/
  - rename variables anyway
  - use variables in grub2 itself
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Köry Maincent <kory.maincent@bootlin.com>
Adam Duskett 3 年之前
父节点
当前提交
7a68960b68
共有 1 个文件被更改,包括 17 次插入5 次删除
  1. 17 5
      boot/grub2/Config.in

+ 17 - 5
boot/grub2/Config.in

@@ -34,12 +34,19 @@ config BR2_TARGET_GRUB2
 
 if BR2_TARGET_GRUB2
 
+config BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
+	bool
+
+config BR2_TARGET_GRUB2_HAS_EFI_BOOT
+	bool
+
 config BR2_TARGET_GRUB2_HAS_PTF
 	bool
 
 config BR2_TARGET_GRUB2_I386_PC
 	bool "i386-pc"
 	depends on BR2_i386 || BR2_x86_64
+	select BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
 	help
 	  Select this option if the platform you're targetting is a
 	  x86 or x86-64 legacy BIOS based platform.
@@ -48,6 +55,7 @@ config BR2_TARGET_GRUB2_I386_EFI
 	bool "i386-efi"
 	depends on BR2_i386 || BR2_x86_64
 	select BR2_TARGET_GRUB2_HAS_PTF
+	select BR2_TARGET_GRUB2_HAS_EFI_BOOT
 	help
 	  Select this option if the platform you're targetting has a
 	  32 bits EFI BIOS. Note that some x86-64 platforms use a 32
@@ -57,6 +65,7 @@ config BR2_TARGET_GRUB2_X86_64_EFI
 	bool "x86-64-efi"
 	depends on BR2_x86_64
 	select BR2_TARGET_GRUB2_HAS_PTF
+	select BR2_TARGET_GRUB2_HAS_EFI_BOOT
 	help
 	  Select this option if the platform you're targetting has a
 	  64 bits EFI BIOS.
@@ -64,6 +73,7 @@ config BR2_TARGET_GRUB2_X86_64_EFI
 config BR2_TARGET_GRUB2_ARM_UBOOT
 	bool "arm-uboot"
 	depends on BR2_arm
+	select BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
 	help
 	  Select this option if the platform you're targetting is an
 	  ARM u-boot platform, and you want to boot Grub 2 as an u-boot
@@ -73,6 +83,7 @@ config BR2_TARGET_GRUB2_ARM_EFI
 	bool "arm-efi"
 	depends on BR2_arm
 	select BR2_TARGET_GRUB2_HAS_PTF
+	select BR2_TARGET_GRUB2_HAS_EFI_BOOT
 	help
 	  Select this option if the platform you're targetting is an
 	  ARM platform and you want to boot Grub 2 as an EFI
@@ -81,12 +92,13 @@ config BR2_TARGET_GRUB2_ARM_EFI
 config BR2_TARGET_GRUB2_ARM64_EFI
 	bool "arm64-efi"
 	depends on BR2_aarch64
+	select BR2_TARGET_GRUB2_HAS_EFI_BOOT
 	help
 	  Select this option if the platform you're targetting is an
 	  Aarch64 platform and you want to boot Grub 2 as an EFI
 	  application.
 
-if BR2_TARGET_GRUB2_I386_PC || BR2_TARGET_GRUB2_ARM_UBOOT
+if BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
 
 comment "Options for the x86 legacy BIOS or ARM U-Boot support"
 
@@ -114,10 +126,9 @@ config BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC
 	  device and other configuration parameters, but however menu
 	  entries cannot be described in this embedded configuration.
 
-endif # BR2_TARGET_GRUB2_I386_PC || BR2_TARGET_GRUB2_ARM_UBOOT
+endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
 
-if BR2_TARGET_GRUB2_I386_EFI || BR2_TARGET_GRUB2_X86_64_EFI || \
-	BR2_TARGET_GRUB2_ARM_EFI  || BR2_TARGET_GRUB2_ARM64_EFI
+if BR2_TARGET_GRUB2_HAS_EFI_BOOT
 
 comment "Options for the EFI BIOS or ARM EFI support"
 
@@ -135,7 +146,8 @@ config BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI
 	  device and other configuration parameters, but however menu
 	  entries cannot be described in this embedded configuration.
 
-endif
+endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT
+
 config BR2_TARGET_GRUB2_INSTALL_TOOLS
 	bool "install tools"
 	help