]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm
UefiCpuPkg VTF0 X64: Build page tables in NASM code
[mirror_edk2.git] / UefiCpuPkg / ResetVector / Vtf0 / Ia16 / ResetVectorVtf0.asm
1 ;------------------------------------------------------------------------------
2 ; @file
3 ; First code executed by processor after resetting.
4 ;
5 ; Copyright (c) 2008 - 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 ALIGN 16
19
20 ;
21 ; Pad the image size to 4k when page tables are in VTF0
22 ;
23 ; If the VTF0 image has page tables built in, then we need to make
24 ; sure the end of VTF0 is 4k above where the page tables end.
25 ;
26 ; This is required so the page tables will be 4k aligned when VTF0 is
27 ; located just below 0x100000000 (4GB) in the firmware device.
28 ;
29 %ifdef ALIGN_TOP_TO_4K_FOR_PAGING
30 TIMES (0x1000 - ($ - EndOfPageTables) - 0x20) DB 0
31 %endif
32
33 applicationProcessorEntryPoint:
34 ;
35 ; Application Processors entry point
36 ;
37 ; GenFv generates code aligned on a 4k boundary which will jump to this
38 ; location. (0xffffffe0) This allows the Local APIC Startup IPI to be
39 ; used to wake up the application processors.
40 ;
41 jmp EarlyApInitReal16
42
43 ALIGN 8
44
45 DD 0
46
47 ;
48 ; The VTF signature
49 ;
50 ; VTF-0 means that the VTF (Volume Top File) code does not require
51 ; any fixups.
52 ;
53 vtfSignature:
54 DB 'V', 'T', 'F', 0
55
56 ALIGN 16
57
58 resetVector:
59 ;
60 ; Reset Vector
61 ;
62 ; This is where the processor will begin execution
63 ;
64 nop
65 nop
66 jmp EarlyBspInitReal16
67
68 ALIGN 16
69
70 fourGigabytes:
71