From 7afa5ea8003e5d3b47a4b42cd2ef353f62126afa Mon Sep 17 00:00:00 2001 From: rsun3 Date: Tue, 14 Dec 2010 09:52:38 +0000 Subject: [PATCH] Add special treatment for EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE and EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM, because these attributes are only for PCI IO, while not supported by PCI Root Bridge IO. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11165 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 3 +++ MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c index 2a399c2ec2..c8689c0421 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c @@ -1063,6 +1063,9 @@ DetermineDeviceAttribute ( if (EFI_ERROR (Status)) { return Status; } + PciIoDevice->Supports |= (EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE | + EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM); + } else { // diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c index 86c9135afd..c39de9dd7e 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c @@ -1268,6 +1268,13 @@ ModifyRootBridgeAttributes ( return EFI_UNSUPPORTED; } + // + // Mask off EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE & + // EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM, which are not supported by PCI root bridge. + // + Attributes &= ~(UINT64)(EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE | + EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM); + // // Record the new attribute of the Root Bridge // -- 2.39.2