]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/FspSecCore/Ia32/FspApiEntry.asm
Fix build error.
[mirror_edk2.git] / IntelFspPkg / FspSecCore / Ia32 / FspApiEntry.asm
index 6c330833e047e19204a819cdc9e2fac25d55b68b..a7249599e20334444f25939dbc075018b77d68a1 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
@@ -58,19 +57,19 @@ DATA_LEN_AT_STACK_TOP    EQU   (DATA_LEN_OF_PER0 + DATA_LEN_OF_MCUD + 4)
 ;\r
 LOAD_MMX_EXT MACRO   ReturnAddress, MmxRegister\r
   mov     esi, ReturnAddress\r
-  movd    MmxRegister, esi              ; save ReturnAddress into MM7  \r
+  movd    MmxRegister, esi              ; save ReturnAddress into MMX\r
 ENDM\r
 \r
 CALL_MMX_EXT MACRO   RoutineLabel, MmxRegister\r
   local   ReturnAddress\r
   mov     esi, offset ReturnAddress\r
-  movd    MmxRegister, esi              ; save ReturnAddress into MM7\r
+  movd    MmxRegister, esi              ; save ReturnAddress into MMX\r
   jmp     RoutineLabel\r
 ReturnAddress:\r
 ENDM\r
 \r
 RET_ESI_EXT  MACRO   MmxRegister\r
-  movd    esi, MmxRegister              ; restore ESP from MM7\r
+  movd    esi, MmxRegister              ; restore ESP from MMX\r
   jmp     esi\r
 ENDM\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,28 +97,28 @@ 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
+   ;   mm7 -> Return address\r
    ; Outputs:\r
    ;   eax -> 0 - Successful, Non-zero - Failed.\r
    ; Register Usage:\r
    ;   eax is cleared and ebp is used for return address.\r
    ;   All others reserved.\r
-\r
+   \r
    ; Save return address to EBP\r
-   mov   ebp, eax\r
+   movd  ebp, mm7\r
 \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
@@ -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
@@ -384,12 +382,20 @@ TempRamInitApi   PROC    NEAR    PUBLIC
   SAVE_REGS\r
 \r
   ;\r
-  ; Save timestamp into XMM4 & XMM5\r
+  ; Save timestamp into XMM6\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