diff options
-rw-r--r-- | Omap35xxPkg/Include/Omap3530/Omap3530Usb.h | 1 | ||||
-rw-r--r-- | Omap35xxPkg/PciEmulation/PciEmulation.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h b/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h index 5ffaa9d8e4..73f7f7640f 100644 --- a/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h +++ b/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h @@ -26,6 +26,7 @@ #define UHH_SYSCONFIG_CLOCKACTIVITY_ON (1UL << 8) #define UHH_SYSCONFIG_SIDLEMODE_NO_STANDBY (1UL << 3) #define UHH_SYSCONFIG_ENAWAKEUP_ENABLE (1UL << 2) +#define UHH_SYSCONFIG_SOFTRESET (1UL << 1) #define UHH_SYSCONFIG_AUTOIDLE_ALWAYS_RUN (0UL << 0) #define UHH_HOSTCONFIG_P3_CONNECT_STATUS_DISCONNECT (0UL << 10) diff --git a/Omap35xxPkg/PciEmulation/PciEmulation.c b/Omap35xxPkg/PciEmulation/PciEmulation.c index bdba40353f..3e49f8a1bc 100644 --- a/Omap35xxPkg/PciEmulation/PciEmulation.c +++ b/Omap35xxPkg/PciEmulation/PciEmulation.c @@ -62,6 +62,12 @@ ConfigureUSBHost ( EFI_STATUS Status; UINT8 Data = 0; + // Do a softreset + MmioOr32 (UHH_SYSCONFIG, UHH_SYSCONFIG_SOFTRESET); + // When the bit clears reset is complete + while ((MmioRead32 (UHH_SYSCONFIG) & UHH_SYSCONFIG_SOFTRESET) == UHH_SYSCONFIG_SOFTRESET); + + // Take USB host out of force-standby mode MmioWrite32 (UHH_SYSCONFIG, UHH_SYSCONFIG_MIDLEMODE_NO_STANDBY | UHH_SYSCONFIG_CLOCKACTIVITY_ON |