Signed-off-by: Tian Feng <feng.tian@intel.com>
Reviewed-by: Sun Rui <rui.sun@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13460
6f19259b-4bc3-4df7-8a09-
765794883524
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid\r
which is used to enable recovery function from USB Drivers.\r
\r
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid\r
which is used to enable recovery function from USB Drivers.\r
\r
-Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions\r
+/**\r
+ Power On All EHCI Ports.\r
+ \r
+ @param Ehc The EHCI device.\r
+\r
+**/\r
+VOID\r
+EhcPowerOnAllPorts (\r
+ IN PEI_USB2_HC_DEV *Ehc\r
+ )\r
+{\r
+ UINT8 PortNumber;\r
+ UINT8 Index;\r
+\r
+ PortNumber = (UINT8)(Ehc->HcStructParams & HCSP_NPORTS);\r
+ for (Index = 0; Index < PortNumber; Index++) {\r
+ EhcSetOpRegBit (Ehc, EHC_PORT_STAT_OFFSET + 4 * Index, PORTSC_POWER);\r
+ }\r
+}\r
+\r
/**\r
Initialize the HC hardware. \r
EHCI spec lists the five things to do to initialize the hardware.\r
/**\r
Initialize the HC hardware. \r
EHCI spec lists the five things to do to initialize the hardware.\r
if (Ehc->Urb == NULL) {\r
return Status;\r
}\r
if (Ehc->Urb == NULL) {\r
return Status;\r
}\r
+\r
+ EhcPowerOnAllPorts (Ehc); \r
+ MicroSecondDelay (EHC_ROOT_PORT_RECOVERY_STALL);\r
\r
Status = EhcInitSched (Ehc);\r
\r
\r
Status = EhcInitSched (Ehc);\r
\r