soc/amd: Use fixed EFS location for Phoenix & Glinda

The AMD SoCs no longer have a variable position for EFS - it's now fixed
at 0xff020000 - 128KiB into the 16MiB ROM decode region.

It's a little more complex than that because the chip can be larger than
16MiB, and the entire ROM can be decoded if mapped above the 4GiB
boundary, but we don't currently support doing that in coreboot, so this
is enough for now.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I343a875ba9aa8294a090f2eff7b5dfb5e86334f8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71769
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
This commit is contained in:
Martin Roth 2023-01-09 21:21:48 -07:00 committed by Martin L Roth
parent 3f5985972d
commit b486fe95bf
2 changed files with 4 additions and 8 deletions

View File

@ -67,10 +67,8 @@ MAINBOARD_BLOBS_DIR:=$(top)/3rdparty/blobs/mainboard/$(MAINBOARDDIR)
$(if $(CONFIG_AMD_FWM_POSITION_INDEX), ,\ $(if $(CONFIG_AMD_FWM_POSITION_INDEX), ,\
$(error Invalid AMD firmware position index. Check if the board sets a valid ROM size)) $(error Invalid AMD firmware position index. Check if the board sets a valid ROM size))
GLINDA_FWM_POSITION=$(call int-add, \ # Fixed EFS location
$(call int-subtract, 0xffffffff \ GLINDA_FWM_POSITION=0xff020000
$(call int-shift-left, \
0x80000 $(CONFIG_AMD_FWM_POSITION_INDEX))) 0x20000 1)
# 0x40 accounts for the cbfs_file struct + filename + metadata structs, aligned to 64 bytes # 0x40 accounts for the cbfs_file struct + filename + metadata structs, aligned to 64 bytes
# Building the cbfs image will fail if the offset isn't large enough # Building the cbfs image will fail if the offset isn't large enough

View File

@ -67,10 +67,8 @@ MAINBOARD_BLOBS_DIR:=$(top)/3rdparty/blobs/mainboard/$(MAINBOARDDIR)
$(if $(CONFIG_AMD_FWM_POSITION_INDEX), ,\ $(if $(CONFIG_AMD_FWM_POSITION_INDEX), ,\
$(error Invalid AMD firmware position index. Check if the board sets a valid ROM size)) $(error Invalid AMD firmware position index. Check if the board sets a valid ROM size))
PHOENIX_FWM_POSITION=$(call int-add, \ # Fixed EFS location
$(call int-subtract, 0xffffffff \ PHOENIX_FWM_POSITION=0xff020000
$(call int-shift-left, \
0x80000 $(CONFIG_AMD_FWM_POSITION_INDEX))) 0x20000 1)
# 0x40 accounts for the cbfs_file struct + filename + metadata structs, aligned to 64 bytes # 0x40 accounts for the cbfs_file struct + filename + metadata structs, aligned to 64 bytes
# Building the cbfs image will fail if the offset isn't large enough # Building the cbfs image will fail if the offset isn't large enough