Hello Gerd, On Mon, 17 Jan 2022 at 11:02, Gerd Hoffmann <kra...@redhat.com> wrote: > > Link in pcie and host bridge bits. Enables support for PCIe in microvm > (qemu-system-x86_64 -M microvm,pcie=on). > > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3777 > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > --- > OvmfPkg/Microvm/MicrovmX64.dsc | 40 +++++++++++++++++++++------------- > OvmfPkg/Microvm/README | 2 +- > 2 files changed, 26 insertions(+), 16 deletions(-) > > diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc > index 1c2e600febee..218869ac91a4 100644 > --- a/OvmfPkg/Microvm/MicrovmX64.dsc > +++ b/OvmfPkg/Microvm/MicrovmX64.dsc > @@ -332,7 +332,9 @@ [LibraryClasses.common.DXE_RUNTIME_DRIVER] > !endif > UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf > BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > - PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > +# PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > +# > PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > +# > PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
Please don't add commented out lines like this. > QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf > > VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf > > @@ -349,7 +351,9 @@ [LibraryClasses.common.UEFI_DRIVER] > DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf > !endif > UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > - PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + > PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > > [LibraryClasses.common.DXE_DRIVER] > PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > @@ -371,7 +375,9 @@ [LibraryClasses.common.DXE_DRIVER] > !if $(SOURCE_DEBUG_ENABLE) == TRUE > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf > !endif > - PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + > PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf > QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf > > QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf > @@ -387,7 +393,9 @@ [LibraryClasses.common.UEFI_APPLICATION] > !else > DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf > !endif > - PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + > PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > > [LibraryClasses.common.DXE_SMM_DRIVER] > PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > @@ -408,7 +416,9 @@ [LibraryClasses.common.DXE_SMM_DRIVER] > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf > !endif > BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf > - PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + > PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > > [LibraryClasses.common.SMM_CORE] > PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > @@ -424,7 +434,9 @@ [LibraryClasses.common.SMM_CORE] > !else > DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf > !endif > - PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + > PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf > > > ################################################################################ > # > @@ -499,14 +511,6 @@ [PcdsFixedAtBuild] > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F > !endif > > - # This PCD is used to set the base address of the PCI express hierarchy. It > - # is only consulted when OVMF runs on Q35. In that case it is programmed > into > - # the PCIEXBAR register. > - # > - # On Q35 machine types that QEMU intends to support in the long term, QEMU > - # never lets the RAM below 4 GB exceed 2816 MB. > - gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xB0000000 > - > !if $(SOURCE_DEBUG_ENABLE) == TRUE > gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2 > !endif > @@ -571,6 +575,12 @@ [PcdsDynamicDefault] > gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 > gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 > > + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this > + # PCD and PcdPciDisableBusEnumeration below have not been assigned yet > + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF > + gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE > + > # Set video resolution for text setup. > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640 > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 > @@ -668,7 +678,7 @@ [Components] > OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf > MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { > <LibraryClasses> > - > PciHostBridgeLib|MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf > + > PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > > PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf > NULL|OvmfPkg/Library/PlatformHasIoMmuLib/PlatformHasIoMmuLib.inf > } > diff --git a/OvmfPkg/Microvm/README b/OvmfPkg/Microvm/README > index 540d39f2ec21..813920d92a60 100644 > --- a/OvmfPkg/Microvm/README > +++ b/OvmfPkg/Microvm/README > @@ -29,7 +29,7 @@ features > [working] serial console > [working] direct kernel boot > [working] virtio-mmio support > - [in progress] pcie support > + [working] pcie support > > known limitations > ----------------- > -- > 2.34.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#85755): https://edk2.groups.io/g/devel/message/85755 Mute This Topic: https://groups.io/mt/88481109/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-