• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1;------------------------------------------------------------------------------
2;
3; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
4; This program and the accompanying materials
5; are licensed and made available under the terms and conditions of the BSD License
6; which accompanies this distribution.  The full text of the license may be found at
7; http://opensource.org/licenses/bsd-license.php.
8;
9; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11;
12; Abstract:
13;
14;  Reset Vector Data structure
15;  This structure is located at 0xFFFFFFC0
16;
17;------------------------------------------------------------------------------
18
19    .model  tiny
20    .686p
21    .stack  0h
22    .code
23
24;
25; The layout of this file is fixed. The build tool makes assumption of the layout.
26;
27
28    ORG     0h
29;
30; Reserved
31;
32ReservedData         DD 0eeeeeeeeh, 0eeeeeeeeh
33
34    ORG     10h
35;
36; This is located at 0xFFFFFFD0h
37;
38    mov     di, "AP"
39    jmp     ApStartup
40
41    ORG     20h
42;
43; Pointer to the entry point of the PEI core
44; It is located at 0xFFFFFFE0, and is fixed up by some build tool
45; So if the value 8..1 appears in the final FD image, tool failure occurs.
46;
47PeiCoreEntryPoint       DD      12345678h
48
49;
50; This is the handler for all kinds of exceptions. Since it's for debugging
51; purpose only, nothing except a deadloop would be done here. Developers could
52; analyze the cause of the exception if a debugger had been attached.
53;
54InterruptHandler    PROC
55    jmp     $
56    iret
57InterruptHandler    ENDP
58
59    ORG     30h
60;
61; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte
62; Execution starts here upon power-on/platform-reset.
63;
64ResetHandler:
65    nop
66    nop
67
68ApStartup:
69    ;
70    ; Jmp Rel16 instruction
71    ; Use machine code directly in case of the assembler optimization
72    ; SEC entry point relatvie address will be fixed up by some build tool.
73    ;
74    ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in
75    ; SecEntry.asm
76    ;
77    DB      0e9h
78    DW      -3
79
80
81    ORG     38h
82;
83; Ap reset vector segment address is at 0xFFFFFFF8
84; This will be fixed up by some build tool,
85; so if the value 1..8 appears in the final FD image,
86; tool failure occurs
87;
88ApSegAddress    dd      12345678h
89
90    ORG     3ch
91;
92; BFV Base is at 0xFFFFFFFC
93; This will be fixed up by some build tool,
94; so if the value 1..8 appears in the final FD image,
95; tool failure occurs.
96;
97BfvBase     DD      12345678h
98
99;
100; Nothing can go here, otherwise the layout of this file would change.
101;
102
103    END
104