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