Raul Rangel has submitted this change. ( https://review.coreboot.org/c/coreboot/+/55853 )
Change subject: arch/x86: Add X86_CUSTOM_BOOTMEDIA ......................................................................
arch/x86: Add X86_CUSTOM_BOOTMEDIA
In order to disable X86_TOP4G_BOOTMEDIA_MAP it requires the definition to be overridden. This makes it a little less ergonomic to use. Instead introduce the inverse option that can be selected. I chose to leave X86_TOP4G_BOOTMEDIA_MAP since it keeps the Makefiles simple.
BUG=b:179699789 TEST=none
Signed-off-by: Raul E Rangel rrangel@chromium.org Change-Id: I65bbc118bde88687a7d7749c87acf1cbdc56a269 Reviewed-on: https://review.coreboot.org/c/coreboot/+/55853 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Martin Roth martinroth@google.com --- M src/arch/x86/Kconfig M src/soc/intel/apollolake/Kconfig M src/soc/intel/common/block/fast_spi/Kconfig 3 files changed, 14 insertions(+), 20 deletions(-)
Approvals: build bot (Jenkins): Verified Martin Roth: Looks good to me, approved
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig index ef07a2a..6af3fa8 100644 --- a/src/arch/x86/Kconfig +++ b/src/arch/x86/Kconfig @@ -137,11 +137,15 @@ # Traditionally BIOS region on SPI flash boot media was memory mapped right below # 4G and it was the last region in the IFD. This way translation between CPU # address space to flash address was trivial. However some IFDs on newer SoCs -# have BIOS region sandwiched between descriptor and other regions. Turning off -# this option enables soc code to provide custom mmap_boot.c which can be used to -# implement complex translation. +# have BIOS region sandwiched between descriptor and other regions. Turning on +# X86_CUSTOM_BOOTMEDIA disables X86_TOP4G_BOOTMEDIA_MAP which allows the +# soc code to provide custom mmap_boot.c. +config X86_CUSTOM_BOOTMEDIA + bool + config X86_TOP4G_BOOTMEDIA_MAP bool + depends on !X86_CUSTOM_BOOTMEDIA default y
# This is something you almost certainly don't want to mess with. diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig index d81015e..6395f16 100644 --- a/src/soc/intel/apollolake/Kconfig +++ b/src/soc/intel/apollolake/Kconfig @@ -112,6 +112,9 @@ select INTEL_GMA_ACPI select INTEL_GMA_SWSMISCI select HAVE_ASAN_IN_ROMSTAGE + # This SoC does not map SPI flash like many previous SoC. Therefore we + # provide a custom media driver that facilitates mapping + select X86_CUSTOM_BOOTMEDIA
config MAX_CPUS int @@ -173,12 +176,6 @@ hex default 0x8000
-# This SoC does not map SPI flash like many previous SoC. Therefore we provide -# a custom media driver that facilitates mapping -config X86_TOP4G_BOOTMEDIA_MAP - bool - default n - config ROMSTAGE_ADDR hex default 0xfef20000 diff --git a/src/soc/intel/common/block/fast_spi/Kconfig b/src/soc/intel/common/block/fast_spi/Kconfig index eb2373c..9257bde 100644 --- a/src/soc/intel/common/block/fast_spi/Kconfig +++ b/src/soc/intel/common/block/fast_spi/Kconfig @@ -15,6 +15,10 @@ config FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW bool depends on SOC_INTEL_COMMON_BLOCK_FAST_SPI + # Enable X86_CUSTOM_BOOTMEDIA because the fast SPI controller + # driver provides a custom boot media device when multiple decode + # windows are used for the BIOS region. + select X86_CUSTOM_BOOTMEDIA help Fast SPI controller on the platform supports additional window for memory mapping BIOS region (region 1) on the SPI @@ -45,14 +49,3 @@ Maximum size of the extended window reserved for mapping BIOS region greater than 16MiB. The actual mapped window might be smaller depending upon the size of the BIOS region. - -if FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW - -# Disable X86_TOP4G_BOOTMEDIA_MAP because the fast SPI controller -# driver provides a custom boot media device when multiple decode -# windows are used for the BIOS region. - -config X86_TOP4G_BOOTMEDIA_MAP - default n - -endif