From: "Ashraf Ali S" <ashraf.ali.s@intel.com>
To: devel@edk2.groups.io
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>,
Rahul Kumar <rahul1.kumar@intel.com>, Ray Ni <ray.ni@intel.com>,
Catharine West <catharine.west@intel.com>,
V Sangeetha <sangeetha.v@intel.com>
Subject: [edk2-devel] [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page Table Size increase
Date: Thu, 30 Nov 2023 23:04:52 +0530 [thread overview]
Message-ID: <bba4b710dd735ea22dcdfeb68923d602092cf853.1701363734.git.ashraf.ali.s@intel.com> (raw)
Currently 1G Page table is restricted 512GB. this patch can help to
increase the page table size based on the input. default will be 512GB
build option PAGE_TABLE_1G_SIZE is used to increase the page table size
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Catharine West <catharine.west@intel.com>
Cc: V Sangeetha <sangeetha.v@intel.com>
Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
---
UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt | 4 ++--
UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 2 ++
UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm | 13 +++++++++++--
3 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
index 4fcb15c3b1..4d153fc1a7 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
+++ b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
@@ -1,10 +1,10 @@
=== HOW TO USE VTF0 ===
Add this line to your DSC [Components.IA32] or [Components.X64] section:
- UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
+ UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
Add this line to your FDF FV section:
- INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
+ INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
In your FDF FFS file rules sections add:
[Rule.Common.SEC.RESET_VECTOR]
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
index 6b406163db..96106a4b11 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
+++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
@@ -53,5 +53,7 @@
# -DARCH_X64, -DARCH_IA32
# * for using 1G page table:
# -DPAGE_TABLE_1G
+# * for incresing the 1G page table size (Size in GBs):
+# -DPAGE_TABLE_1G_SIZE=1024
# * for different debug channels:
# -DDEBUG_SERIAL, -DDEBUG_PORT80, or not specify any debug channel
diff --git a/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm b/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
index 7960b141be..b080dc5296 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
+++ b/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm
@@ -1,7 +1,7 @@
;------------------------------------------------------------------------------
; @file
; Emits Page Tables for 1:1 mapping.
-; If using 1G page table, map addresses 0 - 0x8000000000 (512GB),
+; If using 1G page table, map addresses 0 - 0x8000000000 (512GB, Size can be increse via PAGE_TABLE_1G_SIZE),
; else, map addresses 0 - 0x100000000 (4GB)
;
; Copyright (c) 2021 - 2023, Intel Corporation. All rights reserved.<BR>
@@ -39,6 +39,15 @@ BITS 64
%define PAGE_PDPTE_1GB(x) ((x << 30) + PAGE_BLE_ATTR)
%define PAGE_PDE_2MB(x) ((x << 21) + PAGE_BLE_ATTR)
+%ifdef PAGE_TABLE_1G_SIZE
+ %define PAGE_PDPTE_1GB_SIZE PAGE_TABLE_1G_SIZE
+%else
+ ;
+ ; Default 512GB of 1G Page Table
+ ;
+ %define PAGE_PDPTE_1GB_SIZE 512
+%endif
+
ALIGN 16
%ifdef PAGE_TABLE_1G
@@ -47,7 +56,7 @@ Pdp:
; Page-directory pointer table (512 * 1GB entries => 512GB)
;
%assign i 0
- %rep 512
+ %rep PAGE_PDPTE_1GB_SIZE
DQ PAGE_PDPTE_1GB(i)
%assign i i+1
%endrep
--
2.39.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111910): https://edk2.groups.io/g/devel/message/111910
Mute This Topic: https://groups.io/mt/102898657/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next reply other threads:[~2023-11-30 17:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-30 17:34 Ashraf Ali S [this message]
2023-12-01 1:56 ` [edk2-devel] [PATCH] UefiCpuPkg/ResetVector: Option for 1G Page Table Size increase Zhiguang Liu
2023-12-01 5:28 ` Ni, Ray
2023-12-01 6:26 ` Ashraf Ali S
2023-12-01 8:39 ` Ni, Ray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bba4b710dd735ea22dcdfeb68923d602092cf853.1701363734.git.ashraf.ali.s@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox