]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c
OvmfPkg: PciHostBridgeLib: set bus, IO and 32-bit MMIO windows in RootBus
[mirror_edk2.git] / OvmfPkg / Library / PciHostBridgeLib / PciHostBridgeLib.c
index 39dc2b5acb4ddce050706f42c6a357ce586a2b14..b23939d166c11ff76b140bca5f44ea4f82c399f4 100644 (file)
@@ -17,6 +17,9 @@
 \r
 #include <IndustryStandard/Pci.h>\r
 \r
+#include <Protocol/PciHostBridgeResourceAllocation.h>\r
+#include <Protocol/PciRootBridgeIo.h>\r
+\r
 #include <Library/BaseMemoryLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
@@ -71,6 +74,33 @@ InitRootBridge (
 \r
   RootBus->Segment = 0;\r
 \r
+  RootBus->Supports   = EFI_PCI_ATTRIBUTE_IDE_PRIMARY_IO |\r
+                        EFI_PCI_ATTRIBUTE_IDE_SECONDARY_IO |\r
+                        EFI_PCI_ATTRIBUTE_ISA_IO_16 |\r
+                        EFI_PCI_ATTRIBUTE_ISA_MOTHERBOARD_IO |\r
+                        EFI_PCI_ATTRIBUTE_VGA_MEMORY |\r
+                        EFI_PCI_ATTRIBUTE_VGA_IO_16  |\r
+                        EFI_PCI_ATTRIBUTE_VGA_PALETTE_IO_16;\r
+  RootBus->Attributes = RootBus->Supports;\r
+\r
+  RootBus->DmaAbove4G = FALSE;\r
+\r
+  RootBus->AllocationAttributes = EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM;\r
+  RootBus->PMem.Base            = 0;\r
+  RootBus->PMem.Limit           = 0;\r
+  RootBus->PMemAbove4G.Base     = 0;\r
+  RootBus->PMemAbove4G.Limit    = 0;\r
+  RootBus->MemAbove4G.Base      = 0;\r
+  RootBus->MemAbove4G.Limit     = 0;\r
+\r
+  RootBus->Bus.Base  = RootBusNumber;\r
+  RootBus->Bus.Limit = MaxSubBusNumber;\r
+  RootBus->Io.Base   = PcdGet64 (PcdPciIoBase);\r
+  RootBus->Io.Limit  = PcdGet64 (PcdPciIoBase) + (PcdGet64 (PcdPciIoSize) - 1);\r
+  RootBus->Mem.Base  = PcdGet64 (PcdPciMmio32Base);\r
+  RootBus->Mem.Limit = PcdGet64 (PcdPciMmio32Base) +\r
+                       (PcdGet64 (PcdPciMmio32Size) - 1);\r
+\r
   return EFI_OUT_OF_RESOURCES;\r
 }\r
 \r