Add dual FSP binaries support.
There are two FSP images at different locations in a flash (one factory version is read only and other in updatable version) TempRamInit, FspMemoryInit and TempRamExit are executed from factory version and FspSiliconInit/NotifyPhase will be executed from updatable version. Also update FSP specification version to v1.1. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Ma, Maurice" <maurice.ma@intel.com> Reviewed-by: "Yao, Jiewen" <Jiewen.Yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17248 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -215,8 +215,10 @@ ASM_GLOBAL ASM_PFX(FspApiCallingCheck)
|
||||
#
|
||||
# Following functions will be provided in PlatformSecLib
|
||||
#
|
||||
ASM_GLOBAL ASM_PFX(GetFspBaseAddress)
|
||||
ASM_GLOBAL ASM_PFX(GetFspInfoHdr)
|
||||
ASM_GLOBAL ASM_PFX(GetBootFirmwareVolumeOffset)
|
||||
ASM_GLOBAL ASM_PFX(Pei2LoaderSwitchStack)
|
||||
ASM_GLOBAL ASM_PFX(Loader2PeiSwitchStack)
|
||||
|
||||
|
||||
#
|
||||
@@ -561,8 +563,7 @@ ASM_PFX(TempRamInitApi):
|
||||
jz NemInitExit
|
||||
|
||||
#
|
||||
# CPUID/DeviceID check
|
||||
# and Sec Platform Init
|
||||
# Sec Platform Init
|
||||
#
|
||||
movl $TempRamInitApiL1, %esi #CALL_MMX SecPlatformInit
|
||||
movd %esi, %mm7
|
||||
@@ -717,7 +718,8 @@ FspApiCommonL1:
|
||||
jz FspApiCommonL2
|
||||
cmpl $0x03, %eax # FspMemoryInit API
|
||||
jz FspApiCommonL2
|
||||
jmp Pei2LoaderSwitchStack
|
||||
call ASM_PFX(GetFspInfoHdr)
|
||||
jmp Loader2PeiSwitchStack
|
||||
|
||||
FspApiCommonL2:
|
||||
#
|
||||
@@ -725,9 +727,17 @@ FspApiCommonL2:
|
||||
#
|
||||
|
||||
#
|
||||
# Store the address in FSP which will return control to the BL
|
||||
# Place holder to store the FspInfoHeader pointer
|
||||
#
|
||||
pushl $FspApiCommonExit
|
||||
pushl %eax
|
||||
|
||||
#
|
||||
# Update the FspInfoHeader pointer
|
||||
#
|
||||
pushl %eax
|
||||
call ASM_PFX(GetFspInfoHdr)
|
||||
movl %eax, 4(%esp)
|
||||
popl %eax
|
||||
|
||||
#
|
||||
# Create a Task Frame in the stack for the Boot Loader
|
||||
@@ -796,7 +806,7 @@ FspApiCommonL2:
|
||||
# Pass Control into the PEI Core
|
||||
#
|
||||
call ASM_PFX(SecStartup)
|
||||
|
||||
addl $4, %esp
|
||||
FspApiCommonExit:
|
||||
ret
|
||||
|
||||
|
Reference in New Issue
Block a user