[U-Boot] usb start hangs

Tony O'Brien Tony.OBrien at alliedtelesis.co.nz
Fri Jan 6 03:13:33 CET 2017


Hi -


We recently updated our U-Boot release to v2016.11 and now our USB devices don't work.  When usb start is executed with a device inserted it hangs at 'scanning bus 0 for devices...' and doesn't recover.  Our product uses an NXP T2081 and I can reproduce this issue on the T2080RDB development board using the tip of U-Boot.  For testing I am using both an EMTEC 16GB USB thumb drive and an Edimax Fast Ethernet adapter.  The code always hangs at drivers/usb/host/ehci-hcd.c:557 in ehci_submit_async, just before the call to handshake.


I have traced the issue to 'Commit cb1629f91a48 powerpc: Disable flush or invalidate dcache by range for some SoCs', which is prior to the v2016.07 release.  Commit ac337168ad81 mentioned in this patch removes the original empty functions for the MPC85xx (and others), allowing the functions to be used, but I don't know how they would have worked before this.


Either reverting cb1629f91a48 or adding '|| defined(MPC85xx) ' to the #if statements makes usb work again.


diff --git a/arch/powerpc/lib/ppccache.S b/arch/powerpc/lib/ppccache.S
index 66cf02dbd0..ad28c7c369 100644
--- a/arch/powerpc/lib/ppccache.S
+++ b/arch/powerpc/lib/ppccache.S
@@ -65,7 +65,7 @@ ppcSync:
 * flush_dcache_range(unsigned long start, unsigned long stop)
 */
_GLOBAL(flush_dcache_range)
-#if defined(CONFIG_4xx) || defined(CONFIG_MPC86xx)
+#if defined(CONFIG_4xx) || defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
       li      r5,L1_CACHE_BYTES-1
       andc    r3,r3,r5
       subf    r4,r3,r4
@@ -89,7 +89,7 @@ _GLOBAL(flush_dcache_range)
 * invalidate_dcache_range(unsigned long start, unsigned long stop)
 */
_GLOBAL(invalidate_dcache_range)
-#if defined(CONFIG_4xx) || defined(CONFIG_MPC86xx)
+#if defined(CONFIG_4xx) || defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
       li      r5,L1_CACHE_BYTES-1
       andc    r3,r3,r5
       subf    r4,r3,r4

Do you have any thoughts on this before I submit the patch?


Cheers,

Tony O'Brien
Senior Software/Hardware Engineer
Allied Telesis Labs
27 Nazareth Avenue
Christchurch 8024
New Zealand
Ph: +64-3-339 3000
DDI: +64-3-339 9210
Web: http://AlliedTelesis.com




More information about the U-Boot mailing list