summaryrefslogtreecommitdiff
path: root/OvmfPkg/ResetVector/Ia32/PageTables64.asm
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2016-12-22 18:26:27 +0800
committerGuo Mang <mang.guo@intel.com>2016-12-26 19:15:00 +0800
commit6749969917f3137d8f8af06b9407aac179a108b8 (patch)
treed0b4e8db56bab9e784b8d55c37843f25c95e72ef /OvmfPkg/ResetVector/Ia32/PageTables64.asm
parentdbf97f39d93345d8a21f6837418cbf525c08dc48 (diff)
downloadedk2-platforms-6749969917f3137d8f8af06b9407aac179a108b8.tar.xz
OvmfPkg: Remove unused Package
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'OvmfPkg/ResetVector/Ia32/PageTables64.asm')
-rw-r--r--OvmfPkg/ResetVector/Ia32/PageTables64.asm93
1 files changed, 0 insertions, 93 deletions
diff --git a/OvmfPkg/ResetVector/Ia32/PageTables64.asm b/OvmfPkg/ResetVector/Ia32/PageTables64.asm
deleted file mode 100644
index b5a4cf8d71..0000000000
--- a/OvmfPkg/ResetVector/Ia32/PageTables64.asm
+++ /dev/null
@@ -1,93 +0,0 @@
-;------------------------------------------------------------------------------
-; @file
-; Sets the CR3 register for 64-bit paging
-;
-; Copyright (c) 2008 - 2013, 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.
-;
-;------------------------------------------------------------------------------
-
-BITS 32
-
-%define PAGE_PRESENT 0x01
-%define PAGE_READ_WRITE 0x02
-%define PAGE_USER_SUPERVISOR 0x04
-%define PAGE_WRITE_THROUGH 0x08
-%define PAGE_CACHE_DISABLE 0x010
-%define PAGE_ACCESSED 0x020
-%define PAGE_DIRTY 0x040
-%define PAGE_PAT 0x080
-%define PAGE_GLOBAL 0x0100
-%define PAGE_2M_MBO 0x080
-%define PAGE_2M_PAT 0x01000
-
-%define PAGE_2M_PDE_ATTR (PAGE_2M_MBO + \
- PAGE_ACCESSED + \
- PAGE_DIRTY + \
- PAGE_READ_WRITE + \
- PAGE_PRESENT)
-
-%define PAGE_PDP_ATTR (PAGE_ACCESSED + \
- PAGE_READ_WRITE + \
- PAGE_PRESENT)
-
-
-;
-; Modified: EAX, ECX
-;
-SetCr3ForPageTables64:
-
- ;
- ; For OVMF, build some initial page tables at 0x800000-0x806000.
- ;
- ; This range should match with PcdOvmfSecPageTablesBase and
- ; PcdOvmfSecPageTablesSize which are declared in the FDF files.
- ;
- ; At the end of PEI, the pages tables will be rebuilt into a
- ; more permanent location by DxeIpl.
- ;
-
- mov ecx, 6 * 0x1000 / 4
- xor eax, eax
-clearPageTablesMemoryLoop:
- mov dword[ecx * 4 + 0x800000 - 4], eax
- loop clearPageTablesMemoryLoop
-
- ;
- ; Top level Page Directory Pointers (1 * 512GB entry)
- ;
- mov dword[0x800000], 0x801000 + PAGE_PDP_ATTR
-
- ;
- ; Next level Page Directory Pointers (4 * 1GB entries => 4GB)
- ;
- mov dword[0x801000], 0x802000 + PAGE_PDP_ATTR
- mov dword[0x801008], 0x803000 + PAGE_PDP_ATTR
- mov dword[0x801010], 0x804000 + PAGE_PDP_ATTR
- mov dword[0x801018], 0x805000 + PAGE_PDP_ATTR
-
- ;
- ; Page Table Entries (2048 * 2MB entries => 4GB)
- ;
- mov ecx, 0x800
-pageTableEntriesLoop:
- mov eax, ecx
- dec eax
- shl eax, 21
- add eax, PAGE_2M_PDE_ATTR
- mov [ecx * 8 + 0x802000 - 8], eax
- loop pageTableEntriesLoop
-
- ;
- ; Set CR3 now that the paging structures are available
- ;
- mov eax, 0x800000
- mov cr3, eax
-
- OneTimeCallRet SetCr3ForPageTables64