]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/FspSecCore/Ia32/FspHelper.asm
IntelFspPkg/FspSecCore add AsmGetFspBaseAddressNoStack and AsmGetFspInfoHeaderNoStack
[mirror_edk2.git] / IntelFspPkg / FspSecCore / Ia32 / FspHelper.asm
index 8efea01aae8780acc554af00d0228c1c5febb078..b991386c77c68217631feac8742ea86f2d54c5b3 100644 (file)
     .model  flat,C\r
     .code\r
 \r
+;\r
+; FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the  AsmGetFspBaseAddress \r
+; from the FSP Info header. \r
+;\r
 FspInfoHeaderRelativeOff    PROC      NEAR    PUBLIC\r
    ;\r
    ; This value will be pached by the build script\r
@@ -22,6 +26,11 @@ FspInfoHeaderRelativeOff    PROC      NEAR    PUBLIC
    DD    012345678h\r
 FspInfoHeaderRelativeOff    ENDP\r
 \r
+;\r
+; Returns FSP Base Address. \r
+;\r
+; This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure\r
+;\r
 AsmGetFspBaseAddress        PROC      NEAR    PUBLIC\r
    mov   eax, AsmGetFspBaseAddress\r
    sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
@@ -30,10 +39,35 @@ AsmGetFspBaseAddress        PROC      NEAR    PUBLIC
    ret\r
 AsmGetFspBaseAddress        ENDP\r
 \r
+;\r
+; No stack counter part of AsmGetFspBaseAddress. Return address is in edi.\r
+;\r
+AsmGetFspBaseAddressNoStack    PROC      NEAR    PUBLIC\r
+   mov   eax, AsmGetFspBaseAddress\r
+   sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
+   add   eax, 01Ch   \r
+   mov   eax, dword ptr [eax]\r
+   jmp   edi\r
+AsmGetFspBaseAddressNoStack    ENDP\r
+\r
+;\r
+; Returns FSP Info Header. \r
+;\r
+; This function gets the FSP Info Header using relative addressing and returns it\r
+;\r
 AsmGetFspInfoHeader         PROC      NEAR    PUBLIC\r
    mov   eax, AsmGetFspBaseAddress\r
    sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
    ret\r
 AsmGetFspInfoHeader         ENDP\r
 \r
+;\r
+; No stack counter part of AsmGetFspInfoHeader. Return address is in edi.\r
+;\r
+AsmGetFspInfoHeaderNoStack         PROC      NEAR    PUBLIC\r
+   mov   eax, AsmGetFspBaseAddress\r
+   sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
+   jmp   edi\r
+AsmGetFspInfoHeaderNoStack         ENDP\r
+\r
      END
\ No newline at end of file