\r
check_address:\r
; Is valid Microcode start point ?\r
- cmp dword ptr [esi], 0ffffffffh\r
+ cmp dword ptr [esi].ucode_hdr.version, 0ffffffffh\r
jz done\r
\r
+ ; Is automatic size detection ?\r
+ mov eax, [esp].LOAD_UCODE_PARAMS.ucode_code_size\r
+ cmp eax, 0ffffffffh\r
+ jz @f\r
+\r
; Address >= microcode region address + microcode region size?\r
- mov eax, [esp].LOAD_UCODE_PARAMS.ucode_code_addr\r
- add eax, [esp].LOAD_UCODE_PARAMS.ucode_code_size\r
+ add eax, [esp].LOAD_UCODE_PARAMS.ucode_code_addr\r
cmp esi, eax\r
jae done ;Jif address is outside of ucode region\r
jmp check_main_header\r
\r
+@@:\r
load_check:\r
; Get the revision of the current microcode update loaded\r
mov ecx, MSR_IA32_BIOS_SIGN_ID\r