EXTERN GetFspBaseAddress:PROC\r
EXTERN GetBootFirmwareVolumeOffset:PROC\r
EXTERN Pei2LoaderSwitchStack:PROC\r
-EXTERN FspSelfCheck(FspSelfCheckDflt):PROC\r
-EXTERN PlatformBasicInit(PlatformBasicInitDflt):PROC\r
-EXTERN LoadUcode(LoadUcodeDflt):PROC\r
-EXTERN SecPlatformInit:PROC\r
+EXTERN FspSelfCheck(FspSelfCheckDefault):PROC\r
+EXTERN LoadUcode(LoadUcodeDefault):PROC\r
+EXTERN SecPlatformInit(SecPlatformInitDefault):PROC\r
EXTERN SecCarInit:PROC\r
\r
;\r
ENDM\r
\r
;------------------------------------------------------------------------------\r
-FspSelfCheckDflt PROC NEAR PUBLIC\r
+FspSelfCheckDefault PROC NEAR PUBLIC\r
; Inputs:\r
; eax -> Return address\r
; Outputs:\r
xor eax, eax\r
exit:\r
jmp ebp\r
-FspSelfCheckDflt ENDP\r
+FspSelfCheckDefault ENDP\r
\r
;------------------------------------------------------------------------------\r
-PlatformBasicInitDflt PROC NEAR PUBLIC\r
+SecPlatformInitDefault PROC NEAR PUBLIC\r
; Inputs:\r
; eax -> Return address\r
; Outputs:\r
xor eax, eax\r
exit:\r
jmp ebp\r
-PlatformBasicInitDflt ENDP\r
+SecPlatformInitDefault ENDP\r
\r
;------------------------------------------------------------------------------\r
-LoadUcodeDflt PROC NEAR PUBLIC\r
+LoadUcodeDefault PROC NEAR PUBLIC\r
; Inputs:\r
; esp -> LOAD_UCODE_PARAMS pointer\r
; Register Usage:\r
exit:\r
jmp ebp\r
\r
-LoadUcodeDflt ENDP\r
+LoadUcodeDefault ENDP\r
\r
EstablishStackFsp PROC NEAR PRIVATE\r
- ; Following is the code copied from BYTFSP, need to figure out what it is doing..\r
;\r
; Save parameter pointer in edx \r
;\r
;\r
push DATA_LEN_OF_PER0 ; Size of the data region \r
push 30524550h ; Signature of the data region 'PER0'\r
- movd eax, xmm4\r
- push eax\r
- movd eax, xmm5\r
+ LOAD_EDX\r
+ push edx\r
+ LOAD_EAX\r
push eax\r
rdtsc\r
push edx\r
; Save timestamp into XMM4 & XMM5\r
;\r
rdtsc\r
- movd xmm4, edx\r
- movd xmm5, eax\r
- \r
+ SAVE_EAX\r
+ SAVE_EDX\r
+\r
+ ;\r
+ ; Check Parameter\r
+ ;\r
+ mov eax, dword ptr [esp + 4]\r
+ cmp eax, 0\r
+ mov eax, 80000002h\r
+ jz NemInitExit\r
+\r
;\r
; CPUID/DeviceID check\r
;\r
jnz NemInitExit\r
\r
CALL_MMX SecPlatformInit\r
-\r
- ; Call Sec CAR Init\r
- CALL_MMX SecCarInit\r
+ cmp eax, 0\r
+ jnz NemInitExit\r
\r
- ; @todo: ESP has been modified, we need to restore here.\r
- LOAD_REGS\r
- SAVE_REGS\r
; Load microcode\r
+ LOAD_ESP\r
CALL_MMX LoadUcode\r
+ cmp eax, 0\r
+ jnz NemInitExit\r
+\r
+ ; Call Sec CAR Init\r
+ LOAD_ESP\r
+ CALL_MMX SecCarInit\r
+ cmp eax, 0\r
+ jnz NemInitExit\r
\r
+ LOAD_ESP\r
CALL_MMX EstablishStackFsp\r
\r
NemInitExit:\r