coreboot-kgpe-d16/payloads/external/LinuxBoot/Kconfig
Patrik Tesarik ed8aef9ccd external/LinuxBoot: Kconfig defaults to systemboot
In addition to change CB:40316 this commit proposes a change of default
behavior inside of the LinuxBoot toolchain.

Currently the defaults build a LinuxBoot payload which boots into the
u-root shell and waits for input. In fact it does not deliver any
bootloader with it, but the build image is on the other hand rather
small.

This commit changes the defaults in a way that the LinuxBoot
bootloader will actually be able to boot a local or remote system image.
In consequence the build payload size is rather big, but accepted for a
working out-of-the-box startup behavior.

See discussion on that topic in the above mentioned change.

Signed-off-by: Patrik Tesarik <mail@patrik-tesarik.de>
Change-Id: Ieaba7e523aef10c467a8bea29ae323e22324b225
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40527
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-06-14 13:35:28 +00:00

342 lines
7.7 KiB
Text

## SPDX-License-Identifier: GPL-2.0-only
if PAYLOAD_LINUXBOOT
choice
prompt "Architecture"
depends on LINUXBOOT_COMPILE_KERNEL || LINUXBOOT_BUILD_INITRAMFS
default LINUXBOOT_X86_64
config LINUXBOOT_X86_64
bool "x86_64"
depends on ARCH_X86
help
AMD64 kernel and initramfs
config LINUXBOOT_X86
bool "x86"
depends on ARCH_X86
help
X86 kernel and initramfs
config LINUXBOOT_ARM64
bool "arm64"
depends on ARCH_ARM64
select PAYLOAD_FIT_SUPPORT
help
AARCH64 kernel and initramfs
config LINUXBOOT_RISCV
bool "RISC-V"
depends on ARCH_RISCV
select PAYLOAD_FIT_SUPPORT
help
RISC-V kernel and initramfs
endchoice
comment "Linux kernel"
config LINUXBOOT_COMPILE_KERNEL
bool "Compile kernel"
default n
if LINUXBOOT_COMPILE_KERNEL
comment "parse linux crosscompiler with: LINUXBOOT_CROSS_COMPILE"
endif
config LINUXBOOT_KERNEL_PATH
string "Path to kernel"
default "Image"
depends on !LINUXBOOT_COMPILE_KERNEL
if LINUXBOOT_COMPILE_KERNEL
choice
prompt "Kernel release"
default LINUXBOOT_KERNEL_STABLE
help
Choose the kernel release.
Select 'custom' if your want to define the kernel version.
For more information about the current 'mainline', 'stable' or 'longterm'
version, visit: https://www.kernel.org/
config LINUXBOOT_KERNEL_MAINLINE
bool "mainline"
help
Mainline kernel version
config LINUXBOOT_KERNEL_STABLE
bool "stable"
help
Stable kernel version
config LINUXBOOT_KERNEL_LONGTERM
bool "longterm"
help
Longterm (LTS) kernel version
config LINUXBOOT_KERNEL_CUSTOM
bool "custom"
help
Custom kernel version
endchoice
config LINUXBOOT_KERNEL_CUSTOM_VERSION
string "kernel version"
default ""
depends on LINUXBOOT_KERNEL_CUSTOM
help
Choose the Linux kernel version number. (x.x.x)
Release candidate kernels (rc) are currently are not supported.
choice
prompt "Kernel configuration"
default LINUXBOOT_KERNEL_ARCH_DEFAULT_CONFIG
config LINUXBOOT_KERNEL_ARCH_DEFAULT_CONFIG
bool "Default architecture configuration"
help
This option will use the default configuration for the
selected architecture.
config LINUXBOOT_KERNEL_CUSTOM_CONFIG
bool "Custom (def)config file"
endchoice
config LINUXBOOT_KERNEL_CONFIGFILE
string "Config file path"
default "defconfig"
depends on LINUXBOOT_KERNEL_CUSTOM_CONFIG
help
Path to the kernel configuration file.
Note: this can be a defconfig file or a complete .config file.
choice
prompt "Kernel binary format"
default LINUXBOOT_KERNEL_BZIMAGE if LINUXBOOT_X86 || LINUXBOOT_X86_64
default LINUXBOOT_KERNEL_UIMAGE if LINUXBOOT_ARM64 || LINUXBOOT_RISCV
config LINUXBOOT_KERNEL_BZIMAGE
bool "bzImage"
depends on LINUXBOOT_X86 || LINUXBOOT_X86_64
config LINUXBOOT_KERNEL_UIMAGE
bool "uImage"
depends on LINUXBOOT_ARM64 || LINUXBOOT_RISCV
endchoice
config LINUXBOOT_DTB_FILE
string "Compiled devicetree file"
depends on LINUXBOOT_ARM64 || LINUXBOOT_RISCV
default ""
endif #LINUXBOOT_COMPILE_KERNEL
config LINUX_COMMAND_LINE
string "Kernel command-line"
default ""
help
Add your own kernel command-line arguments.
config PAYLOAD_FILE
default "payloads/external/LinuxBoot/linuxboot/bzImage" if LINUXBOOT_COMPILE_KERNEL && ( LINUXBOOT_X86 || LINUXBOOT_X86_64 )
default "payloads/external/LinuxBoot/linuxboot/uImage" if LINUXBOOT_COMPILE_KERNEL && (LINUXBOOT_ARM64 || LINUXBOOT_RISCV)
default LINUXBOOT_KERNEL_PATH if !LINUXBOOT_COMPILE_KERNEL
comment "Linux initramfs"
config LINUXBOOT_BUILD_INITRAMFS
bool "Build initramfs"
default n
config LINUXBOOT_INITRAMFS_PATH
string "Path to initramfs"
depends on !LINUXBOOT_BUILD_INITRAMFS
if LINUXBOOT_BUILD_INITRAMFS
choice
prompt "Payload Mode"
default LINUXBOOT_UROOT
config LINUXBOOT_UROOT
bool "u-root"
help
Enable u-root linuxboot mode.
See http://u-root.tk/ for more information.
endchoice
if LINUXBOOT_UROOT
choice
prompt "U-root version"
default LINUXBOOT_UROOT_MAIN
config LINUXBOOT_UROOT_CUSTOM
bool "custom"
help
choose a custom u-root branch
config LINUXBOOT_UROOT_MAIN
bool "main"
help
Latest u-root version
config LINUXBOOT_UROOT_V3_0_0
bool "v3.0.0"
config LINUXBOOT_UROOT_V2_0_0
bool "v2.0.0"
config LINUXBOOT_UROOT_V1_0_0
bool "v1.0.0"
endchoice
config LINUXBOOT_UROOT_CHECKOUT
string "U-root custom branch"
depends on LINUXBOOT_UROOT_CUSTOM
config LINUXBOOT_UROOT_VERSION
string
default LINUXBOOT_UROOT_CHECKOUT if LINUXBOOT_UROOT_CUSTOM
default "main" if LINUXBOOT_UROOT_MAIN
default "v3.0.0" if LINUXBOOT_UROOT_V3_0_0
default "v2.0.0" if LINUXBOOT_UROOT_V2_0_0
default "v1.0.0" if LINUXBOOT_UROOT_V1_0_0
choice
prompt "Build format"
default LINUXBOOT_UROOT_BB
help
u-root build format (e.g. bb or source). (default "bb")
config LINUXBOOT_UROOT_BB
bool "bb"
config LINUXBOOT_UROOT_SOURCE
bool "source (experimental)"
endchoice
config LINUXBOOT_UROOT_FORMAT
string
default "bb" if LINUXBOOT_UROOT_BB
default "source" if LINUXBOOT_UROOT_SOURCE
config LINUXBOOT_UROOT_FILES
string "Add files to u-root base"
help
Additional files, directories, and binaries (with their ldd dependencies) to add to archive.
Can be speficified multiple times.
config LINUXBOOT_UROOT_INITCMD
string "Init target"
default "init"
help
Symlink target for /init.
Can be an absolute path or a u-root command name. (default "init")
config LINUXBOOT_UROOT_SHELL
string "default shell"
default "elvish"
help
Default shell.
Can be an absolute path or a u-root command name. (default "elvish")
config LINUXBOOT_UROOT_COMMANDS
string "U-root commands"
default "boot coreboot-app"
help
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_SYSTEMBOOT
help
Specify a bootloader which starts after u-root init. It will be a symlink
to /bin/uinit. Default: systemboot
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
choice
prompt "Initramfs compression format"
default LINUXBOOT_INITRAMFS_COMPRESSION_XZ
config LINUXBOOT_INITRAMFS_COMPRESSION_NONE
bool "none"
config LINUXBOOT_INITRAMFS_COMPRESSION_XZ
bool "xz compression"
endchoice
config LINUX_INITRD
string
default "payloads/external/LinuxBoot/linuxboot/initramfs_u-root.cpio" if LINUXBOOT_UROOT
default LINUXBOOT_INITRAMFS_PATH if !LINUXBOOT_BUILD_INITRAMFS
config LINUXBOOT_INITRAMFS_SUFFIX
string
default "" if LINUXBOOT_INITRAMFS_COMPRESSION_NONE
default ".xz" if LINUXBOOT_INITRAMFS_COMPRESSION_XZ
endif #PAYLOAD_LINUXBOOT