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 <[email protected]> Cc: Jiewen Yao <[email protected]> Cc: Giri P Mudusuru <[email protected]> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Satya Yarlagadda <[email protected]> --- IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm b/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm index 00e953b..7d5fa5e 100644 --- a/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm +++ b/IntelFsp2Pkg/FspSecCore/Ia32/FspHelper.nasm @@ -14,22 +14,22 @@ 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) + ;sub eax, 012345678h + DB 02Dh +ASM_PFX(FspInfoHeaderRelativeOff): DD 0x12345678 ret -- 2.9.2.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

