On 06.01.2012 19:03, Alan Stern wrote: > On Fri, 6 Jan 2012, Matthias Fuchs wrote: > >> For my eyes it does not really look like a general USB issue. >> It looks like a problem with the Freescale EHCI implementation that is >> influenced by high interrupt or internal bus load caused by the flood ping. > > Indeed, it might be a problem with the built-in Transaction Translator. > That would explain why it affect full-speed devices. > > However, I would expect the resetting the controller hardware (which > happens when you reload the ehci-fsl driver) would fix any such issues. > It's hard to imagine how a problem could survive a reset like that. I did the tests again. When the error occured I reloaded the ehci-hcd driver and reconnected the device. It ends up with some kernel messages that come up time after time: usb 1-1: new full-speed USB device number 2 using fsl-ehci usb 1-1: device descriptor read/64, error -110 usb 1-1: device descriptor read/64, error -110 usb 1-1: new full-speed USB device number 3 using fsl-ehci usb 1-1: device descriptor read/64, error -110 usb 1-1: device descriptor read/64, error -110 usb 1-1: new full-speed USB device number 4 using fsl-ehci usb 1-1: device not accepting address 4, error -110 usb 1-1: new full-speed USB device number 5 using fsl-ehci usb 1-1: device not accepting address 5, error -110 hub 1-0:1.0: unable to enumerate USB device on port 1 A recommondation from freescale was to check the TXFILLTUNING register settings ("Initialization of this registers can produce problem if full-speed device is used"). So I tried various values in the TXFILLTUNING register (I added this code to ehci_reset()). Finally I disabled USB streaming mode in the USBMODE register (set bit USBMODE_SDIS - btw., it should be defined as "1 << 4" in ehci_def.h at least for the MPC5121). All this does not fix the problem or even have an impact. This is my stripped down version of the test: on the MPC5121 unit I do nothing but: $~ stty -F /dev/ttyUSB0 -echo -crtscts -cstopb $~ stty -F /dev/ttyUSB0 115200 $~ while true; do \ read LINE < /dev/ttyUSB0 \ echo $LINE > /dev/ttyUSB0 \ done The other side looks like this: $~ while true; do \ echo "_THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890#" > /dev/ttyS0 \ done and also I start a flood ping against the MPC5121 unit (.. to speed things up). Can anybody with a MPC5121 board try to reproduce this? Matthias -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html