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>
return Status;\r
}\r
\r
-STATIC PCI_ROOT_BRIDGE mRootBridge;\r
-\r
/**\r
Return all the root bridge instances in an array.\r
\r
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
&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
UINTN Count\r
)\r
{\r
- ASSERT (Count == 1);\r
- PciHostBridgeUtilityUninitRootBridge (Bridges);\r
+ PciHostBridgeUtilityFreeRootBridges (Bridges, Count);\r
}\r
\r
/**\r