]>
Commit | Line | Data |
---|---|---|
9da59186 JY |
1 | ;; @file\r |
2 | ; Provide FSP helper function.\r | |
3 | ;\r | |
4 | ; Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r | |
16a16ea6 | 5 | ; SPDX-License-Identifier: BSD-2-Clause-Patent\r |
9da59186 JY |
6 | ;;\r |
7 | \r | |
8 | .586p\r | |
9 | .model flat,C\r | |
10 | .code\r | |
11 | \r | |
f0abe42f JY |
12 | ;\r |
13 | ; FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the AsmGetFspBaseAddress \r | |
14 | ; from the FSP Info header. \r | |
15 | ;\r | |
3b17b245 | 16 | FspInfoHeaderRelativeOff PROC NEAR PUBLIC\r |
9da59186 JY |
17 | ;\r |
18 | ; This value will be pached by the build script\r | |
19 | ;\r | |
20 | DD 012345678h\r | |
21 | FspInfoHeaderRelativeOff ENDP\r | |
22 | \r | |
f0abe42f JY |
23 | ;\r |
24 | ; Returns FSP Base Address. \r | |
25 | ;\r | |
26 | ; This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure\r | |
27 | ;\r | |
16b7e82c JY |
28 | AsmGetFspBaseAddress PROC NEAR PUBLIC\r |
29 | mov eax, AsmGetFspBaseAddress\r | |
9da59186 JY |
30 | sub eax, dword ptr [FspInfoHeaderRelativeOff]\r |
31 | add eax, 01Ch\r | |
32 | mov eax, dword ptr [eax]\r | |
33 | ret\r | |
16b7e82c | 34 | AsmGetFspBaseAddress ENDP\r |
9da59186 | 35 | \r |
f0abe42f JY |
36 | ;\r |
37 | ; No stack counter part of AsmGetFspBaseAddress. Return address is in edi.\r | |
38 | ;\r | |
39 | AsmGetFspBaseAddressNoStack PROC NEAR PUBLIC\r | |
40 | mov eax, AsmGetFspBaseAddress\r | |
41 | sub eax, dword ptr [FspInfoHeaderRelativeOff]\r | |
42 | add eax, 01Ch \r | |
43 | mov eax, dword ptr [eax]\r | |
44 | jmp edi\r | |
45 | AsmGetFspBaseAddressNoStack ENDP\r | |
46 | \r | |
47 | ;\r | |
48 | ; Returns FSP Info Header. \r | |
49 | ;\r | |
50 | ; This function gets the FSP Info Header using relative addressing and returns it\r | |
51 | ;\r | |
16b7e82c JY |
52 | AsmGetFspInfoHeader PROC NEAR PUBLIC\r |
53 | mov eax, AsmGetFspBaseAddress\r | |
3b17b245 MM |
54 | sub eax, dword ptr [FspInfoHeaderRelativeOff]\r |
55 | ret\r | |
16b7e82c | 56 | AsmGetFspInfoHeader ENDP\r |
3b17b245 | 57 | \r |
f0abe42f JY |
58 | ;\r |
59 | ; No stack counter part of AsmGetFspInfoHeader. Return address is in edi.\r | |
60 | ;\r | |
61 | AsmGetFspInfoHeaderNoStack PROC NEAR PUBLIC\r | |
62 | mov eax, AsmGetFspBaseAddress\r | |
63 | sub eax, dword ptr [FspInfoHeaderRelativeOff]\r | |
64 | jmp edi\r | |
65 | AsmGetFspInfoHeaderNoStack ENDP\r | |
66 | \r | |
9da59186 | 67 | END |