]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm
IntelFsp2Pkg: Locate FSP Info Header dynamically
[mirror_edk2.git] / IntelFsp2Pkg / FspSecCore / Ia32 / FspHelper.nasm
index 00e953b4f100e5e7553f5a531606700342a3bc7e..43eac973a25f6bce83d8dc8ecd0da3b0a72b352b 100644 (file)
     SECTION .text\r
 \r
 global ASM_PFX(FspInfoHeaderRelativeOff)\r
-ASM_PFX(FspInfoHeaderRelativeOff):\r
-   ;\r
-   ; This value will be pached by the build script\r
-   ;\r
-   DD    0x12345678\r
 \r
 global ASM_PFX(AsmGetFspBaseAddress)\r
 ASM_PFX(AsmGetFspBaseAddress):\r
-   mov   eax, ASM_PFX(AsmGetFspInfoHeader)\r
-   sub   eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]\r
+   call  ASM_PFX(AsmGetFspInfoHeader)\r
    add   eax, 0x1C\r
    mov   eax, dword [eax]\r
    ret\r
 \r
 global ASM_PFX(AsmGetFspInfoHeader)\r
 ASM_PFX(AsmGetFspInfoHeader):\r
-   mov   eax, ASM_PFX(AsmGetFspInfoHeader)\r
-   sub   eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]\r
+   call  ASM_PFX(NextInstruction)\r
+ASM_PFX(NextInstruction):\r
+   pop   eax\r
+   sub   eax, ASM_PFX(NextInstruction)\r
+   add   eax, ASM_PFX(AsmGetFspInfoHeader)\r
+   DB    02Dh                                               ; opcode of sub eax, imm32\r
+ASM_PFX(FspInfoHeaderRelativeOff):    DD    0x12345678      ; sub eax, FspInfoHeaderRelativeOff\r
    ret\r