]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
UefiCpuPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / UefiCpuPkg / ResetVector / Vtf0 / X64 / PageTables.asm
... / ...
CommitLineData
1;------------------------------------------------------------------------------\r
2; @file\r
3; Emits Page Tables for 1:1 mapping of the addresses 0 - 0x100000000 (4GB)\r
4;\r
5; Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR>\r
6; SPDX-License-Identifier: BSD-2-Clause-Patent\r
7;\r
8;------------------------------------------------------------------------------\r
9\r
10BITS 64\r
11\r
12%define ALIGN_TOP_TO_4K_FOR_PAGING\r
13\r
14%define PAGE_PRESENT 0x01\r
15%define PAGE_READ_WRITE 0x02\r
16%define PAGE_USER_SUPERVISOR 0x04\r
17%define PAGE_WRITE_THROUGH 0x08\r
18%define PAGE_CACHE_DISABLE 0x010\r
19%define PAGE_ACCESSED 0x020\r
20%define PAGE_DIRTY 0x040\r
21%define PAGE_PAT 0x080\r
22%define PAGE_GLOBAL 0x0100\r
23%define PAGE_2M_MBO 0x080\r
24%define PAGE_2M_PAT 0x01000\r
25\r
26%define PAGE_2M_PDE_ATTR (PAGE_2M_MBO + \\r
27 PAGE_ACCESSED + \\r
28 PAGE_DIRTY + \\r
29 PAGE_READ_WRITE + \\r
30 PAGE_PRESENT)\r
31\r
32%define PAGE_PDP_ATTR (PAGE_ACCESSED + \\r
33 PAGE_READ_WRITE + \\r
34 PAGE_PRESENT)\r
35\r
36%define PGTBLS_OFFSET(x) ((x) - TopLevelPageDirectory)\r
37%define PGTBLS_ADDR(x) (ADDR_OF(TopLevelPageDirectory) + (x))\r
38\r
39%define PDP(offset) (ADDR_OF(TopLevelPageDirectory) + (offset) + \\r
40 PAGE_PDP_ATTR)\r
41%define PTE_2MB(x) ((x << 21) + PAGE_2M_PDE_ATTR)\r
42\r
43TopLevelPageDirectory:\r
44\r
45 ;\r
46 ; Top level Page Directory Pointers (1 * 512GB entry)\r
47 ;\r
48 DQ PDP(0x1000)\r
49\r
50\r
51 ;\r
52 ; Next level Page Directory Pointers (4 * 1GB entries => 4GB)\r
53 ;\r
54 TIMES 0x1000-PGTBLS_OFFSET($) DB 0\r
55\r
56 DQ PDP(0x2000)\r
57 DQ PDP(0x3000)\r
58 DQ PDP(0x4000)\r
59 DQ PDP(0x5000)\r
60\r
61 ;\r
62 ; Page Table Entries (2048 * 2MB entries => 4GB)\r
63 ;\r
64 TIMES 0x2000-PGTBLS_OFFSET($) DB 0\r
65\r
66%assign i 0\r
67%rep 0x800\r
68 DQ PTE_2MB(i)\r
69 %assign i i+1\r
70%endrep\r
71\r
72EndOfPageTables:\r