Home | History | Annotate | Download | only in Ia16
      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