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 ; 32 ReservedData 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 ; 47 PeiCoreEntryPoint 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 ; 54 InterruptHandler PROC 55 jmp $ 56 iret 57 InterruptHandler 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 ; 64 ResetHandler: 65 nop 66 nop 67 68 ApStartup: 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 ; 88 ApSegAddress 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 ; 97 BfvBase DD 12345678h 98 99 ; 100 ; Nothing can go here, otherwise the layout of this file would change. 101 ; 102 103 END 104