X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=IntelFspPkg%2FFspSecCore%2FIa32%2FFspApiEntry.s;h=d0f5b20b96dcd9b40737e3a1ea5e5a8550878724;hp=1d8fe0bcd299e821f9c4e289ededd349bb14d22a;hb=3b17b2458726bf7e2cf640d29ebe14f8af587905;hpb=2bf87d82e95ed812504783468da26ea425b2a58b diff --git a/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s b/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s index 1d8fe0bcd2..d0f5b20b96 100644 --- a/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s +++ b/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s @@ -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