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:
Yao, Jiewen 2015-10-27 04:00:08 +00:00 committed by jyao1
parent d2de448338
commit e620b72924
2 changed files with 21 additions and 1 deletions

View File

@ -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

View File

@ -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