]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFspWrapperPkg/FspWrapperSecCore/Ia32/ResetVec.asm16
IntelFspWrapperPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / IntelFspWrapperPkg / FspWrapperSecCore / Ia32 / ResetVec.asm16
CommitLineData
a33a2f62
JY
1;------------------------------------------------------------------------------\r
2;\r
3; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
19486360 4; SPDX-License-Identifier: BSD-2-Clause-Patent\r
a33a2f62
JY
5;\r
6; Module Name:\r
7;\r
8; ResetVec.asm\r
9;\r
10; Abstract:\r
11;\r
12; Reset Vector Data structure\r
13; This structure is located at 0xFFFFFFC0\r
14;\r
15;------------------------------------------------------------------------------\r
16\r
17 .model tiny\r
18 .686p\r
19 .stack 0h\r
20 .code\r
21\r
22;\r
23; The layout of this file is fixed. The build tool makes assumption of the layout.\r
24;\r
25\r
26 ORG 0h\r
27;\r
28; Reserved\r
29;\r
30ReservedData DD 0eeeeeeeeh, 0eeeeeeeeh\r
31\r
32 ORG 10h\r
33;\r
34; This is located at 0xFFFFFFD0h\r
35;\r
36 mov di, "AP"\r
37 jmp ApStartup\r
38\r
39 ORG 20h\r
40;\r
41; Pointer to the entry point of the PEI core\r
42; It is located at 0xFFFFFFE0, and is fixed up by some build tool\r
43; So if the value 8..1 appears in the final FD image, tool failure occurs.\r
44;\r
45PeiCoreEntryPoint DD 87654321h\r
46\r
47;\r
48; This is the handler for all kinds of exceptions. Since it's for debugging\r
49; purpose only, nothing except a deadloop would be done here. Developers could\r
50; analyze the cause of the exception if a debugger had been attached.\r
51;\r
52InterruptHandler PROC\r
53 jmp $\r
54 iret\r
55InterruptHandler ENDP\r
56\r
57 ORG 30h\r
58;\r
59; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte\r
60; Execution starts here upon power-on/platform-reset.\r
61;\r
62ResetHandler:\r
63 nop\r
64 nop\r
65ApStartup:\r
66 ;\r
67 ; Jmp Rel16 instruction\r
68 ; Use machine code directly in case of the assembler optimization\r
69 ; SEC entry point relatvie address will be fixed up by some build tool.\r
70 ;\r
71 ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in\r
72 ; SecEntry.asm\r
73 ;\r
74 DB 0e9h\r
75 DW -3\r
76\r
77\r
78 ORG 38h\r
79;\r
80; Ap reset vector segment address is at 0xFFFFFFF8\r
81; This will be fixed up by some build tool,\r
82; so if the value 1..8 appears in the final FD image,\r
83; tool failure occurs\r
84;\r
85ApSegAddress dd 12345678h\r
86\r
87 ORG 3ch\r
88;\r
89; BFV Base is at 0xFFFFFFFC\r
90; This will be fixed up by some build tool,\r
91; so if the value 1..8 appears in the final FD image,\r
92; tool failure occurs.\r
93;\r
94BfvBase DD 12345678h\r
95\r
96;\r
97; Nothing can go here, otherwise the layout of this file would change.\r
98;\r
99\r
100 END\r