Update USB init code to do a softreset.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10208 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h b/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h
index 5ffaa9d..73f7f76 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 bdba403..3e49f8a 100644
--- a/Omap35xxPkg/PciEmulation/PciEmulation.c
+++ b/Omap35xxPkg/PciEmulation/PciEmulation.c
@@ -62,6 +62,12 @@
   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