0 \\r
}\r
\r
-#define gPciRootBridge \\r
- PNPID_DEVICE_PATH_NODE(0x0A03)\r
-\r
#define gPnp16550ComPort \\r
PNPID_DEVICE_PATH_NODE(0x0501)\r
\r
ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;\r
VENDOR_DEVICE_PATH gTerminalTypeDeviceNode = gPcAnsiTerminal;\r
\r
-//\r
-// Predefined platform root bridge\r
-//\r
-PLATFORM_ROOT_BRIDGE_DEVICE_PATH gPlatformRootBridge0 = {\r
- gPciRootBridge,\r
- gEndEntire\r
-};\r
-\r
-EFI_DEVICE_PATH_PROTOCOL *gPlatformRootBridges[] = {\r
- (EFI_DEVICE_PATH_PROTOCOL *)&gPlatformRootBridge0,\r
- NULL\r
-};\r
-\r
BOOLEAN mDetectDisplayOnly;\r
\r
/**\r
}\r
\r
/**\r
- The function will connect root bridge\r
+ The function will connect one root bridge\r
\r
- @return EFI_SUCCESS Connect RootBridge successfully.\r
+ @param[in] Handle - The root bridge handle\r
+ @param[in] Instance - The instance of the root bridge\r
+\r
+ @return EFI_SUCCESS Connect RootBridge successfully.\r
\r
**/\r
EFI_STATUS\r
-ConnectRootBridge (\r
- VOID\r
+EFIAPI\r
+ConnectOneRootBridge (\r
+ IN EFI_HANDLE Handle,\r
+ IN VOID *Instance\r
)\r
{\r
EFI_STATUS Status;\r
- EFI_HANDLE RootHandle;\r
\r
- //\r
- // Make all the PCI_IO protocols on PCI Seg 0 show up\r
- //\r
- Status = gBS->LocateDevicePath (\r
- &gEfiDevicePathProtocolGuid,\r
- &gPlatformRootBridges[0],\r
- &RootHandle\r
- );\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
-\r
- Status = gBS->ConnectController (RootHandle, NULL, NULL, FALSE);\r
+ Status = gBS->ConnectController (Handle, NULL, NULL, FALSE);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
VOID\r
)\r
{\r
- ConnectRootBridge ();\r
+ VisitAllInstancesOfProtocol (\r
+ &gEfiPciRootBridgeIoProtocolGuid,\r
+ ConnectOneRootBridge\r
+ );\r
\r
//\r
// Do platform specific PCI Device check and add them to ConOut, ConIn, ErrOut\r