]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm
UefiCpuPkg: Supporting S3 in 64bit PEI
[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 ; SPDX-License-Identifier: BSD-2-Clause-Patent
7 ;
8 ;------------------------------------------------------------------------------
9
10 BITS 16
11
12 ALIGN 16
13
14 ;
15 ; Pad the image size to 4k when page tables are in VTF0
16 ;
17 ; If the VTF0 image has page tables built in, then we need to make
18 ; sure the end of VTF0 is 4k above where the page tables end.
19 ;
20 ; This is required so the page tables will be 4k aligned when VTF0 is
21 ; located just below 0x100000000 (4GB) in the firmware device.
22 ;
23 %ifdef ALIGN_TOP_TO_4K_FOR_PAGING
24 TIMES (0x1000 - ($ - EndOfPageTables)) DB 0
25 ;
26 ; Pad the VTF0 Reset code for Bsp & Ap to 4k aligned block.
27 ; Some implementations may need to keep the initial Reset code
28 ; to be separated out from rest of the code.
29 ; This padding will make sure lower 4K region below 4 GB may
30 ; only contains few jmp instructions and data.
31 ;
32 TIMES (0x1000 - 0x20) DB 0
33 %endif
34
35 applicationProcessorEntryPoint:
36 ;
37 ; Application Processors entry point
38 ;
39 ; GenFv generates code aligned on a 4k boundary which will jump to this
40 ; location. (0xffffffe0) This allows the Local APIC Startup IPI to be
41 ; used to wake up the application processors.
42 ;
43 jmp EarlyApInitReal16
44
45 ALIGN 8
46
47 DD 0
48
49 ;
50 ; The VTF signature
51 ;
52 ; VTF-0 means that the VTF (Volume Top File) code does not require
53 ; any fixups.
54 ;
55 vtfSignature:
56 DB 'V', 'T', 'F', 0
57
58 ALIGN 16
59
60 resetVector:
61 ;
62 ; Reset Vector
63 ;
64 ; This is where the processor will begin execution
65 ;
66 nop
67 nop
68 jmp EarlyBspInitReal16
69
70 ALIGN 16
71
72 fourGigabytes:
73