diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig index ef07a2a03a..6af3fa8b69 100644 --- a/src/arch/x86/Kconfig +++ b/src/arch/x86/Kconfig @@ -137,11 +137,15 @@ config RAMTOP # 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 d81015e762..6395f16f7c 100644 --- a/src/soc/intel/apollolake/Kconfig +++ b/src/soc/intel/apollolake/Kconfig @@ -112,6 +112,9 @@ config CPU_SPECIFIC_OPTIONS 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 @@ config C_ENV_BOOTBLOCK_SIZE 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 eb2373ca8b..9257bde0f5 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_DISABLE_WRITE_STATUS 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 @@ config EXT_BIOS_WIN_SIZE 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