3dda4dad1d
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>
98 lines
2.5 KiB
Text
98 lines
2.5 KiB
Text
config PAYLOAD_BUILD_GRUB2
|
||
bool
|
||
|
||
if PAYLOAD_GRUB2
|
||
|
||
config PAYLOAD_FILE
|
||
default "payloads/external/GRUB2/grub2/build/default_payload.elf"
|
||
|
||
endif
|
||
|
||
if PAYLOAD_BUILD_GRUB2
|
||
|
||
choice
|
||
prompt "GRUB2 version"
|
||
default GRUB2_STABLE
|
||
|
||
config GRUB2_STABLE
|
||
bool "2.04"
|
||
help
|
||
Stable GRUB2 version
|
||
|
||
config GRUB2_MASTER
|
||
bool "HEAD"
|
||
help
|
||
Newest GRUB2 version
|
||
|
||
config GRUB2_REVISION
|
||
bool "git revision"
|
||
help
|
||
Select this option if you have a specific commit or branch
|
||
that you want to use as the revision from which to
|
||
build GRUB2.
|
||
|
||
You will be able to specify the name of a branch or a commit id
|
||
later.
|
||
endchoice
|
||
|
||
config GRUB2_REVISION_ID
|
||
string "Insert a commit's SHA-1 or a branch name"
|
||
depends on GRUB2_REVISION
|
||
default "origin/master"
|
||
help
|
||
The commit's SHA-1 or branch name of the revision to use.
|
||
|
||
config GRUB2_EXTRA_MODULES
|
||
string "Extra modules to include in GRUB image"
|
||
help
|
||
Space-separated list of additional modules to include. Few common
|
||
ones:
|
||
* bsd for *BSD
|
||
* png/jpg for PNG/JPG images
|
||
* gfxmenu for graphical menus (you'll need a theme as well)
|
||
* gfxterm_background for setting background
|
||
|
||
config GRUB2_INCLUDE_RUNTIME_CONFIG_FILE
|
||
bool "Include GRUB2 runtime config file into ROM image"
|
||
depends on PAYLOAD_BUILD_GRUB2
|
||
default n
|
||
help
|
||
The GRUB2 payload reads its runtime configuration file from etc/grub.cfg
|
||
stored in the CBFS on the flash ROM chip. Without that, it’ll just drop
|
||
into a rescue shell.
|
||
|
||
This configuration may need to be coreboot specific.
|
||
|
||
Select this option, if you want to include the GRUB2 runtime
|
||
configuration file into CBFS as `etc/grub.cfg` automatically.
|
||
|
||
You will be able to specify the path of the configuration file later.
|
||
|
||
Without this option you would need to add this file manually with
|
||
build/cbfstool build/coreboot.rom add -f grub.cfg -n etc/grub.cfg -t raw
|
||
|
||
config GRUB2_RUNTIME_CONFIG_FILE
|
||
string "Path of grub.cfg"
|
||
depends on GRUB2_INCLUDE_RUNTIME_CONFIG_FILE
|
||
default "grub.cfg"
|
||
help
|
||
The path of the GRUB2 runtime configuration file to be added to CBFS.
|
||
|
||
endif
|
||
|
||
if PAYLOAD_SEAGRUB
|
||
|
||
config PAYLOAD_FILE
|
||
default "payloads/external/SeaBIOS/seabios/out/bios.bin.elf"
|
||
|
||
config SEABIOS_BOOTORDER_FILE
|
||
default "payloads/external/GRUB2/bootorder-seagrub"
|
||
|
||
config SEAGRUB_ALLOW_SEABIOS_BOOTMENU
|
||
bool "Allow to access SeaBIOS boot menu before launching GRUB"
|
||
help
|
||
Enable this to allow the access to the boot menu of SeaBIOS. It
|
||
increases the flexibility but allows to bypass the secure mechanism
|
||
implemented in the GRUB runtime config. Please use this with caution.
|
||
|
||
endif
|