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