Contributed-under: TianoCore Contribution Agreement 1.0 Signed off by: Jiewen Yao <jiewen.yao@intel.com> Reviewed by: Ravi Rangarajan <ravi.p.rangarajan@intel.com> Reviewed by: Maurice Ma <maurice.ma@intel.com> Reviewed by: Giri Mudusuru <giri.p.mudusuru@intel.com> Reviewed by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15676 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ;------------------------------------------------------------------------------
 | |
| ;
 | |
| ; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
 | |
| ; This program and the accompanying materials
 | |
| ; are licensed and made available under the terms and conditions of the BSD License
 | |
| ; which accompanies this distribution.  The full text of the license may be found at
 | |
| ; http://opensource.org/licenses/bsd-license.php.
 | |
| ;
 | |
| ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| ;
 | |
| ; Module Name:
 | |
| ;
 | |
| ;  ResetVec.asm
 | |
| ;
 | |
| ; Abstract:
 | |
| ;
 | |
| ;  Reset Vector Data structure
 | |
| ;  This structure is located at 0xFFFFFFC0
 | |
| ;
 | |
| ;------------------------------------------------------------------------------
 | |
| 
 | |
|     .model  tiny
 | |
|     .686p
 | |
|     .stack  0h
 | |
|     .code
 | |
| 
 | |
| ;
 | |
| ; The layout of this file is fixed. The build tool makes assumption of the layout.
 | |
| ;
 | |
| 
 | |
|     ORG     0h
 | |
| ;
 | |
| ; Reserved
 | |
| ;
 | |
| ReservedData         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.
 | |
|     ;
 | |
|     ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in
 | |
|     ; SecEntry.asm
 | |
|     ;
 | |
|     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
 | |
| 
 | |
| ;
 | |
| ; Nothing can go here, otherwise the layout of this file would change.
 | |
| ;
 | |
| 
 | |
|     END
 |