]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/FspSecCore/Ia32/FspApiEntry.asm
rename XXXDflt to XXXDefault (expand for better readability)
[mirror_edk2.git] / IntelFspPkg / FspSecCore / Ia32 / FspApiEntry.asm
index 6c330833e047e19204a819cdc9e2fac25d55b68b..afe995c8bd011d1980047c5ae4df8b4eb6e639f5 100644 (file)
@@ -40,10 +40,9 @@ EXTERN   FspApiCallingCheck:PROC
 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
@@ -83,7 +82,7 @@ RET_ESI  MACRO
 ENDM\r
 \r
 ;------------------------------------------------------------------------------\r
-FspSelfCheckDflt PROC NEAR PUBLIC\r
+FspSelfCheckDefault PROC NEAR PUBLIC\r
    ; Inputs:\r
    ;   eax -> Return address\r
    ; Outputs:\r
@@ -98,10 +97,10 @@ FspSelfCheckDflt PROC NEAR PUBLIC
    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
@@ -116,10 +115,10 @@ PlatformBasicInitDflt PROC NEAR PUBLIC
    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
@@ -301,10 +300,9 @@ done:
 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
@@ -336,9 +334,9 @@ InvalidMicrocodeRegion:
   ;\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
@@ -387,9 +385,17 @@ TempRamInitApi   PROC    NEAR    PUBLIC
   ; 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
@@ -400,16 +406,22 @@ TempRamInitApi   PROC    NEAR    PUBLIC
   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