Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/34736 )
Change subject: soc/intel/common: Select USE_LEGACY_8254_TIMER ......................................................................
soc/intel/common: Select USE_LEGACY_8254_TIMER
Always select USE_LEGACY_8254_TIMER if we know we have to.
Default to y as there might be legacy software not under our control that needs the 8254 timer. Add a comment to evaluate if this should be changed to 'default n' in 10 years from now.
The following software needs 8254 timer: * SeaBios * Option ROMs * GRUB <2.03 * Linux <5.3
References: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=c8c40... http://git.savannah.gnu.org/cgit/grub.git/commit/?id=446794de8da4329ea532cbe...
Fixes boot failure on SeaBios and GRUB2 bootloader on X11SSH-TF using SeaBIOS as payload.
Change-Id: I3eae8249e87a54c877e320ebce6595030c48fe2f Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M payloads/external/SeaBIOS/Kconfig.name M src/device/Kconfig M src/soc/intel/common/block/timer/Kconfig 3 files changed, 12 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/36/34736/1
diff --git a/payloads/external/SeaBIOS/Kconfig.name b/payloads/external/SeaBIOS/Kconfig.name index bb1f30c..8f92997 100644 --- a/payloads/external/SeaBIOS/Kconfig.name +++ b/payloads/external/SeaBIOS/Kconfig.name @@ -1,6 +1,7 @@ config PAYLOAD_SEABIOS bool "SeaBIOS" depends on ARCH_X86 + select USE_LEGACY_8254_TIMER if SOC_INTEL_COMMON_BLOCK help Select this option if you want to build a coreboot image with a SeaBIOS payload. If you don't know what this is diff --git a/src/device/Kconfig b/src/device/Kconfig index e605bc2..ebf6bfb 100644 --- a/src/device/Kconfig +++ b/src/device/Kconfig @@ -86,6 +86,7 @@ bool "Run VGA Option ROMs" depends on PCI && (ARCH_X86 || ARCH_PPC64) && !MAINBOARD_FORCE_NATIVE_VGA_INIT select HAVE_VGA_TEXT_FRAMEBUFFER + select USE_LEGACY_8254_TIMER if SOC_INTEL_COMMON_BLOCK help Execute VGA Option ROMs in coreboot if found. This can be used to enable PCI/AGP/PCI-E video cards when not using a SeaBIOS diff --git a/src/soc/intel/common/block/timer/Kconfig b/src/soc/intel/common/block/timer/Kconfig index a214ef0..50c7677 100644 --- a/src/soc/intel/common/block/timer/Kconfig +++ b/src/soc/intel/common/block/timer/Kconfig @@ -5,10 +5,16 @@
config USE_LEGACY_8254_TIMER bool "Use Legacy 8254 Timer" - default y if PAYLOAD_SEABIOS || VGA_ROM_RUN - default n + default y help This sets the FSP UPD to enable Legacy 8254 clock gating. As per the FSP Integration guide Legacy 8254 timer clock gating UPD needs - to be disabled in order to boot SeaBIOS or run OpRom, - but should otherwise be enabled. + to be disabled in order to boot legacy software. + TODO after 2029: Evaluate if this should be changed to 'default n'. + +if !USE_LEGACY_8254_TIMER + +comment "Warning: The following software won't run due to disabled 8254 timer" +comment " GRUB <2.03, Linux <5.3, SeaBios, Option ROMs" + +endif