This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM35xx musb host controller driver (using CPPI4.1 DMA) hangs after a USB device is plugged in.

Other Parts Discussed in Thread: AM3505

Hi,

After a seemingly good initialization where the musb+am35x glue driver running in host mode with DMA, the host driver detected both the root and a built-in hub w/ 2 USB ports.  The module seemed to load properly as seen in the attach log file, but once I plugged in a USB device the system just lock up (question #1).  Also, another issue that I observed was that when I tried unloading the module (am35x.ko), it got stuck in a tight loop printing "Popping value 0 from queue @ d09b6440" over and over again, effectively hanging the system (question #2).  The other question I have is whether the IRQ number should still be 71 even if the host controller is running in DMA mode (question #3). 

As a background info, I am running kernel version 3.6.11 with the USB host controller (musb) driver fixes pulled from the TI Arago repo.  The USB controller runs fine under this kernel in PIO mode without the fixes or any other modification.  Also, we have a 2-port USB hub connected directly to the OTG port (port 0) on the AM3505; the other 3 USB ports on the SoC are not used.

Thank you in advance!

Texas Instruments X-Loader 1.45 (Jul 29 2013 - 15:39:06)
X-Load Enphase Part Number: <....>

[u-boot0] = valid
[u-boot1] = valid
Using U-Boot image [0], based on time
Starting OS Bootloader...

U-Boot Enphase Part Number: <........>
Last Reset: POWER


U-Boot 2009.11-00025-g360a7d7-dirty (Jul 29 2013 - 15:39:12)

OMAP34xx/35xx-GP ES1.0, CPU-OPP2 L3-165MHz
EnvoyR Board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  (4-bit BCH ECC): 1024 MiB
In:    serial
Out:   serial
Err:   serial
Die ID #3bbe000100000000015da3960b00b025
Envoy Compat 0
nand ecc [1] corrected, err_loc=2972

[linux0] = valid
[linux1] = valid
Using Linux image [0], based on time
Reinit NAND: (4-bit BCH ECC): 1024 MiB
Net:   davinci_emac_initialize
Ethernet PHY: GENERIC @ 0x1f
DaVinci EMAC
Hit any key to stop autoboot:  1  0 
Booting from nand ...

NAND read: device 0 offset 0x0, size 0x420000
 4325376 bytes read: OK
## Booting kernel from Legacy Image at 87000000 ...
   Image Name:   Linux-3.6.11-ee6e568a
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3203224 Bytes =  3.1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Switching to clocksource gp_timer
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP: reno registered
UDP hash table entries: 256 (order: 2, 20480 bytes)
UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NetWinder Floating Point Emulator V0.97 (double precision)
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
msgmni has been set to 482
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
omap_uart.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0
console [ttyS0] enabled
omap_uart.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1
omap_uart.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a OMAP UART2
brd: module loaded
loop: module loaded
omap-dma-engine omap-dma-engine: allocating channel for 36
omap-dma-engine omap-dma-engine: allocating channel for 35
m25p80 spi1.0: found s25fl064k, expected m25p80
m25p80 spi1.0: s25fl064k (8192 Kbytes)
Creating 9 MTD partitions on "spi1.0":
<<<locations redacted>>>>
omap-dma-engine omap-dma-engine: allocating channel for 44
omap-dma-engine omap-dma-engine: allocating channel for 43
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask 7fffffff
libphy: davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[31]: device davinci_mdio-0:1f, driver SMSC LAN8700
usbcore: registered new interface driver asix
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver dm9601
usbcore: registered new interface driver cdc_wdm
usbcore: registered new interface driver usbtest
musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
mousedev: PS/2 mouse device common for all mice
pcf2123 spi driver
pcf2123 chip found
pcf2123 spiclk 3000 KHz.
pcf2123 spi2.0: rtc core: registered pcf2123 as rtc0
i2c /dev entries driver
omap_wdt: OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP: cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
NET: Registered protocol family 15
lib80211: common routines for IEEE802.11 drivers
Key type dns_resolver registered
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
voltdm_scale: No voltage scale API registered for vdd_mpu_iva
voltdm_scale: No voltage scale API registered for vdd_core
PM: no software I/O chain control; some wakeups may be lost
clock: disabling unused clocks to save power
omap-dma-engine omap-dma-engine: allocating channel for 4
enabling NAND BCH ecc with 4-bit correction
NAND device: Manufacturer ID: 0x2c, Chip ID: 0x38 (Micron NAND 1GiB 3,3V 8-bit), page size: 4096, OOB size: 128
Scanning device for bad blocks
Bad eraseblock 190 at 0x000005f00000
Bad eraseblock 1270 at 0x000027b00000
Bad eraseblock 1502 at 0x00002ef00000
Bad eraseblock 1865 at 0x00003a480000
Bad eraseblock 1936 at 0x00003c800000
nand_read_bbt: bad blocks: 5, reserved blocks: 0
Creating 4 MTD partitions on "omap2-am35-nand.0":
<<<locations redacted>>>>
pcf2123 spi2.0: setting system clock to 2013-09-12 15:01:15 UTC (1378998075)
Freeing init memory: 1508K
Mounting Flash Device
yaffs: dev is 32505868 name is "mtdblock12" rw
yaffs: passed flags ""
Creating intermediate base dev files...
Configure links for partition: part/769
Starting Envoy System

INIT: version 2.86 booting
Starting the hotplug events dispatcher: udevdudevd (1259): /proc/1259/oom_adj is deprecated, please use /proc/1259/oom_score_adj instead.
.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
nand ecc[1] 
corrected bitflip 1684
Activating swap...failed.
kernel.panic = 2
vm.panic_on_oom = 1
Mounting local filesystems...mount: none already mounted or /dev/pts busy
mount: sysfs already mounted or /sys busy
failed.
Activating swapfile swap...done.

INIT: Entering runlevel: 3
Starting system log daemon: syslogd.
Setting hostname....
Bringing up interface eth0..
davinci_mdio davinci_mdio.0: resetting idled controller
net eth0: attached PHY driver [SMSC LAN8700] (mii_bus:phy_addr=davinci_mdio-0:1f, id=7c0c4)
Determining IP information for eth0....udhcpc (v1.15.2) started
deleting routers for eth0
Sending discover...
libphy: davinci_mdio-0:1f - Link is Up - 100/Full
Sending discover...
Sending discover...
No lease, forking to background
 done....
Bringing up interface eth1..
Bringing up interface lo..
Starting Network Interface Plugging Daemon: eth0.
Starting NTP server: ntpdStarting OpenBSD Secure Shell server: sshd.
Starting system message bus: dbus.
Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon.
Starting periodic command scheduler: cron.
Loading emuk2u...done
Starting pmi...done
Loading cp210x...usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
usbcore: registered new interface driver cp210x
USB Serial support registered for cp210x
done
Starting ZigBee arbiter...done
EMU database exists:
-rw-r--r--    1 root     root       757760 Sep 12 08:01 /var/opt/emu/emu.db
Loading emuk2u...done
Starting emu...done
Starting scgi server...done
Starting EMU Web UI/API...done
Starting CBUS Util...done
Starting environ scanner...done
Starting comm check...done
Starting Bin roller rest server...done
Starting PFA Monitor...done

Technologic Systems TS-LINUX/arm 7.0
envoy-00069 login:
Password:
Last login: Thu Sep 12 00:47:34 PDT 2013 on ttyS0
[08:02:58][envoy-00069:~$] 
[08:02:58][envoy-00069:~$] 
[08:02:58][envoy-00069:~$] lsmod
cp210x 11288 0 - Live 0xbf012000
usbserial 29137 1 cp210x, Live 0xbf004000
emuk2u 2401 1 - Live 0xbf000000
[08:03:05][envoy-00069:~$] 
[08:03:13][envoy-00069:~$] 
[08:03:13][envoy-00069:~$] <<<<<inserting/loading module 'am35x'>>>>>>>>
[08:03:13][envoy-00069:~$] 
[08:03:13][envoy-00069:~$] modprobe am35x
am35x_probe: pdev->id -1[<c0019364>] (unwind_backtrace+0x0/0xec) from [<bf0197c8>] (am35x_probe+0x54/0x2ac [am35x])
[<bf0197c8>] (am35x_probe+0x54/0x2ac [am35x]) from [<c01ed5f8>] (platform_drv_probe+0x1c/0x24)
[<c01ed5f8>] (platform_drv_probe+0x1c/0x24) from [<c01ec1bc>] (driver_probe_device+0x10c/0x2d4)
[<c01ec1bc>] (driver_probe_device+0x10c/0x2d4) from [<c01ec3ec>] (__driver_attach+0x68/0x8c)
[<c01ec3ec>] (__driver_attach+0x68/0x8c) from [<c01ea928>] (bus_for_each_dev+0x4c/0x8c)
[<c01ea928>] (bus_for_each_dev+0x4c/0x8c) from [<c01eb128>] (bus_add_driver+0xb0/0x234)
[<c01eb128>] (bus_add_driver+0xb0/0x234) from [<c01eca34>] (driver_register+0xa4/0x144)
[<c01eca34>] (driver_register+0xa4/0x144) from [<c0008650>] (do_one_initcall+0x94/0x160)
[<c0008650>] (do_one_initcall+0x94/0x160) from [<c0075fd4>] (sys_init_module+0x74/0x19c)
[<c0075fd4>] (sys_init_module+0x74/0x19c) from [<c00138c0>] (ret_fast_syscall+0x0/0x3c)
musb_probe: pdev->id -1, iomem 0xced9c2dc, irq 71
[<c0019364>] (unwind_backtrace+0x0/0xec) from [<c024fd34>] (musb_probe+0xac/0xf8c)
[<c024fd34>] (musb_probe+0xac/0xf8c) from [<c01ed5f8>] (platform_drv_probe+0x1c/0x24)
[<c01ed5f8>] (platform_drv_probe+0x1c/0x24) from [<c01ec1bc>] (driver_probe_device+0x10c/0x2d4)
[<c01ec1bc>] (driver_probe_device+0x10c/0x2d4) from [<c01ea89c>] (bus_for_each_drv+0x4c/0x8c)
[<c01ea89c>] (bus_for_each_drv+0x4c/0x8c) from [<c01ec4f4>] (device_attach+0x68/0x98)
[<c01ec4f4>] (device_attach+0x68/0x98) from [<c01eb410>] (bus_probe_device+0x28/0x9c)
[<c01eb410>] (bus_probe_device+0x28/0x9c) from [<c01ea138>] (device_add+0x478/0x614)
[<c01ea138>] (device_add+0x478/0x614) from [<c01edb98>] (platform_device_add+0x12c/0x190)
[<c01edb98>] (platform_device_add+0x12c/0x190) from [<bf019914>] (am35x_probe+0x1a0/0x2ac [am35x])
[<bf019914>] (am35x_probe+0x1a0/0x2ac [am35x]) from [<c01ed5f8>] (platform_drv_probe+0x1c/0x24)
[<c01ed5f8>] (platform_drv_probe+0x1c/0x24) from [<c01ec1bc>] (driver_probe_device+0x10c/0x2d4)
[<c01ec1bc>] (driver_probe_device+0x10c/0x2d4) from [<c01ec3ec>] (__driver_attach+0x68/0x8c)
[<c01ec3ec>] (__driver_attach+0x68/0x8c) from [<c01ea928>] (bus_for_each_dev+0x4c/0x8c)
[<c01ea928>] (bus_for_each_dev+0x4c/0x8c) from [<c01eb128>] (bus_add_driver+0xb0/0x234)
[<c01eb128>] (bus_add_driver+0xb0/0x234) from [<c01eca34>] (driver_register+0xa4/0x144)
[<c01eca34>] (driver_register+0xa4/0x144) from [<c0008650>] (do_one_initcall+0x94/0x160)
[<c0008650>] (do_one_initcall+0x94/0x160) from [<c0075fd4>] (sys_init_module+0x74/0x19c)
[<c0075fd4>] (sys_init_module+0x74/0x19c) from [<c00138c0>] (ret_fast_syscall+0x0/0x3c)
musb_probe: pdev->id -1,nIrq 71, base(ctrl) 0xd09b0000, iomem->start(ctrl phys addr) 0x5c040000
allocate_instance: mbase addr 0xd09b0000
allocate_instance: musb->ctrl_base addr 0xd09b0000
musb-hdrc musb-hdrc: dma type: dma-cppi41
musb_init_controller: pdev->id/musb id/mregs(b4 adj)/ctrl_base addr -1/-1/0xd09b0000/0xd09b0000[<c0019364>] (unwind_backtrace+0x0/0xec) from [<bf019be8>] (am35x_musb_init+0x2c/0x134 [am35x])
[<bf019be8>] (am35x_musb_init+0x2c/0x134 [am35x]) from [<c0250048>] (musb_probe+0x3c0/0xf8c)
[<c0250048>] (musb_probe+0x3c0/0xf8c) from [<c01ed5f8>] (platform_drv_probe+0x1c/0x24)
[<c01ed5f8>] (platform_drv_probe+0x1c/0x24) from [<c01ec1bc>] (driver_probe_device+0x10c/0x2d4)
[<c01ec1bc>] (driver_probe_device+0x10c/0x2d4) from [<c01ea89c>] (bus_for_each_drv+0x4c/0x8c)
[<c01ea89c>] (bus_for_each_drv+0x4c/0x8c) from [<c01ec4f4>] (device_attach+0x68/0x98)
[<c01ec4f4>] (device_attach+0x68/0x98) from [<c01eb410>] (bus_probe_device+0x28/0x9c)
[<c01eb410>] (bus_probe_device+0x28/0x9c) from [<c01ea138>] (device_add+0x478/0x614)
[<c01ea138>] (device_add+0x478/0x614) from [<c01edb98>] (platform_device_add+0x12c/0x190)
[<c01edb98>] (platform_device_add+0x12c/0x190) from [<bf019914>] (am35x_probe+0x1a0/0x2ac [am35x])
[<bf019914>] (am35x_probe+0x1a0/0x2ac [am35x]) from [<c01ed5f8>] (platform_drv_probe+0x1c/0x24)
[<c01ed5f8>] (platform_drv_probe+0x1c/0x24) from [<c01ec1bc>] (driver_probe_device+0x10c/0x2d4)
[<c01ec1bc>] (driver_probe_device+0x10c/0x2d4) from [<c01ec3ec>] (__driver_attach+0x68/0x8c)
[<c01ec3ec>] (__driver_attach+0x68/0x8c) from [<c01ea928>] (bus_for_each_dev+0x4c/0x8c)
[<c01ea928>] (bus_for_each_dev+0x4c/0x8c) from [<c01eb128>] (bus_add_driver+0xb0/0x234)
[<c01eb128>] (bus_add_driver+0xb0/0x234) from [<c01eca34>] (driver_register+0xa4/0x144)
[<c01eca34>] (driver_register+0xa4/0x144) from [<c0008650>] (do_one_initcall+0x94/0x160)
[<c0008650>] (do_one_initcall+0x94/0x160) from [<c0075fd4>] (sys_init_module+0x74/0x19c)
[<c0075fd4>] (sys_init_module+0x74/0x19c) from [<c00138c0>] (ret_fast_syscall+0x0/0x3c)
am35x_musb_init: musb mregs/ctrl_base addr 0xd09b0400/0xd09b0000
6Waiting for PHY clock good...
cppi41_queue_mgr_init:  top of func, cppi41_queue_mgr(0xc0b791a8)
cppi41_queue_mgr_init:  after dmaAllocCoh(), cppi41_queue_mgr(0xc0b791a8), ptr(0xd09b9000)linking_ram[0].phys_addr(0x8b090000), q_mgr_regs(0xd09b4000), qmgrLRamRgn0BaseReg(0x80)Linking RAM region 0 base @ d09b4080, value: 8b090000
cppi41_queue_mgr_init:  after __raw_wr()#1Linking RAM region 0 size @ d09b4084, value: 3fff
cppi41_queue_mgr_init:  after __raw_wr()#2
cppi41_queue_mgr_init:  after kzalloc(), ptr(0xcb042ac0)
cppi41_queue_mgr_init:  allocated_queues[0]=0xcb042ac0
cppi41_dma_block_init:  top of func, _tbl(0xbf01a228)Teardown descriptor queue 67 in queue manager 0 allocated
Teardown free descriptor control @ d09b1004, value: 43
cppi41_mem_rgn_alloc called with rgn_addr = 8fb01000, size_order = 5, num_order = 5
Descriptor region base @ d09b5000, value: 8fb01000
Descriptor region control @ d09b5004, value: 200000
Pushing value 8fb01002 to queue @ d09b6430
Pushing value 8fb01022 to queue @ d09b6430
Pushing value 8fb01042 to queue @ d09b6430
Pushing value 8fb01062 to queue @ d09b6430
Pushing value 8fb01082 to queue @ d09b6430
Pushing value 8fb010a2 to queue @ d09b6430
Pushing value 8fb010c2 to queue @ d09b6430
Pushing value 8fb010e2 to queue @ d09b6430
Pushing value 8fb01102 to queue @ d09b6430
Pushing value 8fb01122 to queue @ d09b6430
Pushing value 8fb01142 to queue @ d09b6430
Pushing value 8fb01162 to queue @ d09b6430
Pushing value 8fb01182 to queue @ d09b6430
Pushing value 8fb011a2 to queue @ d09b6430
Pushing value 8fb011c2 to queue @ d09b6430
Pushing value 8fb011e2 to queue @ d09b6430
Pushing value 8fb01202 to queue @ d09b6430
Pushing value 8fb01222 to queue @ d09b6430
Pushing value 8fb01242 to queue @ d09b6430
Pushing value 8fb01262 to queue @ d09b6430
Pushing value 8fb01282 to queue @ d09b6430
Pushing value 8fb012a2 to queue @ d09b6430
Pushing value 8fb012c2 to queue @ d09b6430
Pushing value 8fb012e2 to queue @ d09b6430
Pushing value 8fb01302 to queue @ d09b6430
Pushing value 8fb01322 to queue @ d09b6430
Pushing value 8fb01342 to queue @ d09b6430
Pushing value 8fb01362 to queue @ d09b6430
Pushing value 8fb01382 to queue @ d09b6430
Pushing value 8fb013a2 to queue @ d09b6430
Pushing value 8fb013c2 to queue @ d09b6430
Pushing value 8fb013e2 to queue @ d09b6430
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b2800, value written: 81018000
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b2804, value written: 83038202
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b2808, value written: 85058404
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b280c, value written: 87078606
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b2810, value written: 89098808
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b2814, value written: 8b0b8a0a
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b2818, value written: 8d0d8c0c
cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01a228)
DMA scheduler table @ d09b281c, value written: 8e0e
DMA scheduler control @ d09b2000, value: 8000001d
controller: musb mregs(after adj)/ctrl_base addr 0xd09b0400/0xd09b0000cppi41_mem_rgn_alloc called with rgn_addr = 8b0a0000, size_order = 6, num_order = 11
Descriptor region base @ d09b5010, value: 8b0a0000
Descriptor region control @ d09b5014, value: 400106
musb-hdrc: ConfigData=0x1e (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 1.900 
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
musb-hdrc musb-hdrc: MUSB HDRC host driver
musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 1
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: MUSB HDRC host driver
usb usb1: Manufacturer: Linux 3.6.11-ee6e568a musb-hcd
usb usb1: SerialNumber: musb-hdrc
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
musb-hdrc musb-hdrc: USB Host mode controller at d09b0000 using DMA, IRQ 71
am35x_probe: b4 ret 0
[08:03:18][envoy-00069:~$] usb 1-1: new high-speed USB device number 2 using musb-hdrc
usb 1-1: New USB device found, idVendor=0424, idProduct=2512
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 2 ports detected
Rx channel global configuration @ d09b1928, value written: 1004041, value read: 0
Rx channel host packet configuration A @ d09b192c, value written: 0
Rx channel host packet configuration B @ d09b1930, value written: 0
Enable channel @ d09b1928, value written: 81004041, value read: 80000000
Pushing value 8b0bffca to queue @ d09b6000

[08:03:26][envoy-00069:~$] 
[08:03:27][envoy-00069:~$] 
[08:03:27][envoy-00069:~$] <<<<<removing/unloading module 'am35x'>>>>>>>>
[08:03:27][envoy-00069:~$] rmmod am35x
[08:04:14][envoy-00069:~$] 
[08:04:17][envoy-00069:~$] rmmod am35x
Popping value 8fb01003 from queue @ d09b6430
Popping value 8fb01023 from queue @ d09b6430
Popping value 8fb01043 from queue @ d09b6430
Popping value 8fb01063 from queue @ d09b6430
Popping value 8fb01083 from queue @ d09b6430
Popping value 8fb010a3 from queue @ d09b6430
Popping value 8fb010c3 from queue @ d09b6430
Popping value 8fb010e3 from queue @ d09b6430
Popping value 8fb01103 from queue @ d09b6430
Popping value 8fb01123 from queue @ d09b6430
Popping value 8fb01143 from queue @ d09b6430
Popping value 8fb01163 from queue @ d09b6430
Popping value 8fb01183 from queue @ d09b6430
Popping value 8fb011a3 from queue @ d09b6430
Popping value 8fb011c3 from queue @ d09b6430
Popping value 8fb011e3 from queue @ d09b6430
Popping value 8fb01203 from queue @ d09b6430
Popping value 8fb01223 from queue @ d09b6430
Popping value 8fb01243 from queue @ d09b6430
Popping value 8fb01263 from queue @ d09b6430
Popping value 8fb01283 from queue @ d09b6430
Popping value 8fb012a3 from queue @ d09b6430
Popping value 8fb012c3 from queue @ d09b6430
Popping value 8fb012e3 from queue @ d09b6430
Popping value 8fb01303 from queue @ d09b6430
Popping value 8fb01323 from queue @ d09b6430
Popping value 8fb01343 from queue @ d09b6430
Popping value 8fb01363 from queue @ d09b6430
Popping value 8fb01383 from queue @ d09b6430
Popping value 8fb013a3 from queue @ d09b6430
Popping value 8fb013c3 from queue @ d09b6430
Popping value 8fb013e3 from queue @ d09b6430
cppi41_mem_rgn_free called.
DMA scheduler table @ d09b2800, value written: 0
DMA scheduler table @ d09b2804, value written: 0
DMA scheduler table @ d09b2808, value written: 0
DMA scheduler table @ d09b280c, value written: 0
DMA scheduler table @ d09b2810, value written: 0
DMA scheduler table @ d09b2814, value written: 0
DMA scheduler table @ d09b2818, value written: 0
DMA scheduler table @ d09b281c, value written: 0
(NULL device *): gadget not registered.
musb-hdrc musb-hdrc: remove, state 1
usb usb1: USB disconnect, device number 1
usb 1-1: USB disconnect, device number 2
cppi41_channel_abort: DMA busy, status = 2
Before teardown:
00  d09e9f80 d09e9f40 d09e9f00 d09e9ec0 d09e9e80 d09e9e40 d09e9e00 d09e9dc0
08  d09e9d80 d09e9d40 d09e9d00 d09e9cc0 d09e9c80 d09e9c40 d09e9c00 d09e9bc0
10  d09e9b80 d09e9b40 d09e9b00 d09e9ac0 d09e9a80 d09e9a40 d09e9a00 d09e99c0
18  d09e9980 d09e9940 d09e9900 d09e98c0 d09e9880 d09e9840 d09e9800 d09e97c0
20  d09e9780 d09e9740 d09e9700 d09e96c0 d09e9680 d09e9640 d09e9600 d09e95c0
28  d09e9580 d09e9540 d09e9500 d09e94c0 d09e9480 d09e9440 d09e9400 d09e93c0
30  d09e9380 d09e9340 d09e9300 d09e92c0 d09e9280 d09e9240 d09e9200 d09e91c0
38  d09e9180 d09e9140 d09e9100 d09e90c0 d09e9080 d09e9040 d09e9000 d09e8fc0
40  d09e8f80 d09e8f40 d09e8f00 d09e8ec0 d09e8e80 d09e8e40 d09e8e00 d09e8dc0
48  d09e8d80 d09e8d40 d09e8d00 d09e8cc0 d09e8c80 d09e8c40 d09e8c00 d09e8bc0
50  d09e8b80 d09e8b40 d09e8b00 d09e8ac0 d09e8a80 d09e8a40 d09e8a00 d09e89c0
58  d09e8980 d09e8940 d09e8900 d09e88c0 d09e8880 d09e8840 d09e8800 d09e87c0
60  d09e8780 d09e8740 d09e8700 d09e86c0 d09e8680 d09e8640 d09e8600 d09e85c0
68  d09e8580 d09e8540 d09e8500 d09e84c0 d09e8480 d09e8440 d09e8400 d09e83c0
70  d09e8380 d09e8340 d09e8300 d09e82c0 d09e8280 d09e8240 d09e8200 d09e81c0
78  d09e8180 d09e8140 d09e8100 d09e80c0 d09e8080 d09e8040 d09e8000 d09e7fc0
80  d09e7f80 d09e7f40 d09e7f00 d09e7ec0 d09e7e80 d09e7e40 d09e7e00 d09e7dc0
88  d09e7d80 d09e7d40 d09e7d00 d09e7cc0 d09e7c80 d09e7c40 d09e7c00 d09e7bc0
90  d09e7b80 d09e7b40 d09e7b00 d09e7ac0 d09e7a80 d09e7a40 d09e7a00 d09e79c0
98  d09e7980 d09e7940 d09e7900 d09e78c0 d09e7880 d09e7840 d09e7800 d09e77c0
a0  d09e7780 d09e7740 d09e7700 d09e76c0 d09e7680 d09e7640 d09e7600 d09e75c0
a8  d09e7580 d09e7540 d09e7500 d09e74c0 d09e7480 d09e7440 d09e7400 d09e73c0
b0  d09e7380 d09e7340 d09e7300 d09e72c0 d09e7280 d09e7240 d09e7200 d09e71c0
b8  d09e7180 d09e7140 d09e7100 d09e70c0 d09e7080 d09e7040 d09e7000 d09e6fc0
c0  d09e6f80 d09e6f40 d09e6f00 d09e6ec0 d09e6e80 d09e6e40 d09e6e00 d09e6dc0
c8  d09e6d80 d09e6d40 d09e6d00 d09e6cc0 d09e6c80 d09e6c40 d09e6c00 d09e6bc0
d0  d09e6b80 d09e6b40 d09e6b00 d09e6ac0 d09e6a80 d09e6a40 d09e6a00 d09e69c0
d8  d09e6980 d09e6940 d09e6900 d09e68c0 d09e6880 d09e6840 d09e6800 d09e67c0
e0  d09e6780 d09e6740 d09e6700 d09e66c0 d09e6680 d09e6640 d09e6600 d09e65c0
e8  d09e6580 d09e6540 d09e6500 d09e64c0 d09e6480 d09e6440 d09e6400 d09e63c0
f0  d09e6380 d09e6340 d09e6300 d09e62c0 d09e6280 d09e6240 d09e6200 d09e61c0
f8  d09e6180 d09e6140 d09e6100 d09e60c0 d09e6080 d09e6040 d09e6000 d09e5fc0
100  d09e5f80 d09e5f40 d09e5f00 d09e5ec0 d09e5e80 d09e5e40 d09e5e00 d09e5dc0
108  d09e5d80 d09e5d40 d09e5d00 d09e5cc0 d09e5c80 d09e5c40 d09e5c00 d09e5bc0
110  d09e5b80 d09e5b40 d09e5b00 d09e5ac0 d09e5a80 d09e5a40 d09e5a00 d09e59c0
118  d09e5980 d09e5940 d09e5900 d09e58c0 d09e5880 d09e5840 d09e5800 d09e57c0
120  d09e5780 d09e5740 d09e5700 d09e56c0 d09e5680 d09e5640 d09e5600 d09e55c0
128  d09e5580 d09e5540 d09e5500 d09e54c0 d09e5480 d09e5440 d09e5400 d09e53c0
130  d09e5380 d09e5340 d09e5300 d09e52c0 d09e5280 d09e5240 d09e5200 d09e51c0
138  d09e5180 d09e5140 d09e5100 d09e50c0 d09e5080 d09e5040 d09e5000 d09e4fc0
140  d09e4f80 d09e4f40 d09e4f00 d09e4ec0 d09e4e80 d09e4e40 d09e4e00 d09e4dc0
148  d09e4d80 d09e4d40 d09e4d00 d09e4cc0 d09e4c80 d09e4c40 d09e4c00 d09e4bc0
150  d09e4b80 d09e4b40 d09e4b00 d09e4ac0 d09e4a80 d09e4a40 d09e4a00 d09e49c0
158  d09e4980 d09e4940 d09e4900 d09e48c0 d09e4880 d09e4840 d09e4800 d09e47c0
160  d09e4780 d09e4740 d09e4700 d09e46c0 d09e4680 d09e4640 d09e4600 d09e45c0
168  d09e4580 d09e4540 d09e4500 d09e44c0 d09e4480 d09e4440 d09e4400 d09e43c0
170  d09e4380 d09e4340 d09e4300 d09e42c0 d09e4280 d09e4240 d09e4200 d09e41c0
178  d09e4180 d09e4140 d09e4100 d09e40c0 d09e4080 d09e4040 d09e4000 d09e3fc0
180  d09e3f80 d09e3f40 d09e3f00 d09e3ec0 d09e3e80 d09e3e40 d09e3e00 d09e3dc0
188  d09e3d80 d09e3d40 d09e3d00 d09e3cc0 d09e3c80 d09e3c40 d09e3c00 d09e3bc0
190  d09e3b80 d09e3b40 d09e3b00 d09e3ac0 d09e3a80 d09e3a40 d09e3a00 d09e39c0
198  d09e3980 d09e3940 d09e3900 d09e38c0 d09e3880 d09e3840 d09e3800 d09e37c0
1a0  d09e3780 d09e3740 d09e3700 d09e36c0 d09e3680 d09e3640 d09e3600 d09e35c0
1a8  d09e3580 d09e3540 d09e3500 d09e34c0 d09e3480 d09e3440 d09e3400 d09e33c0
1b0  d09e3380 d09e3340 d09e3300 d09e32c0 d09e3280 d09e3240 d09e3200 d09e31c0
1b8  d09e3180 d09e3140 d09e3100 d09e30c0 d09e3080 d09e3040 d09e3000 d09e2fc0
1c0  d09e2f80 d09e2f40 d09e2f00 d09e2ec0 d09e2e80 d09e2e40 d09e2e00 d09e2dc0
1c8  d09e2d80 d09e2d40 d09e2d00 d09e2cc0 d09e2c80 d09e2c40 d09e2c00 d09e2bc0
1d0  d09e2b80 d09e2b40 d09e2b00 d09e2ac0 d09e2a80 d09e2a40 d09e2a00 d09e29c0
1d8  d09e2980 d09e2940 d09e2900 d09e28c0 d09e2880 d09e2840 d09e2800 d09e27c0
1e0  d09e2780 d09e2740 d09e2700 d09e26c0 d09e2680 d09e2640 d09e2600 d09e25c0
1e8  d09e2580 d09e2540 d09e2500 d09e24c0 d09e2480 d09e2440 d09e2400 d09e23c0
1f0  d09e2380 d09e2340 d09e2300 d09e22c0 d09e2280 d09e2240 d09e2200 d09e21c0
1f8  d09e2180 d09e2140 d09e2100 d09e20c0 d09e2080 d09e2040 d09e2000 d09e1fc0
200  d09e1f80 d09e1f40 d09e1f00 d09e1ec0 d09e1e80 d09e1e40 d09e1e00 d09e1dc0
208  d09e1d80 d09e1d40 d09e1d00 d09e1cc0 d09e1c80 d09e1c40 d09e1c00 d09e1bc0
210  d09e1b80 d09e1b40 d09e1b00 d09e1ac0 d09e1a80 d09e1a40 d09e1a00 d09e19c0
218  d09e1980 d09e1940 d09e1900 d09e18c0 d09e1880 d09e1840 d09e1800 d09e17c0
220  d09e1780 d09e1740 d09e1700 d09e16c0 d09e1680 d09e1640 d09e1600 d09e15c0
228  d09e1580 d09e1540 d09e1500 d09e14c0 d09e1480 d09e1440 d09e1400 d09e13c0
230  d09e1380 d09e1340 d09e1300 d09e12c0 d09e1280 d09e1240 d09e1200 d09e11c0
238  d09e1180 d09e1140 d09e1100 d09e10c0 d09e1080 d09e1040 d09e1000 d09e0fc0
240  d09e0f80 d09e0f40 d09e0f00 d09e0ec0 d09e0e80 d09e0e40 d09e0e00 d09e0dc0
248  d09e0d80 d09e0d40 d09e0d00 d09e0cc0 d09e0c80 d09e0c40 d09e0c00 d09e0bc0
250  d09e0b80 d09e0b40 d09e0b00 d09e0ac0 d09e0a80 d09e0a40 d09e0a00 d09e09c0
258  d09e0980 d09e0940 d09e0900 d09e08c0 d09e0880 d09e0840 d09e0800 d09e07c0
260  d09e0780 d09e0740 d09e0700 d09e06c0 d09e0680 d09e0640 d09e0600 d09e05c0
268  d09e0580 d09e0540 d09e0500 d09e04c0 d09e0480 d09e0440 d09e0400 d09e03c0
270  d09e0380 d09e0340 d09e0300 d09e02c0 d09e0280 d09e0240 d09e0200 d09e01c0
278  d09e0180 d09e0140 d09e0100 d09e00c0 d09e0080 d09e0040 d09e0000 d09dffc0
280  d09dff80 d09dff40 d09dff00 d09dfec0 d09dfe80 d09dfe40 d09dfe00 d09dfdc0
288  d09dfd80 d09dfd40 d09dfd00 d09dfcc0 d09dfc80 d09dfc40 d09dfc00 d09dfbc0
290  d09dfb80 d09dfb40 d09dfb00 d09dfac0 d09dfa80 d09dfa40 d09dfa00 d09df9c0
298  d09df980 d09df940 d09df900 d09df8c0 d09df880 d09df840 d09df800 d09df7c0
2a0  d09df780 d09df740 d09df700 d09df6c0 d09df680 d09df640 d09df600 d09df5c0
2a8  d09df580 d09df540 d09df500 d09df4c0 d09df480 d09df440 d09df400 d09df3c0
2b0  d09df380 d09df340 d09df300 d09df2c0 d09df280 d09df240 d09df200 d09df1c0
2b8  d09df180 d09df140 d09df100 d09df0c0 d09df080 d09df040 d09df000 d09defc0
2c0  d09def80 d09def40 d09def00 d09deec0 d09dee80 d09dee40 d09dee00 d09dedc0
2c8  d09ded80 d09ded40 d09ded00 d09decc0 d09dec80 d09dec40 d09dec00 d09debc0
2d0  d09deb80 d09deb40 d09deb00 d09deac0 d09dea80 d09dea40 d09dea00 d09de9c0
2d8  d09de980 d09de940 d09de900 d09de8c0 d09de880 d09de840 d09de800 d09de7c0
2e0  d09de780 d09de740 d09de700 d09de6c0 d09de680 d09de640 d09de600 d09de5c0
2e8  d09de580 d09de540 d09de500 d09de4c0 d09de480 d09de440 d09de400 d09de3c0
2f0  d09de380 d09de340 d09de300 d09de2c0 d09de280 d09de240 d09de200 d09de1c0
2f8  d09de180 d09de140 d09de100 d09de0c0 d09de080 d09de040 d09de000 d09ddfc0
300  d09ddf80 d09ddf40 d09ddf00 d09ddec0 d09dde80 d09dde40 d09dde00 d09dddc0
308  d09ddd80 d09ddd40 d09ddd00 d09ddcc0 d09ddc80 d09ddc40 d09ddc00 d09ddbc0
310  d09ddb80 d09ddb40 d09ddb00 d09ddac0 d09dda80 d09dda40 d09dda00 d09dd9c0
318  d09dd980 d09dd940 d09dd900 d09dd8c0 d09dd880 d09dd840 d09dd800 d09dd7c0
320  d09dd780 d09dd740 d09dd700 d09dd6c0 d09dd680 d09dd640 d09dd600 d09dd5c0
328  d09dd580 d09dd540 d09dd500 d09dd4c0 d09dd480 d09dd440 d09dd400 d09dd3c0
330  d09dd380 d09dd340 d09dd300 d09dd2c0 d09dd280 d09dd240 d09dd200 d09dd1c0
338  d09dd180 d09dd140 d09dd100 d09dd0c0 d09dd080 d09dd040 d09dd000 d09dcfc0
340  d09dcf80 d09dcf40 d09dcf00 d09dcec0 d09dce80 d09dce40 d09dce00 d09dcdc0
348  d09dcd80 d09dcd40 d09dcd00 d09dccc0 d09dcc80 d09dcc40 d09dcc00 d09dcbc0
350  d09dcb80 d09dcb40 d09dcb00 d09dcac0 d09dca80 d09dca40 d09dca00 d09dc9c0
358  d09dc980 d09dc940 d09dc900 d09dc8c0 d09dc880 d09dc840 d09dc800 d09dc7c0
360  d09dc780 d09dc740 d09dc700 d09dc6c0 d09dc680 d09dc640 d09dc600 d09dc5c0
368  d09dc580 d09dc540 d09dc500 d09dc4c0 d09dc480 d09dc440 d09dc400 d09dc3c0
370  d09dc380 d09dc340 d09dc300 d09dc2c0 d09dc280 d09dc240 d09dc200 d09dc1c0
378  d09dc180 d09dc140 d09dc100 d09dc0c0 d09dc080 d09dc040 d09dc000 d09dbfc0
380  d09dbf80 d09dbf40 d09dbf00 d09dbec0 d09dbe80 d09dbe40 d09dbe00 d09dbdc0
388  d09dbd80 d09dbd40 d09dbd00 d09dbcc0 d09dbc80 d09dbc40 d09dbc00 d09dbbc0
390  d09dbb80 d09dbb40 d09dbb00 d09dbac0 d09dba80 d09dba40 d09dba00 d09db9c0
398  d09db980 d09db940 d09db900 d09db8c0 d09db880 d09db840 d09db800 d09db7c0
3a0  d09db780 d09db740 d09db700 d09db6c0 d09db680 d09db640 d09db600 d09db5c0
3a8  d09db580 d09db540 d09db500 d09db4c0 d09db480 d09db440 d09db400 d09db3c0
3b0  d09db380 d09db340 d09db300 d09db2c0 d09db280 d09db240 d09db200 d09db1c0
3b8  d09db180 d09db140 d09db100 d09db0c0 d09db080 d09db040 d09db000 d09dafc0
3c0  d09daf80 d09daf40 d09daf00 d09daec0 d09dae80 d09dae40 d09dae00 d09dadc0
3c8  d09dad80 d09dad40 d09dad00 d09dacc0 d09dac80 d09dac40 d09dac00 d09dabc0
3d0  d09dab80 d09dab40 d09dab00 d09daac0 d09daa80 d09daa40 d09daa00 d09da9c0
3d8  d09da980 d09da940 d09da900 d09da8c0 d09da880 d09da840 d09da800 d09da7c0
3e0  d09da780 d09da740 d09da700 d09da6c0 d09da680 d09da640 d09da600 d09da5c0
3e8  d09da580 d09da540 d09da500 d09da4c0 d09da480 d09da440 d09da400 d09da3c0
3f0  d09da380 d09da340 d09da300 d09da2c0 d09da280 d09da240 d09da200 d09da1c0
3f8  d09da180 d09da140 d09da100 d09da0c0 d09da080 d09da040 d09da000 d09d9fc0
400  d09d9f80 d09d9f40 d09d9f00 d09d9ec0 d09d9e80 d09d9e40 d09d9e00 d09d9dc0
408  d09d9d80 d09d9d40 d09d9d00 d09d9cc0 d09d9c80 d09d9c40 d09d9c00 d09d9bc0
410  d09d9b80 d09d9b40 d09d9b00 d09d9ac0 d09d9a80 d09d9a40 d09d9a00 d09d99c0
418  d09d9980 d09d9940 d09d9900 d09d98c0 d09d9880 d09d9840 d09d9800 d09d97c0
420  d09d9780 d09d9740 d09d9700 d09d96c0 d09d9680 d09d9640 d09d9600 d09d95c0
428  d09d9580 d09d9540 d09d9500 d09d94c0 d09d9480 d09d9440 d09d9400 d09d93c0
430  d09d9380 d09d9340 d09d9300 d09d92c0 d09d9280 d09d9240 d09d9200 d09d91c0
438  d09d9180 d09d9140 d09d9100 d09d90c0 d09d9080 d09d9040 d09d9000 d09d8fc0
440  d09d8f80 d09d8f40 d09d8f00 d09d8ec0 d09d8e80 d09d8e40 d09d8e00 d09d8dc0
448  d09d8d80 d09d8d40 d09d8d00 d09d8cc0 d09d8c80 d09d8c40 d09d8c00 d09d8bc0
450  d09d8b80 d09d8b40 d09d8b00 d09d8ac0 d09d8a80 d09d8a40 d09d8a00 d09d89c0
458  d09d8980 d09d8940 d09d8900 d09d88c0 d09d8880 d09d8840 d09d8800 d09d87c0
460  d09d8780 d09d8740 d09d8700 d09d86c0 d09d8680 d09d8640 d09d8600 d09d85c0
468  d09d8580 d09d8540 d09d8500 d09d84c0 d09d8480 d09d8440 d09d8400 d09d83c0
470  d09d8380 d09d8340 d09d8300 d09d82c0 d09d8280 d09d8240 d09d8200 d09d81c0
478  d09d8180 d09d8140 d09d8100 d09d80c0 d09d8080 d09d8040 d09d8000 d09d7fc0
480  d09d7f80 d09d7f40 d09d7f00 d09d7ec0 d09d7e80 d09d7e40 d09d7e00 d09d7dc0
488  d09d7d80 d09d7d40 d09d7d00 d09d7cc0 d09d7c80 d09d7c40 d09d7c00 d09d7bc0
490  d09d7b80 d09d7b40 d09d7b00 d09d7ac0 d09d7a80 d09d7a40 d09d7a00 d09d79c0
498  d09d7980 d09d7940 d09d7900 d09d78c0 d09d7880 d09d7840 d09d7800 d09d77c0
4a0  d09d7780 d09d7740 d09d7700 d09d76c0 d09d7680 d09d7640 d09d7600 d09d75c0
4a8  d09d7580 d09d7540 d09d7500 d09d74c0 d09d7480 d09d7440 d09d7400 d09d73c0
4b0  d09d7380 d09d7340 d09d7300 d09d72c0 d09d7280 d09d7240 d09d7200 d09d71c0
4b8  d09d7180 d09d7140 d09d7100 d09d70c0 d09d7080 d09d7040 d09d7000 d09d6fc0
4c0  d09d6f80 d09d6f40 d09d6f00 d09d6ec0 d09d6e80 d09d6e40 d09d6e00 d09d6dc0
4c8  d09d6d80 d09d6d40 d09d6d00 d09d6cc0 d09d6c80 d09d6c40 d09d6c00 d09d6bc0
4d0  d09d6b80 d09d6b40 d09d6b00 d09d6ac0 d09d6a80 d09d6a40 d09d6a00 d09d69c0
4d8  d09d6980 d09d6940 d09d6900 d09d68c0 d09d6880 d09d6840 d09d6800 d09d67c0
4e0  d09d6780 d09d6740 d09d6700 d09d66c0 d09d6680 d09d6640 d09d6600 d09d65c0
4e8  d09d6580 d09d6540 d09d6500 d09d64c0 d09d6480 d09d6440 d09d6400 d09d63c0
4f0  d09d6380 d09d6340 d09d6300 d09d62c0 d09d6280 d09d6240 d09d6200 d09d61c0
4f8  d09d6180 d09d6140 d09d6100 d09d60c0 d09d6080 d09d6040 d09d6000 d09d5fc0
500  d09d5f80 d09d5f40 d09d5f00 d09d5ec0 d09d5e80 d09d5e40 d09d5e00 d09d5dc0
508  d09d5d80 d09d5d40 d09d5d00 d09d5cc0 d09d5c80 d09d5c40 d09d5c00 d09d5bc0
510  d09d5b80 d09d5b40 d09d5b00 d09d5ac0 d09d5a80 d09d5a40 d09d5a00 d09d59c0
518  d09d5980 d09d5940 d09d5900 d09d58c0 d09d5880 d09d5840 d09d5800 d09d57c0
520  d09d5780 d09d5740 d09d5700 d09d56c0 d09d5680 d09d5640 d09d5600 d09d55c0
528  d09d5580 d09d5540 d09d5500 d09d54c0 d09d5480 d09d5440 d09d5400 d09d53c0
530  d09d5380 d09d5340 d09d5300 d09d52c0 d09d5280 d09d5240 d09d5200 d09d51c0
538  d09d5180 d09d5140 d09d5100 d09d50c0 d09d5080 d09d5040 d09d5000 d09d4fc0
540  d09d4f80 d09d4f40 d09d4f00 d09d4ec0 d09d4e80 d09d4e40 d09d4e00 d09d4dc0
548  d09d4d80 d09d4d40 d09d4d00 d09d4cc0 d09d4c80 d09d4c40 d09d4c00 d09d4bc0
550  d09d4b80 d09d4b40 d09d4b00 d09d4ac0 d09d4a80 d09d4a40 d09d4a00 d09d49c0
558  d09d4980 d09d4940 d09d4900 d09d48c0 d09d4880 d09d4840 d09d4800 d09d47c0
560  d09d4780 d09d4740 d09d4700 d09d46c0 d09d4680 d09d4640 d09d4600 d09d45c0
568  d09d4580 d09d4540 d09d4500 d09d44c0 d09d4480 d09d4440 d09d4400 d09d43c0
570  d09d4380 d09d4340 d09d4300 d09d42c0 d09d4280 d09d4240 d09d4200 d09d41c0
578  d09d4180 d09d4140 d09d4100 d09d40c0 d09d4080 d09d4040 d09d4000 d09d3fc0
580  d09d3f80 d09d3f40 d09d3f00 d09d3ec0 d09d3e80 d09d3e40 d09d3e00 d09d3dc0
588  d09d3d80 d09d3d40 d09d3d00 d09d3cc0 d09d3c80 d09d3c40 d09d3c00 d09d3bc0
590  d09d3b80 d09d3b40 d09d3b00 d09d3ac0 d09d3a80 d09d3a40 d09d3a00 d09d39c0
598  d09d3980 d09d3940 d09d3900 d09d38c0 d09d3880 d09d3840 d09d3800 d09d37c0
5a0  d09d3780 d09d3740 d09d3700 d09d36c0 d09d3680 d09d3640 d09d3600 d09d35c0
5a8  d09d3580 d09d3540 d09d3500 d09d34c0 d09d3480 d09d3440 d09d3400 d09d33c0
5b0  d09d3380 d09d3340 d09d3300 d09d32c0 d09d3280 d09d3240 d09d3200 d09d31c0
5b8  d09d3180 d09d3140 d09d3100 d09d30c0 d09d3080 d09d3040 d09d3000 d09d2fc0
5c0  d09d2f80 d09d2f40 d09d2f00 d09d2ec0 d09d2e80 d09d2e40 d09d2e00 d09d2dc0
5c8  d09d2d80 d09d2d40 d09d2d00 d09d2cc0 d09d2c80 d09d2c40 d09d2c00 d09d2bc0
5d0  d09d2b80 d09d2b40 d09d2b00 d09d2ac0 d09d2a80 d09d2a40 d09d2a00 d09d29c0
5d8  d09d2980 d09d2940 d09d2900 d09d28c0 d09d2880 d09d2840 d09d2800 d09d27c0
5e0  d09d2780 d09d2740 d09d2700 d09d26c0 d09d2680 d09d2640 d09d2600 d09d25c0
5e8  d09d2580 d09d2540 d09d2500 d09d24c0 d09d2480 d09d2440 d09d2400 d09d23c0
5f0  d09d2380 d09d2340 d09d2300 d09d22c0 d09d2280 d09d2240 d09d2200 d09d21c0
5f8  d09d2180 d09d2140 d09d2100 d09d20c0 d09d2080 d09d2040 d09d2000 d09d1fc0
600  d09d1f80 d09d1f40 d09d1f00 d09d1ec0 d09d1e80 d09d1e40 d09d1e00 d09d1dc0
608  d09d1d80 d09d1d40 d09d1d00 d09d1cc0 d09d1c80 d09d1c40 d09d1c00 d09d1bc0
610  d09d1b80 d09d1b40 d09d1b00 d09d1ac0 d09d1a80 d09d1a40 d09d1a00 d09d19c0
618  d09d1980 d09d1940 d09d1900 d09d18c0 d09d1880 d09d1840 d09d1800 d09d17c0
620  d09d1780 d09d1740 d09d1700 d09d16c0 d09d1680 d09d1640 d09d1600 d09d15c0
628  d09d1580 d09d1540 d09d1500 d09d14c0 d09d1480 d09d1440 d09d1400 d09d13c0
630  d09d1380 d09d1340 d09d1300 d09d12c0 d09d1280 d09d1240 d09d1200 d09d11c0
638  d09d1180 d09d1140 d09d1100 d09d10c0 d09d1080 d09d1040 d09d1000 d09d0fc0
640  d09d0f80 d09d0f40 d09d0f00 d09d0ec0 d09d0e80 d09d0e40 d09d0e00 d09d0dc0
648  d09d0d80 d09d0d40 d09d0d00 d09d0cc0 d09d0c80 d09d0c40 d09d0c00 d09d0bc0
650  d09d0b80 d09d0b40 d09d0b00 d09d0ac0 d09d0a80 d09d0a40 d09d0a00 d09d09c0
658  d09d0980 d09d0940 d09d0900 d09d08c0 d09d0880 d09d0840 d09d0800 d09d07c0
660  d09d0780 d09d0740 d09d0700 d09d06c0 d09d0680 d09d0640 d09d0600 d09d05c0
668  d09d0580 d09d0540 d09d0500 d09d04c0 d09d0480 d09d0440 d09d0400 d09d03c0
670  d09d0380 d09d0340 d09d0300 d09d02c0 d09d0280 d09d0240 d09d0200 d09d01c0
678  d09d0180 d09d0140 d09d0100 d09d00c0 d09d0080 d09d0040 d09d0000 d09cffc0
680  d09cff80 d09cff40 d09cff00 d09cfec0 d09cfe80 d09cfe40 d09cfe00 d09cfdc0
688  d09cfd80 d09cfd40 d09cfd00 d09cfcc0 d09cfc80 d09cfc40 d09cfc00 d09cfbc0
690  d09cfb80 d09cfb40 d09cfb00 d09cfac0 d09cfa80 d09cfa40 d09cfa00 d09cf9c0
698  d09cf980 d09cf940 d09cf900 d09cf8c0 d09cf880 d09cf840 d09cf800 d09cf7c0
6a0  d09cf780 d09cf740 d09cf700 d09cf6c0 d09cf680 d09cf640 d09cf600 d09cf5c0
6a8  d09cf580 d09cf540 d09cf500 d09cf4c0 d09cf480 d09cf440 d09cf400 d09cf3c0
6b0  d09cf380 d09cf340 d09cf300 d09cf2c0 d09cf280 d09cf240 d09cf200 d09cf1c0
6b8  d09cf180 d09cf140 d09cf100 d09cf0c0 d09cf080 d09cf040 d09cf000 d09cefc0
6c0  d09cef80 d09cef40 d09cef00 d09ceec0 d09cee80 d09cee40 d09cee00 d09cedc0
6c8  d09ced80 d09ced40 d09ced00 d09cecc0 d09cec80 d09cec40 d09cec00 d09cebc0
6d0  d09ceb80 d09ceb40 d09ceb00 d09ceac0 d09cea80 d09cea40 d09cea00 d09ce9c0
6d8  d09ce980 d09ce940 d09ce900 d09ce8c0 d09ce880 d09ce840 d09ce800 d09ce7c0
6e0  d09ce780 d09ce740 d09ce700 d09ce6c0 d09ce680 d09ce640 d09ce600 d09ce5c0
6e8  d09ce580 d09ce540 d09ce500 d09ce4c0 d09ce480 d09ce440 d09ce400 d09ce3c0
6f0  d09ce380 d09ce340 d09ce300 d09ce2c0 d09ce280 d09ce240 d09ce200 d09ce1c0
6f8  d09ce180 d09ce140 d09ce100 d09ce0c0 d09ce080 d09ce040 d09ce000 d09cdfc0
700  d09cdf80 d09cdf40 d09cdf00 d09cdec0 d09cde80 d09cde40 d09cde00 d09cddc0
708  d09cdd80 d09cdd40 d09cdd00 d09cdcc0 d09cdc80 d09cdc40 d09cdc00 d09cdbc0
710  d09cdb80 d09cdb40 d09cdb00 d09cdac0 d09cda80 d09cda40 d09cda00 d09cd9c0
718  d09cd980 d09cd940 d09cd900 d09cd8c0 d09cd880 d09cd840 d09cd800 d09cd7c0
720  d09cd780 d09cd740 d09cd700 d09cd6c0 d09cd680 d09cd640 d09cd600 d09cd5c0
728  d09cd580 d09cd540 d09cd500 d09cd4c0 d09cd480 d09cd440 d09cd400 d09cd3c0
730  d09cd380 d09cd340 d09cd300 d09cd2c0 d09cd280 d09cd240 d09cd200 d09cd1c0
738  d09cd180 d09cd140 d09cd100 d09cd0c0 d09cd080 d09cd040 d09cd000 d09ccfc0
740  d09ccf80 d09ccf40 d09ccf00 d09ccec0 d09cce80 d09cce40 d09cce00 d09ccdc0
748  d09ccd80 d09ccd40 d09ccd00 d09cccc0 d09ccc80 d09ccc40 d09ccc00 d09ccbc0
750  d09ccb80 d09ccb40 d09ccb00 d09ccac0 d09cca80 d09cca40 d09cca00 d09cc9c0
758  d09cc980 d09cc940 d09cc900 d09cc8c0 d09cc880 d09cc840 d09cc800 d09cc7c0
760  d09cc780 d09cc740 d09cc700 d09cc6c0 d09cc680 d09cc640 d09cc600 d09cc5c0
768  d09cc580 d09cc540 d09cc500 d09cc4c0 d09cc480 d09cc440 d09cc400 d09cc3c0
770  d09cc380 d09cc340 d09cc300 d09cc2c0 d09cc280 d09cc240 d09cc200 d09cc1c0
778  d09cc180 d09cc140 d09cc100 d09cc0c0 d09cc080 d09cc040 d09cc000 d09cbfc0
780  d09cbf80 d09cbf40 d09cbf00 d09cbec0 d09cbe80 d09cbe40 d09cbe00 d09cbdc0
788  d09cbd80 d09cbd40 d09cbd00 d09cbcc0 d09cbc80 d09cbc40 d09cbc00 d09cbbc0
790  d09cbb80 d09cbb40 d09cbb00 d09cbac0 d09cba80 d09cba40 d09cba00 d09cb9c0
798  d09cb980 d09cb940 d09cb900 d09cb8c0 d09cb880 d09cb840 d09cb800 d09cb7c0
7a0  d09cb780 d09cb740 d09cb700 d09cb6c0 d09cb680 d09cb640 d09cb600 d09cb5c0
7a8  d09cb580 d09cb540 d09cb500 d09cb4c0 d09cb480 d09cb440 d09cb400 d09cb3c0
7b0  d09cb380 d09cb340 d09cb300 d09cb2c0 d09cb280 d09cb240 d09cb200 d09cb1c0
7b8  d09cb180 d09cb140 d09cb100 d09cb0c0 d09cb080 d09cb040 d09cb000 d09cafc0
7c0  d09caf80 d09caf40 d09caf00 d09caec0 d09cae80 d09cae40 d09cae00 d09cadc0
7c8  d09cad80 d09cad40 d09cad00 d09cacc0 d09cac80 d09cac40 d09cac00 d09cabc0
7d0  d09cab80 d09cab40 d09cab00 d09caac0 d09caa80 d09caa40 d09caa00 d09ca9c0
7d8  d09ca980 d09ca940 d09ca900 d09ca8c0 d09ca880 d09ca840 d09ca800 d09ca7c0
7e0  d09ca780 d09ca740 d09ca700 d09ca6c0 d09ca680 d09ca640 d09ca600 d09ca5c0
7e8  d09ca580 d09ca540 d09ca500 d09ca4c0 d09ca480 d09ca440 d09ca400 d09ca3c0
7f0  d09ca380 d09ca340 d09ca300 d09ca2c0 d09ca280 d09ca240 d09ca200 d09ca1c0
7f8  d09ca180 d09ca140 d09ca100 d09ca0c0 d09ca080 d09ca040 d09ca000
Rx channel teardown, cppi_ch = cb0106e0
Channel global configuration @ d09b1928, value written: 81004044, value read: 80000000
Tear down channel @ d09b1928, value written: c1004044, value read: c0000000
Popping value 1 from queue @ d09b6440
Popping value 0 from queue @ d09b6440
Popping value 0 from queue @ d09b6440
Popping value 0 from queue @ d09b6440
<<<<<<<<stuck in this loop where this message repeats forever>>>>>>

  • Update: I tracked the issue with the usb device (wifi) plug in lockup to IRQ 71 (usb otg) not getting handled properly, but what messed it up?  I also found that having the usb device plugged in during boot up did not lock up the system, and the usb device gets enumerated properly. I also noticed that irq 71 was handled correctly during boot up, which explains why the built-in hub and usb device were enumerated correctly.  After the usb device got enumerated, I noticed a TX queue timeout exception from the davinci_emac driver:

    [08:09:27][envoy-00069:~/tmp$] ------------[ cut here ]------------
    WARNING: at /Volumes/ruCsDevPartn/myRepos/currLin3.6.11.git/source/net/sched/sch_generic.c:255 dev_watchdog+0x16c/0x25c()
    NETDEV WATCHDOG: eth0 (davinci_emac): transmit queue 0 timed out
    Modules linked in: rt2800usb(O) rt2800lib(O) rt2x00usb(O) rt2x00lib(O) mac80211(O) cfg80211(O) compat(O) cp210x usbserial emuk2u
    [<c00192a4>] (unwind_backtrace+0x0/0xec) from [<c0031178>] (warn_slowpath_common+0x4c/0x64)
    [<c0031178>] (warn_slowpath_common+0x4c/0x64) from [<c0031224>] (warn_slowpath_fmt+0x30/0x40)
    [<c0031224>] (warn_slowpath_fmt+0x30/0x40) from [<c02adebc>] (dev_watchdog+0x16c/0x25c)
    [<c02adebc>] (dev_watchdog+0x16c/0x25c) from [<c003d53c>] (run_timer_softirq+0x1d4/0x294)
    [<c003d53c>] (run_timer_softirq+0x1d4/0x294) from [<c0038744>] (__do_softirq+0xb0/0x198)
    [<c0038744>] (__do_softirq+0xb0/0x198) from [<c00389d0>] (irq_exit+0x50/0xa0)
    [<c00389d0>] (irq_exit+0x50/0xa0) from [<c0014718>] (handle_IRQ+0x68/0x8c)
    [<c0014718>] (handle_IRQ+0x68/0x8c) from [<c00084bc>] (omap3_intc_handle_irq+0x58/0x70)
    [<c00084bc>] (omap3_intc_handle_irq+0x58/0x70) from [<c00133c4>] (__irq_svc+0x44/0x78)
    Exception stack(0xc05fdf58 to 0xc05fdfa0)
    df40:                                                       00000001 00000004
    df60: c0607120 00000000 c05fc000 c0608968 c060853c c064c110 00000001 411fc087
    df80: ffffffff 00000000 c0630340 c05fdfa4 c0068d00 c0014904 20000013 ffffffff
    [<c00133c4>] (__irq_svc+0x44/0x78) from [<c0014904>] (default_idle+0x30/0x38)
    [<c0014904>] (default_idle+0x30/0x38) from [<c033d698>] (rest_init+0x0/0xd0)
    [<c033d698>] (rest_init+0x0/0xd0) from [<c04833e4>] (unknown_bootoption+0x0/0x1b4)
    ---[ end trace 62d7e7106103129d ]---
    net eth0: EMAC Basic registers

    net eth0: EMAC: EmuControl:00000000, FifoControl: 00000002
    net eth0: EMAC: MBPEnable:00002020, RXUnicastSet: 00000001, RXMaxLen=000005F2
    net eth0: EMAC: MacControl:00008221, MacStatus: 00000000, MacConfig=03030202
    net eth0: EMAC Statistics
    net eth0: EMAC: rx_good_frames:252
    net eth0: EMAC: rx_broadcast_frames:233
    net eth0: EMAC: rx_multicast_frames:0
    net eth0: EMAC: rx_pause_frames:0
    net eth0: EMAC: rx_crcerrors:0
    net eth0: EMAC: rx_align_code_errors:0
    net eth0: EMAC: rx_oversized_frames:0
    net eth0: EMAC: rx_jabber_frames:0
    net eth0: EMAC: rx_undersized_frames:0
    net eth0: EMAC: rx_fragments:3
    net eth0: EMAC: rx_filtered_frames:233
    net eth0: EMAC: rx_qos_filtered_frames:0
    net eth0: EMAC: rx_octets:82221
    net eth0: EMAC: tx_goodframes:160
    net eth0: EMAC: tx_bcastframes:143
    net eth0: EMAC: tx_mcastframes:17
    net eth0: EMAC: tx_pause_frames:0
    net eth0: EMAC: tx_deferred_frames:0
    net eth0: EMAC: tx_collision_frames:0
    net eth0: EMAC: tx_single_coll_frames:0
    net eth0: EMAC: tx_mult_coll_frames:0
    net eth0: EMAC: tx_excessive_collisions:0
    net eth0: EMAC: tx_late_collisions:0
    net eth0: EMAC: tx_underrun:0
    net eth0: EMAC: tx_carrier_sense_errors:0
    net eth0: EMAC: tx_octets:87598
    net eth0: EMAC: net_octets:192231
    net eth0: EMAC: rx_sof_overruns:10
    net eth0: EMAC: rx_mof_overruns:0
    net eth0: EMAC: rx_dma_overruns:0
    net eth0: CPDMA: state: active
    net eth0: CPDMA: txidver: 4ec0020d
    net eth0: CPDMA: txcontrol: 1
    net eth0: CPDMA: txteardown: 0

    ...

    Has anyone run into similar interrupt issue?  Any TI employee?

  • I am still having the lockup issue.  A follow-up question: how do I debug the kernel using early_printk on the AM35x or how do I debug using non-interrupt-driven serial port?  Even though I could see the last thing that printk printed (which always changes but always is in the USB ISR (am35x_musb_interrupt()), the code at those locations looks perfectly fine.  What I am suspecting is that the actual location of the lockup is somewhere after printk last printed but am not able to see because the serial port is hosed from the moment the last serial buffer is displayed. 

    I would appreciate any pointers on how to debug this.

  • Rick,

    I learned from a offline channel that you are using a WIFI dongle on this AM35x board. Could you please dump the descriptor of the dongle for me?

    One way to get the dump is to connect the dongle to a Linux PC, then use 'lsusb' command to find its vid/pid, finally use command 'lsusb -v -d <vid:pid>'  to get the dump.

  • Hi Bin,

    I am using a Wifi dongle that is known to work with our HW but in PIO mode and under kernel 2.6.33. The issue I'm having is with DMA mode under kernel 3.6.11 where ANY usb device insertion and removal silently hangs/locks up the system. Please note that in PIO mode under kernel 3.6.11 device insertion/removal works without any lockup. For what it's worth, I am including the Wifi dongle info below, but it was collected while running the musb driver in PIO mode since in DMA mode, the system hangs the minute once a USB device is plugged in:

    [22:07:36][envoy-00071:~$] lsusb -v -d '0cf3:9271'

    Bus 001 Device 003: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB          2.00
      bDeviceClass       255 Vendor Specific Class
      bDeviceSubClass    255 Vendor Specific Subclass
      bDeviceProtocol       255 Vendor Specific Protocol
      bMaxPacketSize0        64
      idVendor           0x0cf3 Atheros Communications, Inc.
      idProduct          0x9271 AR9271 802.11n
      bcdDevice            1.08
      iManufacturer          16 ATHEROS
      iProduct               32 USB2.0 WLAN
      iSerial                48 12345
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           60
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              500mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           6
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      0
          bInterfaceProtocol      0
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x83  EP 3 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x04  EP 4 OUT
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x05  EP 5 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x06  EP 6 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
    Device Qualifier (for other device speed):
      bLength                10
      bDescriptorType         6
      bcdUSB               2.00
      bDeviceClass          255 Vendor Specific Class
      bDeviceSubClass       255 Vendor Specific Subclass
      bDeviceProtocol       255 Vendor Specific Protocol
      bMaxPacketSize0        64
      bNumConfigurations      1
    Device Status:     0x0000
      (Bus Powered)

    ------------------------------end of lsusb----------------------------------

    I am also attaching 3 files for scenarios where the driver is in DMA mode with and without a device plugged in during boot up, and when the driver is in PIO mode. In the DMA cases, 'dev_dbg' is enabled, so some details about of the USB protocol are printed out.

    Thanks.

    [12:49:44][envoy-00069:~$] uname -a
    Linux envoy-00069 3.6.11-ee6e568a #6 PREEMPT Fri Oct 4 17:31:46 PDT 2013 armv7l GNU/Linux
    [12:49:46][envoy-00069:~$] insmod /lib/modules/3.6.11-ee6e568a/kernel/
    drivers/ net/     
    [12:49:46][envoy-00069:~$] insmod /lib/modules/3.6.11-ee6e568a/kernel/drivers/usb/musb/am35x.ko 
    musb-hdrc musb-hdrc: dma type: dma-cppi41
    6Waiting for PHY clock good...
    _ru: cppi41_queue_mgr_init:  top of func, cppi41_queue_mgr(0xc0c91a6c)
    _ru: cppi41_queue_mgr_init:  after dmaAllocCoh(), cppi41_queue_mgr(0xc0c91a6c), ptr(0xd09b9000)linking_ram[0].phys_addr(0x8acc0000), q_mgr_regs(0xd09b4000), qmgrLRamRgn0BaseReg(0x80)_ru: cppi41_queue_mgr_init:  after __raw_wr()#1
    _ru: cppi41_queue_mgr_init:  after __raw_wr()#2_ru: cppi41_queue_mgr_init:  after kzalloc(), ptr(0xcef9cfc0)
    _ru: cppi41_queue_mgr_init:  allocated_queues[0]=0xcef9cfc0_ru: cppi41_dma_block_init:  top of func, _tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 0shared, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 1tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 1rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 2tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 2rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 3tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 3rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 4tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 4rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 5tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 5rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 6tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 6rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 7tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 7rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 8tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 8rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 9tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 9rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 10tx, max 256
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 10rx, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 11tx, max 256
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 11rx, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 12tx, max 256
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 12rx, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 13shared, max 4096
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 14shared, max 1024
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 15shared, max 1024
    musb-hdrc musb-hdrc: MUSB HDRC host driver
    musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 1
    musb-hdrc musb-hdrc: supports USB remote wakeup
    usb usb1: default language 0x0409
    usb usb1: udev 1, busnum 1, minor = 0
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: MUSB HDRC host driver
    usb usb1: Manufacturer: Linux 3.6.11-ee6e568a musb-hcd
    usb usb1: SerialNumber: musb-hdrc
    usb usb1: usb_probe_device
    usb usb1: configuration #1 chosen from 1 choice
    usb usb1: adding 1-0:1.0 (config #1, interface 0)
    hub 1-0:1.0: usb_probe_interface
    hub 1-0:1.0: usb_probe_interface - got id
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    hub 1-0:1.0: standalone hub
    hub 1-0:1.0: individual port power switching
    hub 1-0:1.0: no over-current protection
    hub 1-0:1.0: Single TT
    hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
    hub 1-0:1.0: power on to power good time: 10ms
    hub 1-0:1.0: local power source is good
    hub 1-0:1.0: enabling power on all ports
    musb-hdrc musb-hdrc: <== devctl 98
    musb-hdrc musb-hdrc: HOST mode, status 0, devctl 99 B
    musb-hdrc musb-hdrc: USB Host mode controller at d09b0000 using DMA, IRQ 71
    musb-hdrc musb-hdrc: VBUS on (a_wait_vrise), devctl 19
    [12:50:13][envoy-00069:~$] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
    musb-hdrc musb-hdrc: ** IRQ host usb0010 tx0000 rx0000
    musb-hdrc musb-hdrc: <== Power=e0, DevCtl=5d, int_usb=0x10
    musb-hdrc musb-hdrc: CONNECT (a_host) devctl 5d
    hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
    hub 1-0:1.0: ****_ru: hub_port_connect_change: port 1, status 0101, change 0001, 12 Mb/s
    hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
    usb 1-1: new high-speed USB device number 2 using musb-hdrc
    musb-hdrc musb-hdrc: qh cac21880 urb cf2e76c0 dev0 ep0out, hw_ep 0, cf0098c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e76c0 spd3 dev0 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf0098c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21880, count 0, urb cf2e76c0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21880, count 18, urb cf2e76c0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21880, count 0, urb cf2e76c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e76c0 usb_api_blocking_completion+0x0/0x28 (0), dev0 ep0in, 18/64
    musb-hdrc musb-hdrc: qh cac21600 urb cf2e76c0 dev0 ep0out, hw_ep 0, cf0098c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e76c0 spd3 dev0 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf0098c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21600, count 0, urb cf2e76c0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cac21600, count 0, urb cf2e76c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e76c0 usb_api_blocking_completion+0x0/0x28 (0), dev0 ep0out, 0/0
    musb-hdrc musb-hdrc: qh cac21600 urb cf2e76c0 dev2 ep0out, hw_ep 0, ceef6800/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e76c0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef6800
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21600, count 0, urb cf2e76c0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21600, count 18, urb cf2e76c0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21600, count 0, urb cf2e76c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e76c0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 18/18
    musb-hdrc musb-hdrc: qh cac21600 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c6c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c6c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21600, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21600, count 9, urb cac7fec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21600, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 9/9
    musb-hdrc musb-hdrc: qh cac21880 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c6c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c6c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21880, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21880, count 41, urb cac7fec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21880, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 41/41
    usb 1-1: udev 2, busnum 1, minor = 1
    usb 1-1: New USB device found, idVendor=0424, idProduct=2512
    usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    usb 1-1: usb_probe_device
    usb 1-1: configuration #1 chosen from 1 choice
    musb-hdrc musb-hdrc: qh cac215c0 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c500/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c500
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac215c0, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cac215c0, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    usb 1-1: adding 1-1:1.0 (config #1, interface 0)
    hub 1-1:1.0: usb_probe_interface
    hub 1-1:1.0: usb_probe_interface - got id
    hub 1-1:1.0: USB hub found
    musb-hdrc musb-hdrc: qh cef2e7c0 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c2c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c2c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cef2e7c0, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cef2e7c0, count 9, urb cac7fec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cef2e7c0, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 9/15
    hub 1-1:1.0: 2 ports detected
    hub 1-1:1.0: compound device; port removable status: FF
    hub 1-1:1.0: individual port power switching
    hub 1-1:1.0: individual port over-current protection
    musb-hdrc musb-hdrc: qh cac21400 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c240/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c240
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21400, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cac21400, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    hub 1-1:1.0: TT per port
    hub 1-1:1.0: TT requires at most 8 FS bit times (666 ns)
    hub 1-1:1.0: power on to power good time: 100ms
    musb-hdrc musb-hdrc: qh cac21400 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c140/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c140
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21400, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21400, count 2, urb cac7fec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21400, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 2/2
    musb-hdrc musb-hdrc: qh cac21400 urb cac7fec0 dev2 ep0out, hw_ep 0, cef9c180/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c180
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21400, count 0, urb cac7fec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21400, count 4, urb cac7fec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21400, count 0, urb cac7fec0, stage 4
    musb-hdrc musb-hdrc: complete cac7fec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    hub 1-1:1.0: local power source is good
    hub 1-1:1.0: enabling power on all ports
    musb-hdrc musb-hdrc: qh cac21400 urb cf2e76c0 dev2 ep0out, hw_ep 0, cef9c180/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e76c0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c180
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21400, count 0, urb cf2e76c0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cac21400, count 0, urb cf2e76c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e76c0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    musb-hdrc musb-hdrc: qh cac21400 urb cac7fe00 dev2 ep0out, hw_ep 0, cef9c180/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fe00 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cef9c180
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21400, count 0, urb cac7fe00, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cac21400, count 0, urb cac7fe00, stage 4
    musb-hdrc musb-hdrc: complete cac7fe00 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
    hub 1-0:1.0: port 1 enable change, status 00000503
    musb-hdrc musb-hdrc: qh cac21400 urb cac7fe00 dev2 ep0out, hw_ep 0, cee87f80/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7fe00 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cee87f80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21400, count 0, urb cac7fe00, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21400, count 4, urb cac7fe00, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21400, count 0, urb cac7fe00, stage 4
    musb-hdrc musb-hdrc: complete cac7fe00 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    musb-hdrc musb-hdrc: qh cac21b80 urb cf2e76c0 dev2 ep0out, hw_ep 0, cee87f80/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e76c0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cee87f80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21b80, count 0, urb cf2e76c0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21b80, count 4, urb cf2e76c0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21b80, count 0, urb cf2e76c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e76c0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    musb-hdrc musb-hdrc: qh cac21b80 periodic slot 10
    musb-hdrc musb-hdrc: qh cac21b80 urb cac7fec0 dev2 ep1in-intr, hw_ep 10, cef9c380/1
    musb-hdrc musb-hdrc: <-- hw10 urb cac7fec0 spd3 dev2 ep1in h_addr00 h_port00 bytes 1
    musb-hdrc musb-hdrc: RXCSR10 := 3020
    hub 1-1:1.0: state 7 ports 2 chg 0000 evt 0000
    
    [12:50:16][envoy-00069:~$] 
    [12:50:17][envoy-00069:~$] 
    [12:50:17][envoy-00069:~$] 
    [12:50:19][envoy-00069:~$] lsusb -v
    
    Bus 001 Device 002: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
    Devicemusb-hdrc musb-hdrc: qh cac21840 urb cac7f080 dev2 ep0out, hw_ep 0, cf009540/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7f080 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf009540
    musb-hdrc musb-hdrc: Start TX0 pio
     Descriptor:
      musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21840, count 0, urb cac7f080, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    bLength         musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21840, count 9, urb cac7f080, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
           18
      bDemusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21840, count 0, urb cac7f080, stage 4
    scriptorType    musb-hdrc musb-hdrc: complete cac7f080 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 9/13
         1
      bcdUSB               2musb-hdrc musb-hdrc: qh cac21840 urb cac7f140 dev2 ep0out, hw_ep 0, cf009540/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7f140 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf009540
    musb-hdrc musb-hdrc: Start TX0 pio
    .00
      bDeviceClmusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21840, count 0, urb cac7f140, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    ass            9musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21840, count 4, urb cac7f140, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
     Hub
      bDeviceSmusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21840, count 0, urb cac7f140, stage 4
    ubClass         0 Unused
      bDevmusb-hdrc musb-hdrc: complete cac7f140 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    iceProtocol     musb-hdrc musb-hdrc: qh cac21840 urb cac7f140 dev2 ep0out, hw_ep 0, cf009540/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7f140 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf009540
    musb-hdrc musb-hdrc: Start TX0 pio
        2 TT per pormusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21840, count 0, urb cac7f140, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    t
      bMaxPacketSmusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21840, count 4, urb cac7f140, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    ize0        64
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21840, count 0, urb cac7f140, stage 4
      idVendor      musb-hdrc musb-hdrc: complete cac7f140 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
         0x0424 Stanmusb-hdrc musb-hdrc: qh cac21840 urb cac7f080 dev2 ep0out, hw_ep 0, cf009540/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7f080 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf009540
    musb-hdrc musb-hdrc: Start TX0 pio
    dard Microsystemmusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21840, count 0, urb cac7f080, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    s Corp.
      idPromusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21840, count 10, urb cac7f080, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    duct          0xmusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21840, count 0, urb cac7f080, stage 4
    2512 USB 2.0 Hub
      bcdDevice   musb-hdrc musb-hdrc: complete cac7f080 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 10/10
             b.b3
      iManufacturer  musb-hdrc musb-hdrc: qh cac21840 urb cac7f080 dev2 ep0out, hw_ep 0, cf009540/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7f080 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf009540
    musb-hdrc musb-hdrc: Start TX0 pio
             0 
      imusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21840, count 0, urb cac7f080, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    Product         musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0204, qh cac21840, count 0, urb cac7f080, stage 2
    musb-hdrc musb-hdrc: STALLING ENDPOINT
    musb-hdrc musb-hdrc: aborting
    musb-hdrc musb-hdrc: complete cac7f080 usb_api_blocking_completion+0x0/0x28 (-32), dev2 ep0in, 0/4
           0 
      iSemusb-hdrc musb-hdrc: qh cac21840 urb cac7f080 dev2 ep0out, hw_ep 0, cf009540/8
    musb-hdrc musb-hdrc: --> hw0 urb cac7f080 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf009540
    musb-hdrc musb-hdrc: Start TX0 pio
    rial            musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cac21840, count 0, urb cac7f080, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
         0 
      bNumCmusb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cac21840, count 2, urb cac7f080, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    onfigurations   musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cac21840, count 0, urb cac7f080, stage 4
       1
      Configurmusb-hdrc musb-hdrc: complete cac7f080 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 2/2
    ation Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           41
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0xe0
          Self Powered
          Remote Wakeup
        MaxPower                2mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           1
          bInterfaceClass         9 Hub
          bInterfaceSubClass      0 Unused
          bInterfaceProtocol      1 Single TT
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0001  1x 1 bytes
            bInterval              12
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       1
          bNumEndpoints           1
          bInterfaceClass         9 Hub
          bInterfaceSubClass      0 Unused
          bInterfaceProtocol      2 TT per port
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0001  1x 1 bytes
            bInterval              12
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             2
      wHubCharacteristic 0x000d
        Per-port power switching
        Compound device
        Per-port overcurrent protection
        TT think time 8 FS bits
      bPwrOn2PwrGood       50 * 2 milli seconds
      bHubContrCurrent      1 milli Ampere
      DeviceRemovable    0x06
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
    Device Qualifier (for other device speed):
      bLength                10
      bDescriptorType         6
      bcdUSB               2.00
      bDeviceClass            9 Hub
      bDeviceSubClass         0 Unused
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      bNumConfigurations      1
    Device Status:     0x0001
      Self Powered
    
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            9 Hub
      bDeviceSubClass         0 Unused
      bDeviceProtocol         1 Single TT
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0002 2.0 root hub
      bcdDevice            3.06
      iManufacturer           3 Linux 3.6.11-ee6e568a musb-hcd
      iProduct                2 MUSB HDRC host driver
      iSerial                 1 musb-hdrc
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0xe0
          Self Powered
          Remote Wakeup
        MaxPower                0mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           1
          bInterfaceClass         9 Hub
          bInterfaceSubClass      0 Unused
          bInterfaceProtocol      0 Full speed (or root) hub
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0004  1x 4 bytes
            bInterval              12
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             1
      wHubCharacteristic 0x0011
        Per-port power switching
        No overcurrent protection
        TT think time 8 FS bits
      bPwrOn2PwrGood        5 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x02
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0503 highspeed power enable connect
    Device Status:     0x0001
      Self Powered
    [12:50:27][envoy-00069:~$] 
    

    [12:56:42][envoy-00069:~$] uname -a
    Linux envoy-00069 3.6.11-ee6e568a #6 PREEMPT Fri Oct 4 17:31:46 PDT 2013 armv7l GNU/Linux
    [12:56:48][envoy-00069:~$] 
    [12:56:49][envoy-00069:~$] 
    [12:56:49][envoy-00069:~$] insmod /lib/modules/3.6.11-ee6e568a/kernel/drivers/usb/musb/am35x.ko 
    musb-hdrc musb-hdrc: dma type: dma-cppi41
    6Waiting for PHY clock good...
    _ru: cppi41_queue_mgr_init:  top of func, cppi41_queue_mgr(0xc0c91a6c)
    _ru: cppi41_queue_mgr_init:  after dmaAllocCoh(), cppi41_queue_mgr(0xc0c91a6c), ptr(0xd09b9000)linking_ram[0].phys_addr(0x8b0b0000), q_mgr_regs(0xd09b4000), qmgrLRamRgn0BaseReg(0x80)_ru: cppi41_queue_mgr_init:  after __raw_wr()#1
    _ru: cppi41_queue_mgr_init:  after __raw_wr()#2_ru: cppi41_queue_mgr_init:  after kzalloc(), ptr(0xceef4fc0)
    _ru: cppi41_queue_mgr_init:  allocated_queues[0]=0xceef4fc0_ru: cppi41_dma_block_init:  top of func, _tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    _ru: cppi41_dma_block_init: b4 accessing sched_tbl(0xbf01ac40)
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 0shared, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 1tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 1rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 2tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 2rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 3tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 3rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 4tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 4rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 5tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 5rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 6tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 6rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 7tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 7rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 8tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 8rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 9tx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 9rx, max 512
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 10tx, max 256
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 10rx, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 11tx, max 256
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 11rx, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 12tx, max 256
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 12rx, max 64
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 13shared, max 4096
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 14shared, max 1024
    musb-hdrc musb-hdrc: musb-hdrc: hw_ep 15shared, max 1024
    musb-hdrc musb-hdrc: MUSB HDRC host driver
    musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 1
    musb-hdrc musb-hdrc: supports USB remote wakeup
    usb usb1: default language 0x0409
    usb usb1: udev 1, busnum 1, minor = 0
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: MUSB HDRC host driver
    usb usb1: Manufacturer: Linux 3.6.11-ee6e568a musb-hcd
    usb usb1: SerialNumber: musb-hdrc
    usb usb1: usb_probe_device
    usb usb1: configuration #1 chosen from 1 choice
    usb usb1: adding 1-0:1.0 (config #1, interface 0)
    hub 1-0:1.0: usb_probe_interface
    hub 1-0:1.0: usb_probe_interface - got id
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    hub 1-0:1.0: standalone hub
    hub 1-0:1.0: individual port power switching
    hub 1-0:1.0: no over-current protection
    hub 1-0:1.0: Single TT
    hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
    hub 1-0:1.0: power on to power good time: 10ms
    hub 1-0:1.0: local power source is good
    hub 1-0:1.0: enabling power on all ports
    musb-hdrc musb-hdrc: <== devctl 98
    musb-hdrc musb-hdrc: HOST mode, status 0, devctl 99 B
    musb-hdrc musb-hdrc: USB Host mode controller at d09b0000 using DMA, IRQ 71
    [12:57:12][envoy-00069:~$] musb-hdrc musb-hdrc: VBUS on (a_wait_vrise), devctl 19
    hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
    musb-hdrc musb-hdrc: ** IRQ host usb0010 tx0000 rx0000
    musb-hdrc musb-hdrc: <== Power=e0, DevCtl=5d, int_usb=0x10
    musb-hdrc musb-hdrc: CONNECT (a_host) devctl 5d
    hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
    hub 1-0:1.0: ****_ru: hub_port_connect_change: port 1, status 0101, change 0001, 12 Mb/s
    hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
    usb 1-1: new high-speed USB device number 2 using musb-hdrc
    musb-hdrc musb-hdrc: qh cb000a00 urb cf2e30c0 dev0 ep0out, hw_ep 0, cfae9d80/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e30c0 spd3 dev0 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cfae9d80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000a00, count 0, urb cf2e30c0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000a00, count 18, urb cf2e30c0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000a00, count 0, urb cf2e30c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e30c0 usb_api_blocking_completion+0x0/0x28 (0), dev0 ep0in, 18/64
    musb-hdrc musb-hdrc: qh cb000340 urb cf2e30c0 dev0 ep0out, hw_ep 0, cfae9d80/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e30c0 spd3 dev0 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cfae9d80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000340, count 0, urb cf2e30c0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb000340, count 0, urb cf2e30c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e30c0 usb_api_blocking_completion+0x0/0x28 (0), dev0 ep0out, 0/0
    musb-hdrc musb-hdrc: qh cb000340 urb cf2e30c0 dev2 ep0out, hw_ep 0, cf9f0800/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e30c0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cf9f0800
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000340, count 0, urb cf2e30c0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000340, count 18, urb cf2e30c0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000340, count 0, urb cf2e30c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e30c0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 18/18
    musb-hdrc musb-hdrc: qh cb000340 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef46c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef46c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000340, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000340, count 9, urb cee27ec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000340, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 9/9
    musb-hdrc musb-hdrc: qh cb000a00 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef46c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef46c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000a00, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000a00, count 41, urb cee27ec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000a00, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 41/41
    usb 1-1: udev 2, busnum 1, minor = 1
    usb 1-1: New USB device found, idVendor=0424, idProduct=2512
    usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    usb 1-1: usb_probe_device
    usb 1-1: configuration #1 chosen from 1 choice
    musb-hdrc musb-hdrc: qh cb000300 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef4500/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef4500
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000300, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb000300, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    usb 1-1: adding 1-1:1.0 (config #1, interface 0)
    hub 1-1:1.0: usb_probe_interface
    hub 1-1:1.0: usb_probe_interface - got id
    hub 1-1:1.0: USB hub found
    musb-hdrc musb-hdrc: qh cb000280 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef42c0/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef42c0
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000280, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000280, count 9, urb cee27ec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000280, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 9/15
    hub 1-1:1.0: 2 ports detected
    hub 1-1:1.0: compound device; port removable status: FF
    hub 1-1:1.0: individual port power switching
    hub 1-1:1.0: individual port over-current protection
    musb-hdrc musb-hdrc: qh cb0002c0 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef4240/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef4240
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb0002c0, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb0002c0, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    hub 1-1:1.0: TT per port
    hub 1-1:1.0: TT requires at most 8 FS bit times (666 ns)
    hub 1-1:1.0: power on to power good time: 100ms
    musb-hdrc musb-hdrc: qh cb0002c0 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef4140/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef4140
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb0002c0, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb0002c0, count 2, urb cee27ec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb0002c0, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 2/2
    musb-hdrc musb-hdrc: qh cb0002c0 urb cf2e30c0 dev2 ep0out, hw_ep 0, ceef4180/8
    musb-hdrc musb-hdrc: --> hw0 urb cf2e30c0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef4180
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb0002c0, count 0, urb cf2e30c0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb0002c0, count 4, urb cf2e30c0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb0002c0, count 0, urb cf2e30c0, stage 4
    musb-hdrc musb-hdrc: complete cf2e30c0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    hub 1-1:1.0: local power source is good
    hub 1-1:1.0: enabling power on all ports
    musb-hdrc musb-hdrc: qh cb0002c0 urb cee27ec0 dev2 ep0out, hw_ep 0, ceef4180/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef4180
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb0002c0, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb0002c0, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    musb-hdrc musb-hdrc: qh cb0002c0 urb cee27e00 dev2 ep0out, hw_ep 0, ceef4180/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27e00 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf ceef4180
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb0002c0, count 0, urb cee27e00, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb0002c0, count 0, urb cee27e00, stage 4
    musb-hdrc musb-hdrc: complete cee27e00 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
    hub 1-0:1.0: port 1 enable change, status 00000503
    musb-hdrc musb-hdrc: qh cb0002c0 urb cee27e00 dev2 ep0out, hw_ep 0, cb036f80/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27e00 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cb036f80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb0002c0, count 0, urb cee27e00, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb0002c0, count 4, urb cee27e00, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb0002c0, count 0, urb cee27e00, stage 4
    musb-hdrc musb-hdrc: complete cee27e00 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    musb-hdrc musb-hdrc: qh cb000540 urb cee27ec0 dev2 ep0out, hw_ep 0, cb036f80/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cb036f80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000540, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000540, count 4, urb cee27ec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000540, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    hub 1-1:1.0: *****_ru: hub_activate: port 2: status 0101 change 0001
    musb-hdrc musb-hdrc: qh cb000540 urb cee27ec0 dev2 ep0out, hw_ep 0, cb036f80/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cb036f80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000540, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb000540, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    musb-hdrc musb-hdrc: qh cb000540 periodic slot 10
    musb-hdrc musb-hdrc: qh cb000540 urb cf2e30c0 dev2 ep1in-intr, hw_ep 10, ceef4380/1
    musb-hdrc musb-hdrc: <-- hw10 urb cf2e30c0 spd3 dev2 ep1in h_addr00 h_port00 bytes 1
    musb-hdrc musb-hdrc: RXCSR10 := 3020
    hub 1-1:1.0: state 7 ports 2 chg 0004 evt 0000
    musb-hdrc musb-hdrc: qh cb000380 urb cee27ec0 dev2 ep0out, hw_ep 0, cb036f80/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cb036f80
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000380, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0001, qh cb000380, count 4, urb cee27ec0, stage 2
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0842
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0800, qh cb000380, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0in, 4/4
    hub 1-1:1.0: ****_ru: hub_port_connect_change: port 2, status 0101, change 0000, 12 Mb/s
    musb-hdrc musb-hdrc: qh cb000380 urb cee27ec0 dev2 ep0out, hw_ep 0, cb036f40/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cb036f40
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000380, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start no-DATA
    musb-hdrc musb-hdrc: ep0 STATUS, csr 0860
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0841, qh cb000380, count 0, urb cee27ec0, stage 4
    musb-hdrc musb-hdrc: complete cee27ec0 usb_api_blocking_completion+0x0/0x28 (0), dev2 ep0out, 0/0
    musb-hdrc musb-hdrc: qh cb000380 urb cee27ec0 dev2 ep0out, hw_ep 0, cb036f40/8
    musb-hdrc musb-hdrc: --> hw0 urb cee27ec0 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
    musb-hdrc musb-hdrc: TX ep0 fifo d09b0420 count 8 buf cb036f40
    musb-hdrc musb-hdrc: Start TX0 pio
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    musb-hdrc musb-hdrc: <== csr0 0200, qh cb000380, count 0, urb cee27ec0, stage 1
    musb-hdrc musb-hdrc: start IN-DATA
    musb-hdrc musb-hdrc: ** IRQ host usb0008 tx0001 rx0000
    musb-hdrc musb-hdrc: <== Power=f0, DevCtl=5d, int_usb=0x8
    

    [22:07:22][envoy-00071:~$] lsusb
    Bus 001 Device 003: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n
    Bus 001 Device 002: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    [22:07:30][envoy-00071:~$] 
    [22:07:36][envoy-00071:~$] 
    [22:07:36][envoy-00071:~$] lsusb -v -d '0cf3:9271'
    
    Bus 001 Device 0_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    03: ID 0cf3:9271_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
     Atheros Communi_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    cations, Inc. AR9271 802.11n
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB          _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
         2.00
      bDe_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    viceClass       _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
       255 Vendor Specific Class
      _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    bDeviceSubClass _ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
          255 Vendor_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
     Specific Subcla_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    ss
      bDevicePro_ru: handle_IRQ: irq 71, nr_irqs 460
    _ru: am35x_musb_interrupt: b4 spin_lock_irqsave(), irq 71, musb cf9dc100,ret 0x0, reg_base 0xd0830000
    _ru: am35x_musb_interrupt: after spin_unlock_irqrestore(), irq 71, musb cf9dc100,ret 0x1
    tocol       255 Vendor Specific Protocol
      bMaxPacketSize0        64
      idVendor           0x0cf3 Atheros Communications, Inc.
      idProduct          0x9271 AR9271 802.11n
      bcdDevice            1.08
      iManufacturer          16 ATHEROS
      iProduct               32 USB2.0 WLAN
      iSerial                48 12345
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           60
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              500mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           6
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      0 
          bInterfaceProtocol      0 
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x83  EP 3 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x04  EP 4 OUT
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x05  EP 5 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x06  EP 6 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
    Device Qualifier (for other device speed):
      bLength                10
      bDescriptorType         6
      bcdUSB               2.00
      bDeviceClass          255 Vendor Specific Class
      bDeviceSubClass       255 Vendor Specific Subclass
      bDeviceProtocol       255 Vendor Specific Protocol
      bMaxPacketSize0        64
      bNumConfigurations      1
    Device Status:     0x0000
      (Bus Powered)
    [22:08:22][envoy-00071:~$] 
    

  • Rick,

    I was asking for the descriptor that is because AM35x has MUSB hw bug which affects some WIFI dongles. But the descriptor dump tells this dongle is not affected by this bug. Anyway you mentioned ANY usb device will hang the system also tells this DMA issue is not related to this hw bug.

    At this point I suspect the DMA hang issue is due to MUSB/DMA driver porting from Arago to 3.6.11 kernel. To confirm this, could you please do one of followings?

    1. ti.com provides Linux SDK 6.0 which has Arago kernel 2.6.37 for AM35x EVM. How difficult to port this kernel to you board? I'd like to check if the hang issue exists on this 2.6.37 kernel.

    http://software-dl.ti.com/sitara_linux/esd/AM35xSDK/latest/index_FDS.html

    2. If (1) is difficult, could you please contact TI support to get an AM35x EVM to test with any USB device you have, to see if the system hangs with CPPI DMA enabled on the EVM with 2.6.37 kernel?

  • (1) was attempted before but the difference between the 2 kernels made it very difficult to port that we had to take the 3.2 to 3.6.11 route instead.  I am downloading the source for SDK 6.0 and do some diffs.

    I will work with our FAE for (2).  In the meantime, is there anywhere in the CPPI4.1 DMA code that you can think of that I should be looking at? Also, is there any pointer that you could give on debugging this silent hang issue, e.g. debug flags, low-level tracing, etc.?

  • Rick,

    I doubt it is a hw or USB device issue, since PIO mode works fine. So it most likely to be a sw issue, specifically CPPI driver on your 3.6.11 kernel.

    The only known working CPPI driver for AM35x is in the 2.6.37 kernel in Arago linux-omap3.git, but I think you did not take this one to 3.6.11, right? So I would think it is difficult to debug your current 3.6.11 kernel, because we don't know the base 3.2 kernel is good for am35x or not.

    My plan is

    1. get an AM35x evm up & running with the SDK6.0 kernel with CPPI41 enabled, and test all your usb devices, to get a good CPPI driver base;

    2. port the SDK 6.0 kernel to your board;

    3. If you really have to use the 3.6.11 kernel, then port the CPPI/MUSB drivers in SDK6.0 to 3.6.11, but I would think this is not a trivial effort.

    What do you think Rick?

  • #1 sounds like a good start; we happen to have an AM3517evm board in our group, so I'll try to get it loaded up with SDK 6.0 and test the musb driver w/ DMA with our wifi dongles.

    Yes, my current port was from 3.2, but I did use the Arago 'omap3' GIT repo, i.e. based on 2.6.37, as reference.  #2 might not be a good option for us since we would need to get port our platform-dependent code to 2.6.37 -- a much much bigger effort + testing.  #3 might actually not be too big of an effort given that I've done it once before to get to where I'm at right now, and we already got our custom code ported to 3.6.11.

    Thanks, Bin!  I'll post back updates.

  • Just a quick update -- I got the am3517evm flashed to the latest SDK (v6.0) using the pre-built binaries.  However, CPPI4.1 DMA mode is turned off in the pre-built kernel.  Is there a pre-built kernel with CPPI4.1 DMA turned on that I can use to verify my wifi devices? I know that I can always set up an SDK build environment and rebuild the kernel, but I'm running out of time on this project.

    Thanks.

  • Rick,

    Can you please try the attached uImage? This is the one I built with DMA enabled back in April from the Arago linux-omap3.git tree.

    Please ignore the .zip extension, just rename it to uImage. (This forum only allows to attach certain types.)

    3113.uImage.am3517.git.dma.zip

  • Thanks for the DMA-enabled kernel, Bin!  I'm able to flash it and confirmed that our wifi dongle was detected in the High-speed-only port, but I'm unable to test the wifi dongle in the OTG port since we don't have the adapter for it, yet.

    Our HW only uses the OTG port w/ built-in hub connected directly to the AM3505's OTG PHY.  The other 2 USB ports in the SoC are not used. In my kernel config file, I only enabled the CPPI4.1 DMA & MUSB HDRC-related options only, no EHCI or OHCI.  Is that correct?

    Could you please send me the source for this build, so that I can compare it with my code? Also, do you know where I can get the tech ref manual (TRM) for the Mentor's USB module that is in the AM35x SoC?

  • Rick Ung said:
    our wifi dongle was detected in the High-speed-only port,

    Well, good it works, but as you wondered, this test is irrelevant to the otg issue on your board.

    Rick Ung said:
    since we don't have the adapter for it, yet.

    It is not easy to find a mini-A-male-to-type-A-female cable, but you can directly ground the ID pin at the back of the mini-AB receptacle on the EVM, then you can use the common mini-B-male-to-type-A-female to test on the evm otg port.

    Rick Ung said:
    I only enabled the CPPI4.1 DMA & MUSB HDRC-related options only, no EHCI or OHCI.  Is that correct?

    That is correct, we are only interested in the otg controller.

    The kernel source is http://arago-project.org/git/projects/?p=linux-omap3.git;a=summary, please use the OMAPPSP_04.02.00.07 branch.

    Or you can download the kernel source: am3517-evm-sdk-src-06.00.00.00.tar.gz from http://software-dl.ti.com/sitara_linux/esd/AM35xSDK/latest/index_FDS.html

    The above two kernels are slightly different, but should not matter for your test. The uImage I gave you was built from the arago git tree.

    The MUSB documentation is not open to public, it requires NDA.

  • Bin Liu said:

    since we don't have the adapter for it, yet.

    It is not easy to find a mini-A-male-to-type-A-female cable, but you can directly ground the ID pin at the back of the mini-AB receptacle on the EVM, then you can use the common mini-B-male-to-type-A-female to test on the evm otg port.

    [/quote]

    Another easier way: short the two points of R133 which is close to the mini-AB port, which will ground the ID pin.

  • Rick,

    If the am35x evm you have has R132 populated, please remove it. This resistor should NOT be there regardless.

  • Yes, our EVM has the R132 populated; will removing it affect any other functionality of the EVM? I just want to be absolutely sure because we may be using it for other projects in the future. 

    What is the use of the ID pin? To toggle between host & peripheral/gadget mode?

    Also, does the 'mode' field in the 'musb_board_data' structure have to be MUSB_OTG or can it be MUSB_HOST?  We actually only care about the host mode. If it has to be OTG, where do I set to put the MUSB driver in HOST mode?

    static struct omap_musb_board_data envoyr_musb_board_data = {
        .interface_type     = MUSB_INTERFACE_ULPI,
    #if 0
          .mode            = MUSB_OTG,
    #else
        .mode               = MUSB_HOST,
    #endif
        .power              = 500,
        .set_phy_power      = am35x_musb_phy_power,
        .clear_irq          = am35x_musb_clear_irq,
        .set_mode           = am35x_set_mode,
        .reset              = am35x_musb_reset,
    };

    Thanks for the quick response.

  • Rick Ung said:
    Yes, our EVM has the R132 populated; will removing it affect any other functionality of the EVM? I just want to be absolutely sure because we may be using it for other projects in the future. 

    R132 pulls up the ID pin, which is wrong design. The ID pin should never be pulled up. It can only be grounded or left float.

    Rick Ung said:
    What is the use of the ID pin? To toggle between host & peripheral/gadget mode?

    That is correct. Since you don't have a mini-A cable to ground the ID pin, you can short R133 to ground the ID pin on the EVM to force it to host mode. Once you have done the test, you can remove the short.

    Rick Ung said:
    Also, does the 'mode' field in the 'musb_board_data' structure have to be MUSB_OTG or can it be MUSB_HOST? 

    for host mode, you should set it to MUSB_HOST.

  • Hi Bin,

    I finally got the right combination of cables to put the OTG port in host mode. I decided against shorting R133 because I don't want to have to give up being able to use the TI flashing program, so I got a modified mini male to male type A plus a type A female-female coupler.  It seems to be working.  These are the messages during un/plugging of a wifi stick device:

    Plugging in USB 2.0 device:


    root@am3517-evm:~# [  256.706115] musb_h_ep0_irq 1162: no URB for end 0
    [  256.986755] usb 2-1: new high speed USB device using musb-hdrc and address 7
    [  257.160705] usb 2-1: device v0cf3 p9271 is not supported
    [  257.166381] usb 2-1: New USB device found, idVendor=0cf3, idProduct=9271
    [  257.173431] usb 2-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
    [  257.181274] usb 2-1: Product: USB2.0 WLAN
    [  257.185546] usb 2-1: Manufacturer: ATHEROS
    [  257.189910] usb 2-1: SerialNumber: 12345

    Unplugging the same device:


    root@am3517-evm:~# [  240.777343] musb_g_ep0_irq 799: SETUP packet len 0 != 8 ?
    [  240.783599] usb 2-1: USB disconnect, address 6

    Are the error messages (in red) in both the insertion/removal cases normal?  I don't see them when using the EHCI port.

  • Rick,

    Rick Ung said:
    so I got a modified mini male to male type A plus a type A female-female coupler.

    This is fine, as long as you have a way to ground the ID pin.

    Rick Ung said:
    [  257.160705] usb 2-1: device v0cf3 p9271 is not supported

    This message is fine at the moment. You just missed a OTG whitelist config I believe.

    Rick Ung said:
    root@am3517-evm:~# [  256.706115] musb_h_ep0_irq 1162: no URB for end 0

    Rick Ung said:
    root@am3517-evm:~# [  240.777343] musb_g_ep0_irq 799: SETUP packet len 0 != 8 ?

    These messages are not normal, they mean problems, most likely signal integrity, not sure on host or device side though.

    I believe you see these errors in both PIO and DMA mode, did you?

    Have you seen the same errors with other usb devices?

  • I tried 3 devices: 2 are USB 2.0 & 1 USB 1.1. They all showed these errors.  One thing I noticed was that once in a while the "no URB for end 0" didn't show up.  I didn't try them with PIO, yet. 

    I would like to test full wifi functionality on the evm, but I don't have the drivers for the Ralink chipset (rt2800usb); would you happen to have pre-compiled drivers for this chipset?

  • Rick,

    Sorry for my late response. I got distracted.

    Rick Ung said:
    I tried 3 devices: 2 are USB 2.0 & 1 USB 1.1. They all showed these errors.

    Could you please provide some details of these devices? It is interesting all device showed the issue on evm.

    Rick Ung said:
    I didn't try them with PIO, yet. 

    Please let me know the result once you get a chance to test out PIO mode.

    Rick Ung said:
    I would like to test full wifi functionality on the evm, but I don't have the drivers for the Ralink chipset (rt2800usb); would you happen to have pre-compiled drivers for this chipset?

    Is it the config in the following? I will try to compile it for you next Tuesday. I will be out of town until then.

    config RT2800USB
            tristate "Ralink rt2800 (USB) support (EXPERIMENTAL)"
            depends on USB && EXPERIMENTAL
            select RT2800_LIB
            select RT2X00_LIB_USB
            select RT2X00_LIB_HT
            select RT2X00_LIB_FIRMWARE
            select RT2X00_LIB_CRYPTO
            select CRC_CCITT
            ---help---
              This adds experimental support for rt2800 wireless chipset family.
              Supported chips: RT2770, RT2870 & RT3070.

              Known issues:
              - support for RT2870 chips doesn't work with 802.11n APs yet
              - support for RT3070 chips is non-functional at the moment

              When compiled as a module, this driver will be called "rt2800usb.ko".

  • Hi Bin,

    Here are the messages that spit out when the 3 devices were plugged into & removed from the OTG port:

    USB 1.1 device (zigbee):

    root@am3517-evm:~# [  245.323913] musb_h_ep0_irq 1162: no URB for end 0
    [  245.604217] usb 2-1: new full speed USB device using musb-hdrc and address 9
    [  245.763732] usb 2-1: device v10c4 p8293 is not supported
    [  245.769409] usb 2-1: New USB device found, idVendor=10c4, idProduct=8293
    [  245.776519] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  245.784057] usb 2-1: Product: Telegesis USB Device
    [  245.789093] usb 2-1: Manufacturer: Silicon Labs
    [  245.793914] usb 2-1: SerialNumber: 01100246

    root@am3517-evm:~# [  250.379913] usb 2-1: USB disconnect, address 9

    USB 2.0 device #1 (wifi):

    root@am3517-evm:~# [  255.266723] musb_h_ep0_irq 1162: no URB for end 0
    [  255.549560] usb 2-1: new high speed USB device using musb-hdrc and address 10
    [  255.723388] usb 2-1: device v0cf3 p9271 is not supported
    [  255.729095] usb 2-1: New USB device found, idVendor=0cf3, idProduct=9271
    [  255.736114] usb 2-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
    [  255.743927] usb 2-1: Product: USB2.0 WLAN
    [  255.748199] usb 2-1: Manufacturer: ATHEROS
    [  255.752563] usb 2-1: SerialNumber: 12345

    root@am3517-evm:~#
    root@am3517-evm:~# [  262.805816] musb_g_ep0_irq 799: SETUP packet len 0 != 8 ?
    [  262.811889] usb 2-1: USB disconnect, address 10

    USB 2.0 device #2 (wifi):

    root@am3517-evm:~# [  308.449584] musb_h_ep0_irq 1162: no URB for end 0
    [  308.729217] usb 2-1: new high speed USB device using musb-hdrc and address 12
    [  308.904754] usb 2-1: device v148f p5370 is not supported
    [  308.910400] usb 2-1: New USB device found, idVendor=148f, idProduct=5370
    [  308.917510] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  308.925079] usb 2-1: Product: 802.11 n WLAN
    [  308.929473] usb 2-1: Manufacturer: Ralink
    [  308.933746] usb 2-1: SerialNumber: 1.0

    root@am3517-evm:~# [  313.181396] usb 2-1: USB disconnect, address 12

    Rick Ung said:
    Is it the config in the following? I will try to compile it for you next Tuesday. I will be out of town until then.

    Since the Ralink chipsets that we use may not be supported in the 2.6.37 kernel, would you also build the drivers ath9k_htc.ko & rtl8192cu.ko also?  That way I have all 3 to try out with.  Please make sure that these modules are also built:   mac80211.ko & cfg80211.ko.

    Thanks for your help!

  • Rick,


    I have not checked what the first device is, but the last two devices are all wifi dongles. Have you tried other type of devices, for example thumb drives? I'd like to see if the 'no URB for END 0' error also happens on the evm with thumb drives.

    I am going out for a 3-day trip. In the meantime do you want to build the kernel and usb drivers for the evm by yourself? You don't need to set up the whole SDK environment. You just need to download the kernel source code from the link I provided before in this thread, then use the way how you build the kernel for your board to build the evm kernel.

    I believe the defconfig is sdk-am3517-defconfig or similar, then you need menuconfig to check if CPPI DMA is enabled or not, I guess not. if so, then you can turn it on.

  • Rick,

    Rick Ung said:
    I would like to test full wifi functionality on the evm,

    Because of the errors shown in your previous log, I don't think the wifi dongle will be fully working, at least not reliably.

    So at first I'd like to see if you can test some more (non-wifi) usb devices on the EVM, for example, thumb drives, mouse/keyboards, hubs, to see if those errors still happens.

    I have many usb devices, including two wifi dongles, but none of them has those error on my evm.

  • Hi Bin,

    I tested a USB flash drive on the DMA-enabled kernel you provided, and it worked well even though the "no URB for end 0" error was still there.  I also got the kernel from the SDK built on Mac OSX with PIO but neither my custom built nor the PIO-enabled pre-built kernel from the SDK detected the OTG port.  From the boot messages, I saw that MUSB driver was initialized, but no was no root hub for OTG, only one root hub was show, and it was for EHCI controller.  Thus, no USB device is detected when plugged in.  Does this sound right to you?

    Log excerpts:

    [    0.344879] musb-hdrc: version 6.0, otg (peripheral+host), debug=0
    [    0.345581] musb-hdrc musb-hdrc.0: dma type: pio
    [    0.347015] <6>Waiting for PHY clock good...
    [    0.356353] musb-hdrc musb-hdrc.0: USB OTG mode controller at d0810000 using PIO, IRQ 71

    lsusb -v:

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            9 Hub
      bDeviceSubClass         0 Unused
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0002 2.0 root hub
      bcdDevice            2.06
      iManufacturer           3 Linux 2.6.37 ehci_hcd
      iProduct                2 OMAP-EHCI Host Controller
      iSerial                 1 ehci-omap.0
    ...

  • Rick Ung said:
    I also got the kernel from the SDK built on Mac OSX with PIO but neither my custom built nor the PIO-enabled pre-built kernel from the SDK detected the OTG port.  From the boot messages, I saw that MUSB driver was initialized, but no was no root hub for OTG, only one root hub was show, and it was for EHCI controller.  Thus, no USB device is detected when plugged in.  Does this sound right to you?

    Have you loaded a gadget driver? It is required for the otg port to work in host mode.

    Please provide the log of command 'cat /proc/driver/musb_hdrc' (I forgot the exact name, either 'musb_hdrc' or 'musb_hdrc.0'), it will tell whether a gadget driver is loaded or not.

  • You're right; I didn't have the gadget driver loaded before:

    cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Peripheral (Power=20, DevCtl=80)
    OTG state: b_idle; inactive
    Options: pio, otg (peripheral+host), debug=0 [eps=16]
    Peripheral address: 01
    Root port status: 00000000
    Gadget driver: (none)

    ep0 (hw0): 1buf, csr 0000 maxp 0000
            (queue empty)

    Why this requirement? Is it a defect in the musb host driver? g_ether.ko is now loaded:

    cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Peripheral (Power=e0, DevCtl=80)
    OTG state: b_peripheral; active
    Options: pio, otg (peripheral+host), debug=0 [eps=16]
    Peripheral address: 01
    Root port status: 00000403
    Gadget driver: g_ether

    ep0 (hw0): 1buf, csr 0000 maxp 0000
            (queue empty)

    The OTG port is now detected as a root hub; however, it isn't able to detect device insertion. I could only get the port to detect a USB device when I had the device inserted into the OTG port prior to loading the gadget driver, but then the port was not able to detect device removal.  Please note that I'm using the pre-built kernel image from the SDK v6.0.

  • Rick Ung said:
    Why this requirement? Is it a defect in the musb host driver?

    No, it is not a defect. It is how the otg state machine designed. One of the reasons is that because the otg port can dynamically switching roles, if the gadget driver is not pre-loaded, switching to device mode will not work.

    Rick Ung said:
    it isn't able to detect device insertion.

    I need to go back to check the kernel to see if it can automatically switch to host mode. But in the meantime, can you please try command 'echo F > /proc/driver/musb_hdrc.0' after plugged the device to see it gets detected? If not, please provide log of 'cat /proc/driver/musb_hdrc.0' *before* and *after* plugged the device, i want to check the Power and DevCtl registers.

    Rick Ung said:
    but then the port was not able to detect device removal.

    Please provide the log of 'cat /proc/driver/musb_hdrc.0' *before* and *after* _removed_ the device.

  • Rick Ung said:
    Status: MHDRC, Mode=Peripheral (Power=e0, DevCtl=80)
    OTG state: b_peripheral; active

    This is weird, I thought the state should be "b_idle, inactive" when nothing (host or device) is plugged. Maybe because you already ground the ID pin? I need to double check it on my evm.

  • Bin Liu said:
    I need to go back to check the kernel to see if it can automatically switch to host mode. But in the meantime, can you please try command 'echo F > /proc/driver/musb_hdrc.0' after plugged the device to see it gets detected? If not, please provide log of 'cat /proc/driver/musb_hdrc.0' *before* and *after* plugged the device, i want to check the Power and DevCtl registers.

    The device insertion & removal was detected once the command was executed:

          After cmd was executed w/ dev already plugged in:

    root@am3517-evm:~# [  645.557403] musb_g_ep0_irq 799: SETUP packet len 0 != 8 ?
    [  645.940460] musb_h_ep0_irq 1162: no URB for end 0
    [  646.222473] usb 2-1: new high speed USB device using musb-hdrc and address 4
    [  646.396270] usb 2-1: device v0cf3 p9271 is not supported
    [  646.401855] usb 2-1: New USB device found, idVendor=0cf3, idProduct=9271
    [  646.408966] usb 2-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
    [  646.416778] usb 2-1: Product: USB2.0 WLAN
    [  646.421051] usb 2-1: Manufacturer: ATHEROS
    [  646.425384] usb 2-1: SerialNumber: 12345

            cat /proc/driver/musb_hdrc.0
            Status: MHDRC, Mode=Host (Power=f0, DevCtl=5d)
            OTG state: a_host; active
            Options: pio, otg (peripheral+host), debug=0 [eps=16]
            Peripheral address: 01
            Root port status: 00000403
            Gadget driver: g_ether

          After cmd was executed w/ dev removed:
            root@am3517-evm:~# [  969.700683] musb_g_ep0_irq 799: SETUP packet len 0 != 8 ?
            [  969.706817] usb 2-1: USB disconnect, address 4
            [  970.800476] musb_g_ep0_irq 799: SETUP packet len 0 != 8 ?

            root@am3517-evm:~# cat /proc/driver/musb_hdrc.0
            Status: MHDRC, Mode=Peripheral (Power=e0, DevCtl=80)
            OTG state: b_idle; inactive
            Options: pio, otg (peripheral+host), debug=0 [eps=16]
            Peripheral address: 01
            Root port status: 00000000
            Gadget driver: g_ether

            ep0 (hw0): 1buf, csr 0001 maxp 0000
                    (queue empty)

    Note: the "URB for end 0" error is still there.

  • Rick,


    I got your source code. Thanks.

    The files we are interested in are: musb_core.c, am35x.c, musb_host.c, cppi41_dma.c, and cppi41.c.

    Only cppi41.c requires defining 'CPPI41_DEBUG' in the beginning to enable the debug, which you already did. rest of the files use dynamic debug.

    So once you have 'dynamic debug' option enabled in your kernel build, you only need to

    # mount -r debugfs none /sys/kernel/debug
    # cd /sys/kernel/debug/dynamic_debug/
    # echo 'file musb_core.c +p' > control
    # echo 'file am35x.c +p' >> control
    # echo 'file musb_host.c +p' >> control
    # echo 'file cppi41_dma.c +p' >> control

    to enable all the debug logs.