diff options
author | Yarlagadda, Satya P <satya.p.yarlagadda@intel.com> | 2016-08-18 13:20:31 +0800 |
---|---|---|
committer | Jiewen Yao <jiewen.yao@intel.com> | 2016-08-23 08:09:33 +0800 |
commit | 90fadfc00ad773441aeb97718cd9c2e3dc7d2f71 (patch) | |
tree | aa0d89e5147b7d17873a31dda9184d61a9a64c2e /IntelFsp2Pkg/FspSecCore | |
parent | 759be99db5d0d4d5b2eb73e110c701e83bdee7ab (diff) | |
download | edk2-90fadfc00ad773441aeb97718cd9c2e3dc7d2f71.tar.gz edk2-90fadfc00ad773441aeb97718cd9c2e3dc7d2f71.tar.bz2 edk2-90fadfc00ad773441aeb97718cd9c2e3dc7d2f71.zip |
IntelFsp2Pkg: Add function to get FspInfoHeader before stack is ready
we need to locate the FSP Info Header before the stack is initialized to
access the cfg region for any UPD. Hence adding the
AsmGetFspInfoHeaderNoStack function to support it.
Note: This function is there in IntelFspPkg but got removed in IntelFsp2Pkg
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: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Diffstat (limited to 'IntelFsp2Pkg/FspSecCore')
-rw-r--r-- | IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm b/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm index 43eac973a2..a848dcbc02 100644 --- a/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm +++ b/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm @@ -14,6 +14,8 @@ SECTION .text
global ASM_PFX(FspInfoHeaderRelativeOff)
+ASM_PFX(FspInfoHeaderRelativeOff):
+ DD 0x12345678 ; This value must be patched by the build script
global ASM_PFX(AsmGetFspBaseAddress)
ASM_PFX(AsmGetFspBaseAddress):
@@ -29,6 +31,11 @@ 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
+ sub eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]
ret
+
+global ASM_PFX(AsmGetFspInfoHeaderNoStack)
+ASM_PFX(AsmGetFspInfoHeaderNoStack):
+ mov eax, ASM_PFX(AsmGetFspInfoHeader)
+ sub eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]
+ jmp edi
|