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>
161 lines
4.8 KiB
Text
161 lines
4.8 KiB
Text
config PAYLOAD_BUILD_SEABIOS
|
|
bool
|
|
|
|
if PAYLOAD_SEABIOS
|
|
|
|
config PAYLOAD_FILE
|
|
default "payloads/external/SeaBIOS/seabios/out/bios.bin.elf"
|
|
|
|
endif
|
|
|
|
if PAYLOAD_BUILD_SEABIOS
|
|
|
|
choice
|
|
prompt "SeaBIOS version"
|
|
default SEABIOS_STABLE
|
|
|
|
config SEABIOS_STABLE
|
|
bool "1.16.0"
|
|
help
|
|
Stable SeaBIOS version
|
|
config SEABIOS_MASTER
|
|
bool "master"
|
|
help
|
|
Newest SeaBIOS version
|
|
config SEABIOS_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 SeaBIOS.
|
|
|
|
You will be able to specify the name of a branch or a commit id
|
|
later.
|
|
|
|
endchoice
|
|
|
|
config SEABIOS_REVISION_ID
|
|
string "Insert a commit's SHA-1 or a branch name"
|
|
depends on SEABIOS_REVISION
|
|
default "origin/master"
|
|
help
|
|
The commit's SHA-1 or branch name of the revision to use.
|
|
|
|
config SEABIOS_PS2_TIMEOUT
|
|
prompt "PS/2 keyboard controller initialization timeout (milliseconds)"
|
|
default 0
|
|
int
|
|
help
|
|
Some PS/2 keyboard controllers don't respond to commands immediately
|
|
after powering on. This specifies how long SeaBIOS will wait for the
|
|
keyboard controller to become ready before giving up.
|
|
|
|
config SEABIOS_THREAD_OPTIONROMS
|
|
prompt "Hardware init during option ROM execution"
|
|
default n
|
|
bool
|
|
help
|
|
Allow hardware init to run in parallel with optionrom execution.
|
|
|
|
This can reduce boot time, but can cause some timing
|
|
variations during option ROM code execution. It is not
|
|
known if all option ROMs will behave properly with this option.
|
|
|
|
config SEABIOS_HARDWARE_IRQ
|
|
prompt "Hardware Interrupts"
|
|
default y
|
|
bool
|
|
help
|
|
Program and support hardware interrupts using the i8259
|
|
programmable interrupt controller (PIC). Deselected by
|
|
boards which would otherwise hang at the boot menu (eg,
|
|
google/rambi).
|
|
|
|
config SEABIOS_VGA_COREBOOT
|
|
prompt "Include generated option rom that implements legacy VGA BIOS compatibility"
|
|
default y if !VENDOR_EMULATION
|
|
depends on !VGA_ROM_RUN && (VGA_TEXT_FRAMEBUFFER || LINEAR_FRAMEBUFFER)
|
|
bool
|
|
help
|
|
coreboot can initialize the GPU of some mainboards.
|
|
|
|
After initializing the GPU, the information about it can be passed to the payload.
|
|
Provide an option rom that implements this legacy VGA BIOS compatibility requirement.
|
|
|
|
config PAYLOAD_CONFIGFILE
|
|
string "SeaBIOS config file"
|
|
default ""
|
|
help
|
|
This option allows a platform to set Kconfig options for a basic
|
|
SeaBIOS payload. In general, if the option is used, the default
|
|
would be "$(top)/src/mainboard/$(MAINBOARDDIR)/config_seabios"
|
|
|
|
config SEABIOS_BOOTORDER_FILE
|
|
string "SeaBIOS bootorder file"
|
|
default ""
|
|
help
|
|
Add a SeaBIOS bootorder file. From the wiki:
|
|
"The bootorder file may be used to configure the boot up order. The file
|
|
should be ASCII text and contain one line per boot method. The description
|
|
of each boot method follows an Open Firmware device path format. SeaBIOS
|
|
will attempt to boot from each item in the file - first line of the file
|
|
first."
|
|
|
|
See: https://www.coreboot.org/SeaBIOS#Configuring_boot_order
|
|
|
|
If used, a typical value would be:
|
|
$(top)/src/mainboard/$(MAINBOARDDIR)/bootorder
|
|
|
|
config SEABIOS_ADD_SERCON_PORT_FILE
|
|
prompt "Add SeaBIOS sercon-port file to CBFS"
|
|
default n
|
|
bool
|
|
help
|
|
Select this option to enable SeaBIOS' VGA adapter emulation
|
|
on serial port.
|
|
|
|
config SEABIOS_SERCON_PORT_ADDR
|
|
hex "SeaBIOS sercon-port base address"
|
|
depends on SEABIOS_ADD_SERCON_PORT_FILE
|
|
default TTYS0_BASE
|
|
help
|
|
Set this field to the IO address of a serial port for SeaBIOS' VGA
|
|
adapter emulation.
|
|
|
|
By default primary console UART defined by TTYS0_BASE is used.
|
|
|
|
config PAYLOAD_VGABIOS_FILE
|
|
string
|
|
depends on SEABIOS_VGA_COREBOOT
|
|
default "payloads/external/SeaBIOS/seabios/out/vgabios.bin"
|
|
|
|
config SEABIOS_DEBUG_LEVEL
|
|
int "SeaBIOS debug level (verbosity)"
|
|
default -1
|
|
help
|
|
The higher the number, the more verbose SeaBIOS will be. See the table
|
|
below for the current values corresponding to various items as of SeaBIOS
|
|
version 1.10.1. Set this value to -1 to use SeaBIOS' default.
|
|
|
|
Output at various SeaBIOS log levels:
|
|
level 0 - Logging disabled
|
|
level 1 - Basic output, interrupts 5, 18h, 19h, 40h, SMP, PNP, PMM
|
|
level 2 - AHCI, Floppy, Basic ps2, interrupts 11h, 12h, 14h, 17h
|
|
level 3 - bootsplash, initializations, SeaBIOS VGA BIOS interrupts
|
|
level 4 - BIOS tables, more optionrom
|
|
level 5 - Extra bootsplash, more XHCI
|
|
level 6 - ATA commands, extra optionrom
|
|
level 7 - extra ps2 commands, more OHCI & EHCI
|
|
level 8 - extra malloc info, more AHCI
|
|
level 9 - interrupts 15h, 16h, 1ah, APM, PCI, SMIs, PCIBIOS,
|
|
USB-HID commands, SDcard commands, Floppy commands
|
|
level 10 - interrupt 13h (Drives other than floppy)
|
|
level 20 - interrupt 10h (Display)
|
|
|
|
comment "Using default SeaBIOS log level"
|
|
depends on SEABIOS_DEBUG_LEVEL = -1
|
|
|
|
comment "SeaBIOS logging disabled"
|
|
depends on SEABIOS_DEBUG_LEVEL = 0
|
|
|
|
endif
|