payloads/external: Add more option related to SeaBIOS and GRUB2

Also known as "SeaGRUB", running GRUB2 atop SeaBIOS proves to be a
useful configuration, since SeaBIOS has improved its hardware
compatibility. For example, some USB drive can work under SeaBIOS but
do not work under native GRUB2, and GRUB2 can use BIOS call (provided
by SeaBIOS) as a fallback method to access hardware if it is present.

But more option is added addition to "SeaGRUB": now GRUB2 and SeaBIOS
can be built as secondary payloads, and "SeaGRUB" is now implemented
as "Primary SeaBIOS + Secondary GRUB2 (selected) + config files".

Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Change-Id: Ie681fa231abfe4a8f1e4510b3c17957550a9d2f8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/60640
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@tutanota.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
diff --git a/payloads/Kconfig b/payloads/Kconfig
index 386b207..e184b35 100644
--- a/payloads/Kconfig
+++ b/payloads/Kconfig
@@ -121,6 +121,15 @@
 	  coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
 	  or any other payload that can load additional payloads.
 
+config GRUB2_SECONDARY_PAYLOAD
+	bool "Load GRUB2 as a secondary payload"
+	default n
+	depends on !PAYLOAD_GRUB2
+	select PAYLOAD_BUILD_GRUB2
+	help
+	  GRUB2 can be loaded as a secondary payload under SeaBIOS or any
+	  other payload that can load additional payloads.
+
 config MEMTEST_SECONDARY_PAYLOAD
 	bool "Load Memtest86+ as a secondary payload"
 	default n
@@ -137,6 +146,17 @@
 	  nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
 	  or any other payload that can load additional payloads.
 
+config SEABIOS_SECONDARY_PAYLOAD
+	bool "Load SeaBIOS as a secondary payload"
+	default n
+	depends on ARCH_X86
+	depends on !PAYLOAD_SEABIOS
+	depends on !PAYLOAD_SEAGRUB
+	select PAYLOAD_BUILD_SEABIOS
+	help
+	  SeaBIOS can be loaded as a secondary payload under GRUB or any
+	  other payload that can load additional payloads.
+
 config TINT_SECONDARY_PAYLOAD
 	bool "Load tint as a secondary payload"
 	default n