summaryrefslogtreecommitdiff
path: root/ReferenceCode/Haswell/SampleCode/SecCore/Sec/Ia32/ResetVec.asm
blob: 54376e5750738ac804ddb133564194f3579418e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
;
; This file contains a 'Sample Driver' and is licensed as such  
; under the terms of your license agreement with Intel or your  
; vendor.  This file may be modified by the user, subject to    
; the additional terms of the license agreement 
;
;------------------------------------------------------------------------------
;
; Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
; This software and associated documentation (if any) is furnished
; under a license and may only be used or copied in accordance
; with the terms of the license. Except as permitted by such
; license, no part of this software or documentation may be
; reproduced, stored in a retrieval system, or transmitted in any
; form or by any means without the express written consent of
; Intel Corporation.

;  
; Module Name:
;
;  ResetVec.asm
; 
; Abstract:
; 
;  Reset Vector Data structure
;  This structure is located at 0xFFFFFFC0
;
;------------------------------------------------------------------------------

                .model tiny
    .686p
    .stack  0h
    .code

_TEXT_REALMODE  SEGMENT PARA PUBLIC USE16 'CODE'
                ASSUME  CS:_TEXT_REALMODE, DS:_TEXT_REALMODE
        
                ORG     0h             
;    
; FIT table pointer for LT-SX.
;
FitTablePointer         DD 0eeeeeeeeh, 0eeeeeeeeh

    ORG     10h
;
; This is located at 0xFFFFFFD0h
; 
    mov     di, "AP"
    jmp     ApStartup
              
    ORG     20h
;
; Pointer to the entry point of the PEI core
; It is located at 0xFFFFFFE0, and is fixed up by some build tool
; So if the value 8..1 appears in the final FD image, tool failure occurs.
;
PeiCoreEntryPoint       DD      87654321h

;
; This is the handler for all kinds of exceptions. Since it's for debugging
; purpose only, nothing except a deadloop would be done here. Developers could
; analyze the cause of the exception if a debugger had been attached.
;
InterruptHandler    PROC
    jmp     $
    iret
InterruptHandler    ENDP

    ORG     30h
;
; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte
; Execution starts here upon power-on/platform-reset.
;
ResetHandler:
    nop
    nop
ApStartup:                
                ;
                ; Jmp Rel16 instruction
                ; Use machine code directly in case of the assembler optimization
                ; SEC entry point relatvie address will be fixed up by some build tool.
                ; 
  
    DB      0e9h
    DW      -3
                

    ORG     38h
;
; Ap reset vector segment address is at 0xFFFFFFF8
; This will be fixed up by some build tool,
; so if the value 1..8 appears in the final FD image,
; tool failure occurs
;
ApSegAddress    dd      12345678h

    ORG     3ch
;
; BFV Base is at 0xFFFFFFFC
; This will be fixed up by some build tool,
; so if the value 1..8 appears in the final FD image, 
; tool failure occurs.
;
BfvBase     DD      12345678h

_TEXT_REALMODE  ENDS

                END