[edk2-devel] [PATCH v2 2/4] OvmfPkg/PlatformInitLib: detect physical address space
Gerd Hoffmann
kraxel at redhat.com
Tue Oct 4 13:47:26 UTC 2022
Try detect physical address space, when successful use it.
Otherwise go continue using the current guesswork code path.
Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
---
OvmfPkg/Library/PlatformInitLib/MemDetect.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
index 143a01ceb01e..16ecbfadc30c 100644
--- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
+++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
@@ -761,6 +761,19 @@ PlatformAddressWidthInitialization (
FirstNonAddress = PlatformGetFirstNonAddress (PlatformInfoHob);
}
+ PlatformAddressWidthFromCpuid (PlatformInfoHob, TRUE);
+ if (PlatformInfoHob->PhysMemAddressWidth != 0) {
+ // physical address width is known
+ PlatformInfoHob->FirstNonAddress = FirstNonAddress;
+ return;
+ }
+
+ //
+ // physical address width is NOT known
+ // -> do some guess work, mostly based on installed memory
+ // -> try be conservstibe to stay below the guaranteed minimum of
+ // 36 phys bits (aka 64 GB).
+ //
PhysMemAddressWidth = (UINT8)HighBitSet64 (FirstNonAddress);
//
--
2.37.3
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#94702): https://edk2.groups.io/g/devel/message/94702
Mute This Topic: https://groups.io/mt/94113631/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list