diff --git a/Makefile.inc b/Makefile.inc index 8e9605770f..daf4cf4975 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -531,6 +531,10 @@ ifneq ($(CONFIG_SEABIOS_PS2_TIMEOUT),0) $(CBFSTOOL) $@.tmp add-int -i $(CONFIG_SEABIOS_PS2_TIMEOUT) -n etc/ps2-keyboard-spinup endif endif +ifeq ($(CONFIG_SEABIOS_VGA_COREBOOT),y) + @printf " SeaBIOS Adding generated legacy VGA option rom.\n" + $(CBFSTOOL) $@.tmp add -f $(CONFIG_PAYLOAD_VGABIOS_FILE) -n vgaroms/seavgabios.bin -t raw +endif ifeq ($(CONFIG_INCLUDE_CONFIG_FILE),y) @printf " CONFIG $(DOTCONFIG)\n" if [ -f $(DOTCONFIG) ]; then \ diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc index da454528f3..0831eea747 100644 --- a/payloads/external/SeaBIOS/Makefile.inc +++ b/payloads/external/SeaBIOS/Makefile.inc @@ -36,6 +36,10 @@ ifneq ($(CONFIG_SEABIOS_MALLOC_UPPERMEMORY),y) endif ifneq ($(CONFIG_SEABIOS_THREAD_OPTIONROMS),y) echo "# CONFIG_THREAD_OPTIONROMS is not set" >> seabios/.config +endif +ifeq ($(CONFIG_SEABIOS_VGA_COREBOOT),y) + echo "CONFIG_VGA_COREBOOT=y" >> seabios/.config + echo "CONFIG_BUILD_VGABIOS=y" >> seabios/.config endif # This shows how to force a previously set .config option *off* #echo "# CONFIG_SMBIOS is not set" >> seabios/.config diff --git a/src/Kconfig b/src/Kconfig index afcaab6685..ec598631bd 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -642,6 +642,17 @@ config SEABIOS_MALLOC_UPPERMEMORY hardware. In general, if this is desired, the option will be set to 'N' by the chipset Kconfig. +config SEABIOS_VGA_COREBOOT + prompt "Include generated option rom that implements legacy VGA BIOS compatibility" if PAYLOAD_SEABIOS + default n + depends on !VGA_BIOS && MAINBOARD_DO_NATIVE_VGA_INIT + 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. + choice prompt "GRUB2 version" default GRUB2_MASTER @@ -689,6 +700,11 @@ config PAYLOAD_FILE depends on PAYLOAD_SEABIOS default "payloads/external/SeaBIOS/seabios/out/bios.bin.elf" +config PAYLOAD_VGABIOS_FILE + string + depends on PAYLOAD_SEABIOS && SEABIOS_VGA_COREBOOT + default "payloads/external/SeaBIOS/seabios/out/vgabios.bin" + config PAYLOAD_FILE depends on PAYLOAD_FILO default "payloads/external/FILO/filo/build/filo.elf" diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index aa058c01eb..0a7399e3dd 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -349,6 +349,7 @@ seabios: CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \ CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \ CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \ + CONFIG_SEABIOS_VGA_COREBOOT=$(CONFIG_SEABIOS_VGA_COREBOOT) \ CONFIG_CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL) \ CONFIG_TTYS0_BASE=$(CONFIG_TTYS0_BASE) \ CONFIG_SEABIOS_MALLOC_UPPERMEMORY=$(CONFIG_SEABIOS_MALLOC_UPPERMEMORY) \