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>
This commit is contained in:
Raul E Rangel 2021-06-24 16:54:27 -06:00 committed by Raul Rangel
parent e19d0efb5e
commit e92a982558
3 changed files with 14 additions and 20 deletions

View File

@ -137,11 +137,15 @@ config RAMTOP
# Traditionally BIOS region on SPI flash boot media was memory mapped right below # 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 # 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 # address space to flash address was trivial. However some IFDs on newer SoCs
# have BIOS region sandwiched between descriptor and other regions. Turning off # have BIOS region sandwiched between descriptor and other regions. Turning on
# this option enables soc code to provide custom mmap_boot.c which can be used to # X86_CUSTOM_BOOTMEDIA disables X86_TOP4G_BOOTMEDIA_MAP which allows the
# implement complex translation. # soc code to provide custom mmap_boot.c.
config X86_CUSTOM_BOOTMEDIA
bool
config X86_TOP4G_BOOTMEDIA_MAP config X86_TOP4G_BOOTMEDIA_MAP
bool bool
depends on !X86_CUSTOM_BOOTMEDIA
default y default y
# This is something you almost certainly don't want to mess with. # This is something you almost certainly don't want to mess with.

View File

@ -112,6 +112,9 @@ config CPU_SPECIFIC_OPTIONS
select INTEL_GMA_ACPI select INTEL_GMA_ACPI
select INTEL_GMA_SWSMISCI select INTEL_GMA_SWSMISCI
select HAVE_ASAN_IN_ROMSTAGE 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 config MAX_CPUS
int int
@ -173,12 +176,6 @@ config C_ENV_BOOTBLOCK_SIZE
hex hex
default 0x8000 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 config ROMSTAGE_ADDR
hex hex
default 0xfef20000 default 0xfef20000

View File

@ -15,6 +15,10 @@ config FAST_SPI_DISABLE_WRITE_STATUS
config FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW config FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW
bool bool
depends on SOC_INTEL_COMMON_BLOCK_FAST_SPI 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 help
Fast SPI controller on the platform supports additional Fast SPI controller on the platform supports additional
window for memory mapping BIOS region (region 1) on the SPI 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 Maximum size of the extended window reserved for mapping BIOS
region greater than 16MiB. The actual mapped window might be region greater than 16MiB. The actual mapped window might be
smaller depending upon the size of the BIOS region. 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