diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2023-05-17 12:24:47 +0200 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2023-05-29 11:19:51 +0000 |
commit | d4d24001f78bcee965d8854fba6f08f48b4ec446 (patch) | |
tree | c7385148f90adce5533157fcd38772f94a9105a9 /OvmfPkg | |
parent | 27727338b2c0e3f50eb0176a1044e903fcb3c3b1 (diff) | |
download | edk2-d4d24001f78bcee965d8854fba6f08f48b4ec446.zip edk2-d4d24001f78bcee965d8854fba6f08f48b4ec446.tar.gz edk2-d4d24001f78bcee965d8854fba6f08f48b4ec446.tar.bz2 |
OvmfPkg/PlatformInitLib: check PcdUse1GPageTable
If PcdUse1GPageTable is not enabled restrict the physical address space
used to 1TB, to limit the amount of memory needed for identity mapping
page tables.
The same already happens in case the processor has no support for
gigabyte pages.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'OvmfPkg')
-rw-r--r-- | OvmfPkg/Library/PlatformInitLib/MemDetect.c | 5 | ||||
-rw-r--r-- | OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c index acf90b4..1102b00 100644 --- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c +++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c @@ -663,6 +663,11 @@ PlatformAddressWidthFromCpuid ( PhysBits = 40;
}
+ if (!FixedPcdGetBool (PcdUse1GPageTable) && (PhysBits > 40)) {
+ DEBUG ((DEBUG_INFO, "%a: limit PhysBits to 40 (PcdUse1GPageTable is false)\n", __func__));
+ PhysBits = 40;
+ }
+
PlatformInfoHob->PhysMemAddressWidth = PhysBits;
PlatformInfoHob->FirstNonAddress = LShiftU64 (1, PlatformInfoHob->PhysMemAddressWidth);
}
diff --git a/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf b/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf index 86a82ad..5a79d95 100644 --- a/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf +++ b/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf @@ -58,6 +58,7 @@ [Pcd]
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
[FixedPcd]
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase
|