Altera_Forum
Honored Contributor
10 years agoCannot enumerate/read USB mass storage if Linux booted from USB
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