2 ; Provide FSP helper function.
4 ; Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5 ; SPDX-License-Identifier: BSD-2-Clause-Patent
13 ; FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the AsmGetFspBaseAddress
14 ; from the FSP Info header.
16 FspInfoHeaderRelativeOff PROC NEAR PUBLIC
18 ; This value will be pached by the build script
21 FspInfoHeaderRelativeOff ENDP
24 ; Returns FSP Base Address.
26 ; This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure
28 AsmGetFspBaseAddress PROC NEAR PUBLIC
29 mov eax, AsmGetFspBaseAddress
30 sub eax, dword ptr [FspInfoHeaderRelativeOff]
32 mov eax, dword ptr [eax]
34 AsmGetFspBaseAddress ENDP
37 ; No stack counter part of AsmGetFspBaseAddress. Return address is in edi.
39 AsmGetFspBaseAddressNoStack PROC NEAR PUBLIC
40 mov eax, AsmGetFspBaseAddress
41 sub eax, dword ptr [FspInfoHeaderRelativeOff]
43 mov eax, dword ptr [eax]
45 AsmGetFspBaseAddressNoStack ENDP
48 ; Returns FSP Info Header.
50 ; This function gets the FSP Info Header using relative addressing and returns it
52 AsmGetFspInfoHeader PROC NEAR PUBLIC
53 mov eax, AsmGetFspBaseAddress
54 sub eax, dword ptr [FspInfoHeaderRelativeOff]
56 AsmGetFspInfoHeader ENDP
59 ; No stack counter part of AsmGetFspInfoHeader. Return address is in edi.
61 AsmGetFspInfoHeaderNoStack PROC NEAR PUBLIC
62 mov eax, AsmGetFspBaseAddress
63 sub eax, dword ptr [FspInfoHeaderRelativeOff]
65 AsmGetFspInfoHeaderNoStack ENDP