]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmVirtPkg/FdtPciHostBridgeLib: Add extra pci root buses support
authorJiahui Cen via groups.io <cenjiahui=huawei.com@groups.io>
Tue, 19 Jan 2021 01:13:01 +0000 (09:13 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 20 Jan 2021 16:14:20 +0000 (16:14 +0000)
In order to take advantages of extra pci root buses in ArmVirtPkg, it is
necessary to scan extra root buses when getting root briges. And now
PciHostBridgeUtilityLib already provides a set of utility functions that
support for extra pci root buses, like PciHostBridgeUtilityGetRootBridges()
/ PciHostBridgeUtilityFreeRootBridges(). So let's rebase
ArmVirtPkg/FdtPciHostBridgeLib to PciHostBridgeUtilityGetRootBridges() /
PciHostBridgeUtilityFreeRootBridges() to extend ArmVirtPkg with extra
pci root buses support.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3059

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Signed-off-by: Jiahui Cen <cenjiahui@huawei.com>
Signed-off-by: Yubo Miao <miaoyubo@huawei.com>
Message-Id: <20210119011302.10908-11-cenjiahui@huawei.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.c

index 3ec7992b6331e7d227bd1b456699dcafc739ba84..0099b8e3c391b31ff8977facd1bbd8ce96077f18 100644 (file)
@@ -272,8 +272,6 @@ ProcessPciHost (
   return Status;\r
 }\r
 \r
-STATIC PCI_ROOT_BRIDGE mRootBridge;\r
-\r
 /**\r
   Return all the root bridge instances in an array.\r
 \r
@@ -361,8 +359,8 @@ PciHostBridgeGetRootBridges (
   PMemAbove4G.Base     = MAX_UINT64;\r
   PMemAbove4G.Limit    = 0;\r
 \r
-  Status = PciHostBridgeUtilityInitRootBridge (\r
-    Attributes,\r
+  return PciHostBridgeUtilityGetRootBridges (\r
+    Count,\r
     Attributes,\r
     AllocationAttributes,\r
     TRUE,\r
@@ -373,19 +371,8 @@ PciHostBridgeGetRootBridges (
     &Mem,\r
     &MemAbove4G,\r
     &PMem,\r
-    &PMemAbove4G,\r
-    &mRootBridge\r
+    &PMemAbove4G\r
     );\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((DEBUG_ERROR, "%a: failed to initialize PCI host bridge: %r\n",\r
-      __FUNCTION__, Status));\r
-    *Count = 0;\r
-    return NULL;\r
-  }\r
-\r
-  *Count = 1;\r
-\r
-  return &mRootBridge;\r
 }\r
 \r
 /**\r
@@ -402,8 +389,7 @@ PciHostBridgeFreeRootBridges (
   UINTN           Count\r
   )\r
 {\r
-  ASSERT (Count == 1);\r
-  PciHostBridgeUtilityUninitRootBridge (Bridges);\r
+  PciHostBridgeUtilityFreeRootBridges (Bridges, Count);\r
 }\r
 \r
 /**\r