drivers/intel/fsp2_0: Fix the FSP-T position

The only use case for FSP-T in coreboot is for 'Intel Bootguard'
support at the moment. Bootguard can do verification FSP-T but there
is no verification on whether the FSP found by walkcbfs_asm is the one
actually verified as an IBB by Bootguard. A fixed pointer needs to be
used.

TESTED on OCP/Deltalake, still boots.

Change-Id: I1ec8b238384684dccf39e5da902d426d3a32b9db
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/52850
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Arthur Heymans 2021-05-03 10:59:45 +02:00
parent be2f937f1e
commit 0f068a600e
3 changed files with 8 additions and 10 deletions

View File

@ -74,6 +74,12 @@ config FSP_T_CBFS
depends on FSP_CAR depends on FSP_CAR
default "fspt.bin" default "fspt.bin"
config FSP_T_LOCATION
hex
default 0xfffe0000
help
The location for FSP-T.
config FSP_S_CBFS config FSP_S_CBFS
string "Name of FSP-S in CBFS" string "Name of FSP-S in CBFS"
default "fsps.bin" default "fsps.bin"

View File

@ -48,6 +48,7 @@ $(FSP_T_CBFS)-file := $(call strip_quotes,$(CONFIG_FSP_T_FILE))
$(FSP_T_CBFS)-type := fsp $(FSP_T_CBFS)-type := fsp
ifeq ($(CONFIG_FSP_T_XIP),y) ifeq ($(CONFIG_FSP_T_XIP),y)
$(FSP_T_CBFS)-options := --xip $(TXTIBB) $(FSP_T_CBFS)-options := --xip $(TXTIBB)
$(FSP_T_CBFS)-position = $(CONFIG_FSP_T_LOCATION)
endif endif
cbfs-files-$(CONFIG_ADD_FSP_BINARIES) += $(FSP_M_CBFS) cbfs-files-$(CONFIG_ADD_FSP_BINARIES) += $(FSP_M_CBFS)

View File

@ -21,16 +21,7 @@ bootblock_pre_c_entry:
cache_as_ram: cache_as_ram:
post_code(0x21) post_code(0x21)
/* find fsp in cbfs */ movl $(CONFIG_FSP_T_LOCATION), %ebx
lea fsp_name, %esi
mov $1f, %esp
jmp walkcbfs_asm
1:
cmp $0, %eax
jz .halt_forever
mov CBFS_FILE_OFFSET(%eax), %ebx
bswap %ebx
add %eax, %ebx
add $0x94, %ebx add $0x94, %ebx
/* /*