summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIdwer Vollering <vidwer@gmail.com>2014-04-01 22:47:33 +0000
committerIdwer Vollering <vidwer@gmail.com>2014-04-07 11:54:26 +0200
commit7c1a49bcc0520de45ae57054baa86cfd56474c46 (patch)
tree778213a8a51878e37366aa2c60f5aeae4ba3e955
parent011341d126fe1c97e8e817c718c2c827624d16b7 (diff)
downloadcoreboot-7c1a49bcc0520de45ae57054baa86cfd56474c46.tar.xz
SeaBIOS: have coreboot pass the choice to run optionroms in parallel
Introduce the tunable CONFIG_SEABIOS_THREAD_OPTIONROMS. Change-Id: Ifd4d9fca7316eb739ff184e54bdc1cdb0262f0c6 Signed-off-by: Idwer Vollering <vidwer@gmail.com> Reviewed-on: http://review.coreboot.org/5443 Tested-by: build bot (Jenkins) Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
-rw-r--r--payloads/external/SeaBIOS/Makefile.inc4
-rw-r--r--src/Kconfig11
-rw-r--r--src/arch/x86/Makefile.inc1
3 files changed, 16 insertions, 0 deletions
diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc
index 84f1515082..153cf97322 100644
--- a/payloads/external/SeaBIOS/Makefile.inc
+++ b/payloads/external/SeaBIOS/Makefile.inc
@@ -21,12 +21,16 @@ config: checkout
echo " CONFIG SeaBIOS $(TAG-y)"
$(MAKE) -C $(OUT)/seabios defconfig OUT=$(OUT)/seabios/out/
echo "CONFIG_COREBOOT=y" >> $(OUT)/seabios/.config
+ifeq ($(CONFIG_SEABIOS_THREAD_OPTIONROMS),y)
+ echo "CONFIG_THREAD_OPTIONROMS=y" >> $(OUT)/seabios/.config
+endif
echo "CONFIG_DEBUG_SERIAL=y" >> $(OUT)/seabios/.config
echo "CONFIG_DEBUG_SERIAL_PORT=0x3f8" >> $(OUT)/seabios/.config
echo "CONFIG_COREBOOT_FLASH=y" >> $(OUT)/seabios/.config
echo "CONFIG_LZMA=y" >> $(OUT)/seabios/.config
echo "CONFIG_FLASH_FLOPPY=y" >> $(OUT)/seabios/.config
echo "CONFIG_VGAHOOKS=y" >> $(OUT)/seabios/.config
+ echo "CONFIG_DEBUG_COREBOOT=y" >> $(OUT)/seabios/.config
# This shows how to force a previously set .config option *off*
#echo "# CONFIG_SMBIOS is not set" >> $(OUT)/seabios/.config
diff --git a/src/Kconfig b/src/Kconfig
index fe7dc9b017..2f5270e918 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -624,6 +624,17 @@ config SEABIOS_PS2_TIMEOUT
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" if PAYLOAD_SEABIOS
+ 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.
+
choice
prompt "GRUB2 version"
default GRUB2_MASTER
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 3b17ce3054..56f0c5c7ba 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -468,6 +468,7 @@ seabios:
AS="$(AS)" CPP="$(CPP)" \
CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
+ CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \
OUT=$(abspath $(obj)) IASL="$(IASL)"
filo: