summaryrefslogtreecommitdiffstats
path: root/payloads
diff options
context:
space:
mode:
Diffstat (limited to 'payloads')
-rw-r--r--payloads/external/LinuxBoot/Kconfig55
-rw-r--r--payloads/external/LinuxBoot/targets/u-root.mk1
-rw-r--r--payloads/external/Makefile.inc1
3 files changed, 57 insertions, 0 deletions
diff --git a/payloads/external/LinuxBoot/Kconfig b/payloads/external/LinuxBoot/Kconfig
index b4bb05333a85..edd4779306f4 100644
--- a/payloads/external/LinuxBoot/Kconfig
+++ b/payloads/external/LinuxBoot/Kconfig
@@ -258,6 +258,61 @@ config LINUXBOOT_UROOT_COMMANDS
List of additional modules to include,
separated by space. (default "boot coreboot-app")
+if LINUXBOOT_UROOT_MAIN
+
+choice
+ prompt "Choose a specific bootloader"
+ default SPECIFIC_BOOTLOADER_NONE
+ help
+ Specify a bootloader which starts after u-root init. It will be a symlink
+ to /bin/uinit. Default: None
+
+config SPECIFIC_BOOTLOADER_NONE
+ bool "none"
+ help
+ Leave u-root to decide which bootloaders to load first after init, if
+ any at all. Most likely u-root will start into the defined u-root shell.
+
+config SPECIFIC_BOOTLOADER_SYSTEMBOOT
+ bool "systemboot"
+ help
+ If systemboot has been used as a bootloader wrapper in the past,
+ enable this option. It will invoke -uinitcmd=systemboot and result in
+ a BIOS/UEFI BDS boot behavior.
+
+config SPECIFIC_BOOTLOADER_BOOT2
+ bool "boot2"
+
+config SPECIFIC_BOOTLOADER_PXEBOOT
+ bool "pxeboot"
+
+config SPECIFIC_BOOTLOADER_STBOOT
+ bool "stboot"
+
+config SPECIFIC_BOOTLOADER_CUSTOM
+ bool "custom"
+
+endchoice
+
+config SPECIFIC_BOOTLOADER_CUSTOM_CMD
+ string "Specify a custom program to start"
+ depends on SPECIFIC_BOOTLOADER_CUSTOM
+ help
+ This option will symlink the input to /bin/unit which will set it as the
+ first boot program after the u-root init. Program flags are not
+ symlinkable.
+
+config LINUXBOOT_UROOT_UINITCMD
+ string
+ default "" if SPECIFIC_BOOTLOADER_NONE
+ default "systemboot" if SPECIFIC_BOOTLOADER_SYSTEMBOOT
+ default "boot2" if SPECIFIC_BOOTLOADER_BOOT2
+ default "pxeboot" if SPECIFIC_BOOTLOADER_PXEBOOT
+ default "stboot" if SPECIFIC_BOOTLOADER_STBOOT
+ default SPECIFIC_BOOTLOADER_CUSTOM_CMD if SPECIFIC_BOOTLOADER_CUSTOM
+
+endif #LINUXBOOT_UROOT_MAIN
+
endif #LINUXBOOT_UROOT
endif #LINUXBOOT_BUILD_INITRAMFS
diff --git a/payloads/external/LinuxBoot/targets/u-root.mk b/payloads/external/LinuxBoot/targets/u-root.mk
index 7e5444141d75..e673aabf11e4 100644
--- a/payloads/external/LinuxBoot/targets/u-root.mk
+++ b/payloads/external/LinuxBoot/targets/u-root.mk
@@ -15,6 +15,7 @@ go_version_minor=$(shell echo $(go_version) | sed -nr 's/^([0-9]+)\.([0-9]+)\.?
uroot_args+=-build=$(CONFIG_LINUXBOOT_UROOT_FORMAT)
uroot_args+=-initcmd $(CONFIG_LINUXBOOT_UROOT_INITCMD)
+uroot_args+=-uinitcmd=$(CONFIG_LINUXBOOT_UROOT_UINITCMD)
uroot_args+=-defaultsh $(CONFIG_LINUXBOOT_UROOT_SHELL)
ifneq (CONFIG_LINUXBOOT_UROOT_FILES,)
uroot_args+=$(foreach file,$(CONFIG_LINUXBOOT_UROOT_FILES),-files $(PWD)/$(file))
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 38e7dad0c66b..7bdf9b094e89 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -343,6 +343,7 @@ linuxboot:
CONFIG_LINUXBOOT_UROOT_VERSION=$(CONFIG_LINUXBOOT_UROOT_VERSION) \
CONFIG_LINUXBOOT_UROOT_FORMAT=$(CONFIG_LINUXBOOT_UROOT_FORMAT) \
CONFIG_LINUXBOOT_UROOT_INITCMD=$(CONFIG_LINUXBOOT_UROOT_INITCMD) \
+ CONFIG_LINUXBOOT_UROOT_UINITCMD=$(CONFIG_LINUXBOOT_UROOT_UINITCMD)\
CONFIG_LINUXBOOT_UROOT_SHELL=$(CONFIG_LINUXBOOT_UROOT_SHELL) \
CONFIG_LINUXBOOT_UROOT_COMMANDS=$(CONFIG_LINUXBOOT_UROOT_COMMANDS) \
CONFIG_LINUXBOOT_UROOT_FILES=$(CONFIG_LINUXBOOT_UROOT_FILES) \