When booting CloudHv guests with greater than 1TiB of high
memory, the PlatformAddressWidthInitialization function
incorrect calculates the address width using the overflowed
24-bit CMOS register rather than the E820 entries.

Signed-off-by: Thomas Barrett <tbarrett@crusoeenergy.com>
---
OvmfPkg/CloudHv/CloudHvX64.dsc | 2 ++
OvmfPkg/Library/PlatformInitLib/MemDetect.c | 12 ++++++++++++
2 files changed, 14 insertions(+)

diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc
index af594959a9..b522fa1059 100644
--- a/OvmfPkg/CloudHv/CloudHvX64.dsc
+++ b/OvmfPkg/CloudHv/CloudHvX64.dsc
@@ -566,6 +566,8 @@
# Point to the MdeModulePkg/Application/UiApp/UiApp.inf

gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }



+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE

+

################################################################################

#

# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform

diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
index 76a9dc9211..f042517bb6 100644
--- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
+++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
@@ -873,6 +873,18 @@ PlatformAddressWidthInitialization (


if (PlatformInfoHob->HostBridgeDevId == 0xffff /* microvm */) {

PlatformAddressWidthFromCpuid (PlatformInfoHob, FALSE);

+ return;

+ } else if (PlatformInfoHob->HostBridgeDevId == CLOUDHV_DEVICE_ID) {

+ PlatformInfoHob->FirstNonAddress = BASE_4GB;

+ Status = PlatformScanE820 (PlatformGetFirstNonAddressCB, PlatformInfoHob);

+ if (EFI_ERROR (Status)) {

+ PlatformInfoHob->FirstNonAddress = BASE_4GB + PlatformGetSystemMemorySizeAbove4gb ();

+ }

+

+ PlatformInfoHob->PcdPciMmio64Base = PlatformInfoHob->FirstNonAddress;

+ PlatformAddressWidthFromCpuid (PlatformInfoHob, FALSE);

+ PlatformInfoHob->PcdPciMmio64Size = PlatformInfoHob->FirstNonAddress - PlatformInfoHob->PcdPciMmio64Base;

+

return;

}



--
2.34.1


Disclaimer

The information contained in this communication from the sender is confidential. It is intended solely for use by the recipient and others authorized to receive it. If you are not the recipient, you are hereby notified that any disclosure, copying, distribution or taking action in relation of the contents of this information is strictly prohibited and may be unlawful.

_._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#113586) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_