public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gerd Hoffmann" <kraxel@redhat.com>
To: Leif Lindholm <leif@nuviainc.com>
Cc: devel@edk2.groups.io, "Jiewen Yao" <jiewen.yao@intel.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Michael D Kinney" <michael.d.kinney@intel.com>,
	"Andrew Fish" <afish@apple.com>,
	"Jordan Justen" <jordan.l.justen@intel.com>,
	"Julien Grall" <julien@xen.org>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Ard Biesheuvel" <ardb+tianocore@kernel.org>,
	"Stefan Berger" <stefanb@linux.ibm.com>
Subject: Re: [PATCH v3 11/19] OvmfPkg/Microvm: PlatformPei/MemDetect tweaks
Date: Thu, 9 Sep 2021 12:58:23 +0200	[thread overview]
Message-ID: <20210909105823.d4e5yafgpzc6atm6@sirius.home.kraxel.org> (raw)
In-Reply-To: <20210908115415.457jrctnokke3n6u@leviathan>

> > Sure.  Suggestions?  Add a Pcd and set it in Microvm.dsc?
> > Or is there some better way?
> 
> It's all a question of how much we want to overengineer things :)
> 
> I'm tempted to suggest a balanced version would be adding
>   GCC: *_*_*_CC_FLAGS = -D PLATFORM_IS_MICROVM
> to [BuildOptions] in the .dsc, and test for that.

How about the approach below?

take care,
  Gerd

commit 2d48e3eba022ba92eadcbad2c55e10ed281631c2
Author: Gerd Hoffmann <kraxel@redhat.com>
Date:   Tue Jun 1 12:38:38 2021 +0200

    OvmfPkg/Microvm: PlatformPei/MemDetect tweaks
    
    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@redhat.com>
    Acked-by: Jiewen Yao <Jiewen.yao@intel.com>

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 ();
 


  reply	other threads:[~2021-09-09 10:58 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-08  9:01 [PATCH v3 00/19] OvmfPkg: Add support for microvm machine type Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 01/19] OvmfPkg/Microvm: copy OvmfPkgX64 files as-is Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 02/19] OvmfPkg/Microvm: rename output files, fix includes Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 03/19] OvmfPkg/Microvm: no smm Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 04/19] OvmfPkg/Microvm: no secure boot Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 05/19] OvmfPkg/Microvm: no tpm Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 06/19] OvmfPkg/Microvm: no sev Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 07/19] OvmfPkg/Microvm: no csm Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 08/19] OvmfPkg/Microvm: no emulated scsi Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 09/19] OvmfPkg/Microvm: use MdePkg/Library/SecPeiDxeTimerLibCpu Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 10/19] OvmfPkg/Microvm: use XenTimerDxe (lapic timer) Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 11/19] OvmfPkg/Microvm: PlatformPei/MemDetect tweaks Gerd Hoffmann
2021-09-08 11:06   ` Leif Lindholm
2021-09-08 11:33     ` Gerd Hoffmann
2021-09-08 11:54       ` Leif Lindholm
2021-09-09 10:58         ` Gerd Hoffmann [this message]
2021-10-05 10:27           ` Ard Biesheuvel
2021-09-08  9:01 ` [PATCH v3 12/19] OvmfPkg/Microvm: PlatformPei/Platform memory map tweaks Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 13/19] OvmfPkg/Microvm: PlatformPei/Platform: add id Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 14/19] OvmfPkg/ResetSystemLib: add driver for microvm Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 15/19] OvmfPkg/Microvm: BdsPlatform: PciAcpiInitialization tweak Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 16/19] OvmfPkg/Microvm: use PciHostBridgeLibNull Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 17/19] OvmfPkg/Microvm: wire up serial console, drop super-io Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 18/19] OvmfPkg/Microvm: add README Gerd Hoffmann
2021-09-08  9:01 ` [PATCH v3 19/19] OvmfPkg/Microvm: add Maintainers.txt entry Gerd Hoffmann
2021-09-08 11:08   ` [edk2-devel] " Leif Lindholm
2021-10-05 10:57 ` [PATCH v3 00/19] OvmfPkg: Add support for microvm machine type Ard Biesheuvel

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=20210909105823.d4e5yafgpzc6atm6@sirius.home.kraxel.org \
    --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