soc/amd/mendocino: Populate type 0x63 entry with right MRC Cache
On boards with RECOVERY_MRC_CACHE FMAP section, populate type 0x63 BIOS directory entry in RO with that section. If the RECOVERY_MRC_CACHE section is not present, then fall back to RW_MRC_CACHE. BUG=b:270569389 TEST=Build and boot to OS in Skyrim. Ensure that the Type 0x63 BIOS directory entry is populated with the base and size of appropriate MRC cache. Change-Id: I49ec4f64e33c4d5780a7fe6a5540eab42b6cec9f Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/73169 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
This commit is contained in:
parent
674b07247e
commit
b9a6223453
|
@ -5,6 +5,7 @@ config SOC_AMD_REMBRANDT_BASE
|
|||
select ACPI_SOC_NVS
|
||||
select ARCH_X86
|
||||
select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
|
||||
select CACHE_MRC_SETTINGS
|
||||
select DRIVERS_USB_ACPI
|
||||
select DRIVERS_USB_PCI_XHCI
|
||||
select FSP_COMPRESS_FSP_M_LZMA if !ASYNC_FILE_LOADING
|
||||
|
|
|
@ -142,6 +142,16 @@ PSP_BIOSBIN_DEST=$(shell $(READELF_bootblock) -Wl $(PSP_ELF_FILE) | grep LOAD |
|
|||
APOB_NV_SIZE=$(shell awk '$$2 == "FMAP_SECTION_RW_MRC_CACHE_SIZE" {print $$3}' $(obj)/fmap_config.h)
|
||||
APOB_NV_BASE=$(shell awk '$$2 == "FMAP_SECTION_RW_MRC_CACHE_START" {print $$3}' $(obj)/fmap_config.h)
|
||||
|
||||
ifeq ($(CONFIG_HAS_RECOVERY_MRC_CACHE),y)
|
||||
# On boards with recovery MRC cache, point type 0x63 entry to RECOVERY_MRC_CACHE.
|
||||
# Else use RW_MRC_CACHE. This entry will be added in the RO section.
|
||||
APOB_NV_RO_SIZE=$(shell awk '$$2 == "FMAP_SECTION_RECOVERY_MRC_CACHE_SIZE" {print $$3}' $(obj)/fmap_config.h)
|
||||
APOB_NV_RO_BASE=$(shell awk '$$2 == "FMAP_SECTION_RECOVERY_MRC_CACHE_START" {print $$3}' $(obj)/fmap_config.h)
|
||||
else
|
||||
APOB_NV_RO_SIZE=$(APOB_NV_SIZE)
|
||||
APOB_NV_RO_BASE=$(APOB_NV_BASE)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_VBOOT_STARTS_BEFORE_BOOTBLOCK),y)
|
||||
# type = 0x6B - PSP Shared memory location
|
||||
ifneq ($(CONFIG_PSP_SHAREDMEM_SIZE),0x0)
|
||||
|
@ -194,6 +204,8 @@ OPT_PSP_SHAREDMEM_BASE=$(call add_opt_prefix, $(PSP_SHAREDMEM_BASE), --sharedmem
|
|||
OPT_PSP_SHAREDMEM_SIZE=$(call add_opt_prefix, $(PSP_SHAREDMEM_SIZE), --sharedmem-size)
|
||||
OPT_APOB_NV_SIZE=$(call add_opt_prefix, $(APOB_NV_SIZE), --apob-nv-size)
|
||||
OPT_APOB_NV_BASE=$(call add_opt_prefix, $(APOB_NV_BASE),--apob-nv-base)
|
||||
OPT_APOB_NV_RO_SIZE=$(call add_opt_prefix, $(APOB_NV_RO_SIZE), --apob-nv-size)
|
||||
OPT_APOB_NV_RO_BASE=$(call add_opt_prefix, $(APOB_NV_RO_BASE),--apob-nv-base)
|
||||
OPT_EFS_SPI_READ_MODE=$(call add_opt_prefix, $(CONFIG_EFS_SPI_READ_MODE), --spi-read-mode)
|
||||
OPT_EFS_SPI_SPEED=$(call add_opt_prefix, $(CONFIG_EFS_SPI_SPEED), --spi-speed)
|
||||
OPT_EFS_SPI_MICRON_FLAG=$(call add_opt_prefix, $(CONFIG_EFS_SPI_MICRON_FLAG), --spi-micron-flag)
|
||||
|
@ -244,8 +256,8 @@ $(obj)/amdfw.rom: $(call strip_quotes, $(PSP_BIOSBIN_FILE)) \
|
|||
@printf " AMDFWTOOL $(subst $(obj)/,,$(@))\n"
|
||||
$(AMDFWTOOL) \
|
||||
$(AMDFW_COMMON_ARGS) \
|
||||
$(OPT_APOB_NV_SIZE) \
|
||||
$(OPT_APOB_NV_BASE) \
|
||||
$(OPT_APOB_NV_RO_SIZE) \
|
||||
$(OPT_APOB_NV_RO_BASE) \
|
||||
$(OPT_VERSTAGE_FILE) \
|
||||
$(OPT_VERSTAGE_SIG_FILE) \
|
||||
$(OPT_SPL_TABLE_FILE) \
|
||||
|
|
Loading…
Reference in New Issue