mirror of https://github.com/acidanthera/audk.git
Do not deadloop if Microcode not found in FspTempRamInit.
We do not consider microcode not found as critical error, because Microcode might be applied later. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com> Reviewed-by: "Ma, Maurice" <maurice.ma@intel.com> Reviewed-by: "Rangarajan, Ravi P" <ravi.p.rangarajan@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18678 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d2de448338
commit
e620b72924
|
@ -210,12 +210,22 @@ FspHeaderFound:
|
||||||
jmp *%eax
|
jmp *%eax
|
||||||
|
|
||||||
TempRamInitDone:
|
TempRamInitDone:
|
||||||
|
cmp $0x8000000E, %eax #Check if EFI_NOT_FOUND returned. Error code for Microcode Update not found.
|
||||||
|
je CallSecFspInit #If microcode not found, don't hang, but continue.
|
||||||
|
|
||||||
cmp $0x0, %eax
|
cmp $0x0, %eax
|
||||||
jnz FspApiFailed
|
jnz FspApiFailed
|
||||||
|
|
||||||
# ECX: start of range
|
# ECX: start of range
|
||||||
# EDX: end of range
|
# EDX: end of range
|
||||||
|
CallSecFspInit:
|
||||||
|
xorl %eax, %eax
|
||||||
movl %edx, %esp
|
movl %edx, %esp
|
||||||
|
|
||||||
|
# Align the stack at DWORD
|
||||||
|
addl $3, %esp
|
||||||
|
andl $0xFFFFFFFC, %esp
|
||||||
|
|
||||||
pushl %edx
|
pushl %edx
|
||||||
pushl %ecx
|
pushl %ecx
|
||||||
pushl %eax # zero - no hob list yet
|
pushl %eax # zero - no hob list yet
|
||||||
|
|
|
@ -220,12 +220,22 @@ FspHeaderFound:
|
||||||
jmp eax
|
jmp eax
|
||||||
|
|
||||||
TempRamInitDone:
|
TempRamInitDone:
|
||||||
cmp eax, 0
|
cmp eax, 8000000Eh ;Check if EFI_NOT_FOUND returned. Error code for Microcode Update not found.
|
||||||
|
je CallSecFspInit ;If microcode not found, don't hang, but continue.
|
||||||
|
|
||||||
|
cmp eax, 0 ;Check if EFI_SUCCESS retuned.
|
||||||
jnz FspApiFailed
|
jnz FspApiFailed
|
||||||
|
|
||||||
; ECX: start of range
|
; ECX: start of range
|
||||||
; EDX: end of range
|
; EDX: end of range
|
||||||
|
CallSecFspInit:
|
||||||
|
xor eax, eax
|
||||||
mov esp, edx
|
mov esp, edx
|
||||||
|
|
||||||
|
; Align the stack at DWORD
|
||||||
|
add esp, 3
|
||||||
|
and esp, 0FFFFFFFCh
|
||||||
|
|
||||||
push edx
|
push edx
|
||||||
push ecx
|
push ecx
|
||||||
push eax ; zero - no hob list yet
|
push eax ; zero - no hob list yet
|
||||||
|
|
Loading…
Reference in New Issue