mirror of https://github.com/acidanthera/audk.git
IntelFsp2Pkg: Locate FSP Info Header dynamically
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>
This commit is contained in:
parent
d54e2d6c1e
commit
8265373e60
|
@ -14,22 +14,21 @@
|
|||
SECTION .text
|
||||
|
||||
global ASM_PFX(FspInfoHeaderRelativeOff)
|
||||
ASM_PFX(FspInfoHeaderRelativeOff):
|
||||
;
|
||||
; This value will be pached by the build script
|
||||
;
|
||||
DD 0x12345678
|
||||
|
||||
global ASM_PFX(AsmGetFspBaseAddress)
|
||||
ASM_PFX(AsmGetFspBaseAddress):
|
||||
mov eax, ASM_PFX(AsmGetFspInfoHeader)
|
||||
sub eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]
|
||||
call ASM_PFX(AsmGetFspInfoHeader)
|
||||
add eax, 0x1C
|
||||
mov eax, dword [eax]
|
||||
ret
|
||||
|
||||
global ASM_PFX(AsmGetFspInfoHeader)
|
||||
ASM_PFX(AsmGetFspInfoHeader):
|
||||
mov eax, ASM_PFX(AsmGetFspInfoHeader)
|
||||
sub eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]
|
||||
call ASM_PFX(NextInstruction)
|
||||
ASM_PFX(NextInstruction):
|
||||
pop eax
|
||||
sub eax, ASM_PFX(NextInstruction)
|
||||
add eax, ASM_PFX(AsmGetFspInfoHeader)
|
||||
DB 02Dh ; opcode of sub eax, imm32
|
||||
ASM_PFX(FspInfoHeaderRelativeOff): DD 0x12345678 ; sub eax, FspInfoHeaderRelativeOff
|
||||
ret
|
||||
|
|
Loading…
Reference in New Issue