Hello,
I am trying to boot from the USB2.0 OTG port on my Altera SoCKit board (from Terasic), running Linux 3.18.20. I have a strange problem that I have tried to isolate as much as possible.
Given: I have a Linux zImage and a dtb file. The zImage includes an initramfs for a rootfs which means that after u-boot loads the zImage (and the dtb file) into memory, prior to kicking off the boot, the media is no longer needed.
(CASE: WORKING) If I place these files (zImage, dtb) on the MMC and boot from it (meaning zImage and dtb are initially loaded into memory from the MMC), then Linux is able to enumerate/read a USB stick in the USB2.0 OTG port.
(CASE: NOT-WORKING) If I place the same files (zImage, dtb) on a USB stick and boot from the USB stick (meaning this time they are loaded into memory from the USB stick), then Linux is unable to enumerate/read the USB stick in the USB2.0 OTG port. U-boot has no problem reading these files into memory prior to kicking off the boot process.
For the WORKING case the dmesg log shows ...
[ 3.253471] dwc2 ffb40000.usb: DWC OTG Controller
[ 3.258178] dwc2 ffb40000.usb: new USB bus registered, assigned bus number 1
[ 3.265229] dwc2 ffb40000.usb: irq 160, io mem 0x00000000
[ 3.270806] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 3.277580] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.284780] usb usb1: Product: DWC OTG Controller
[ 3.289463] usb usb1: Manufacturer: Linux 3.18.20PLAIN-USB dwc2_hsotg
[ 3.295884] usb usb1: SerialNumber: ffb40000.usb
[ 3.300904] hub 1-0:1.0: USB hub found
[ 3.304678] hub 1-0:1.0: 1 port detected
[ 3.308811] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 3.315385] usbcore: registered new interface driver uas
[ 3.320761] usbcore: registered new interface driver usb-storage
and then a little later:
[ 4.143425] usb 1-1: new high-speed USB device number 2 using dwc2
[ 4.253585] udevd[568]: starting version 182
[ 4.353988] usb 1-1: New USB device found, idVendor=18a5, idProduct=0304
[ 4.360690] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4.367903] usb 1-1: Product: STORE N GO
[ 4.373613] usb 1-1: Manufacturer: Verbatim
[ 4.379696] usb 1-1: SerialNumber: 1208000000006A8D
[ 4.444049] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 4.461279] scsi host0: usb-storage 1-1:1.0
For the NOT-WORKING case the dmesg log shows...
[ 3.273488] dwc2 ffb40000.usb: DWC OTG Controller
[ 3.278195] dwc2 ffb40000.usb: new USB bus registered, assigned bus number 1
[ 3.285245] dwc2 ffb40000.usb: irq 160, io mem 0x00000000
[ 3.290814] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 3.297587] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.304787] usb usb1: Product: DWC OTG Controller
[ 3.309470] usb usb1: Manufacturer: Linux 3.18.20PLAIN-USB dwc2_hsotg
[ 3.315889] usb usb1: SerialNumber: ffb40000.usb
[ 3.320903] hub 1-0:1.0: USB hub found
[ 3.324677] hub 1-0:1.0: 1 port detected
[ 3.328810] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 3.335384] usbcore: registered new interface driver uas
[ 3.340759] usbcore: registered new interface driver usb-storage
same as before, and then a little later:
[ 4.265500] udevd[567]: starting version 182
[ 4.393461] usb 1-1: new high-speed USB device number 2 using dwc2
[ 19.583374] usb 1-1: device descriptor read/64, error -110
udevd[567]: worker [576] timeout, kill it
udevd[567]: seq 529 '/devices/soc/ffb40000.usb/usb1' killed
[ 34.859798] random: dd urandom read with 42 bits of entropy available
[ 34.883443] usb 1-1: device descriptor read/64, error -110
[ 35.183449] usb 1-1: new high-speed USB device number 3 using dwc2
and then after booting is complete some more messages:
Poky (Yocto Project Reference Distro) 1.7.3 cyclone5 /dev/ttyS0
cyclone5 login: [ 50.373372] usb 1-1: device descriptor read/64, error -110
[ 65.673370] usb 1-1: device descriptor read/64, error -110
[ 65.973367] usb 1-1: new high-speed USB device number 4 using dwc2
[ 76.393373] usb 1-1: device not accepting address 4, error -110
[ 76.583368] usb 1-1: new high-speed USB device number 5 using dwc2
[ 87.003368] usb 1-1: device not accepting address 5, error -110
[ 87.009297] usb usb1-port1: unable to enumerate USB device
Can anybody out there shed some light on this behavior and what I can do to fix it?
I'll add that in u-boot I use the exact same bootcmd sequence, replacing the "mmc" loads with "usb" loads to memory.
bootcmd=run callscript;run mmcload;run bridge_enable_handoff;run mmcboot
usbbootcmd 'run callscript;run usbload;run bridge_enable_handoff;run usbboot'
Thanks in advance for insights out there!
George Broz
Moog Industrial Group