]> git.proxmox.com Git - mirror_edk2.git/commitdiff
IntelFsp2Pkg: Locate FSP Info Header dynamically
authorYarlagadda, Satya P <satya.p.yarlagadda@intel.com>
Mon, 1 Aug 2016 11:41:34 +0000 (19:41 +0800)
committerJiewen Yao <jiewen.yao@intel.com>
Tue, 2 Aug 2016 13:12:54 +0000 (21:12 +0800)
we need to locate the FSP Info Header by calculating offset dynamically to
handle the scenario of FSP component is being rebased to different location.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Satya Yarlagadda <satya.p.yarlagadda@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
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