-/** @file\r
- \r
+/** @file \r
The Ehci controller driver.\r
\r
+ EhciDxe driver is responsible for managing the behavior of EHCI controller. \r
+ It implements the interfaces of monitoring the status of all ports and transferring \r
+ Control, Bulk, Interrupt and Isochronous requests to Usb2.0 device.\r
+\r
+ Note that EhciDxe driver is enhanced to guarantee that the EHCI controller get attached\r
+ to the EHCI controller before the UHCI driver attaches to the companion UHCI controller. \r
+ This way avoids the control transfer on a shared port between EHCI and companion host\r
+ controller when UHCI gets attached earlier than EHCI and a USB 2.0 device inserts.\r
+\r
Copyright (c) 2006 - 2009, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
goto CLOSE_PCIIO;\r
}\r
\r
+ //\r
+ // Get the Pci device class code.\r
+ //\r
Status = PciIo->Pci.Read (\r
PciIo,\r
EfiPciIoWidthUint8,\r
Status = EFI_UNSUPPORTED;\r
goto CLOSE_PCIIO;\r
}\r
-\r
+ //\r
+ // determine if the device is UHCI host controller or not. If yes, then find out the \r
+ // companion usb ehci host controller and force EHCI driver get attached to it before\r
+ // UHCI driver attaches to UHCI host controller.\r
+ //\r
if ((UsbClassCReg.PI == PCI_IF_UHCI) &&\r
(UsbClassCReg.BaseCode == PCI_CLASS_SERIAL) && \r
(UsbClassCReg.SubClassCode == PCI_CLASS_SERIAL_USB)) {\r
if (EFI_ERROR (Status)) {\r
goto CLOSE_PCIIO;\r
}\r
+ //\r
+ // Currently, the judgment on the companion usb host controller is through the\r
+ // same bus number, which may vary on different platform.\r
+ //\r
if (EhciBusNumber == UhciBusNumber) {\r
gBS->CloseProtocol (\r
Controller,\r
# It implements the interfaces of monitoring the status of all ports and transferring \r
# Control, Bulk, Interrupt and Isochronous requests to Usb2.0 device.\r
#\r
+# Note that EhciDxe driver is enhanced to guarantee that the EHCI controller get attached\r
+# to the EHCI controller before the UHCI driver attaches to the companion UHCI controller. \r
+# This way avoids the control transfer on a shared port between EHCI and companion host\r
+# controller when UHCI gets attached earlier than EHCI and a USB 2.0 device inserts.\r
+#\r
# Copyright (c) 2006 - 2009, Intel Corporation. \r
#\r
# All rights reserved. This program and the accompanying materials\r