[edk2-devel] [PATCH v4 12/20] OvmfPkg/Microvm: PlatformPei/MemDetect tweaks
Gerd Hoffmann
kraxel at redhat.com
Thu Sep 16 12:20:19 UTC 2021
Set mHostBridgeDevId to MICROVM_PSEUDO_DEVICE_ID using a
compile time switch.
Skip host bridge setup on microvm.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599
Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao at intel.com>
---
OvmfPkg/Microvm/MicrovmX64.dsc | 3 +++
OvmfPkg/PlatformPei/MemDetect.c | 5 +++++
OvmfPkg/PlatformPei/Platform.c | 5 +++++
3 files changed, 13 insertions(+)
diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc
index 019b50de7d8f..a000c195d866 100644
--- a/OvmfPkg/Microvm/MicrovmX64.dsc
+++ b/OvmfPkg/Microvm/MicrovmX64.dsc
@@ -73,6 +73,9 @@ [Defines]
!endif
[BuildOptions]
+ GCC:*_*_*_CC_FLAGS = -DPLATFORM_IS_MICROVM
+ INTEL:*_*_*_CC_FLAGS = /D PLATFORM_IS_MICROVM
+ MSFT:*_*_*_CC_FLAGS = /D PLATFORM_IS_MICROVM
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c
index 2c2c4641ec8a..8125644bc91a 100644
--- a/OvmfPkg/PlatformPei/MemDetect.c
+++ b/OvmfPkg/PlatformPei/MemDetect.c
@@ -15,6 +15,7 @@ Module Name:
//
#include <IndustryStandard/E820.h>
#include <IndustryStandard/I440FxPiix4.h>
+#include <IndustryStandard/Microvm.h>
#include <IndustryStandard/Q35MchIch9.h>
#include <PiPei.h>
#include <Register/Intel/SmramSaveStateMap.h>
@@ -135,6 +136,10 @@ QemuUc32BaseInitialization (
UINT32 LowerMemorySize;
UINT32 Uc32Size;
+ if (mHostBridgeDevId == MICROVM_PSEUDO_DEVICE_ID) {
+ return;
+ }
+
if (mHostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) {
//
// On q35, the 32-bit area that we'll mark as UC, through variable MTRRs,
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index d3a20122a2ea..ed93d11c8ac6 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -31,6 +31,7 @@
#include <Library/ResourcePublicationLib.h>
#include <Ppi/MasterBootMode.h>
#include <IndustryStandard/I440FxPiix4.h>
+#include <IndustryStandard/Microvm.h>
#include <IndustryStandard/Pci22.h>
#include <IndustryStandard/Q35MchIch9.h>
#include <IndustryStandard/QemuCpuHotplug.h>
@@ -714,7 +715,11 @@ InitializePlatform (
//
// Query Host Bridge DID
//
+#ifdef PLATFORM_IS_MICROVM
+ mHostBridgeDevId = MICROVM_PSEUDO_DEVICE_ID;
+#else
mHostBridgeDevId = PciRead16 (OVMF_HOSTBRIDGE_DID);
+#endif
MaxCpuCountInitialization ();
--
2.31.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80794): https://edk2.groups.io/g/devel/message/80794
Mute This Topic: https://groups.io/mt/85649943/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