Re: USB errors (and hotplug work-around)

10,025 views
Skip to first unread message

hend...@icculus.org

unread,
May 12, 2013, 8:35:21 PM5/12/13
to beagl...@googlegroups.com
On Sunday, May 12, 2013 12:08:32 PM UTC-4, hend...@icculus.org wrote:

This addresses the hotplugging issue for me, but I happen to know the exact USB file to look for and I know which bus to force a rescan on.  There is also the 2 second delay that occurs when a gamepad is unplugged, but this is a relatively rare occurrence, so the delay is acceptable for my purposes (better than having no gamepad at all after it gets unplugged, anyway).

One thing that I forgot to mention is that this hotplugging workaround requires USB power management support in the kernel in order to work (Device Drivers -> USB support -> USB runtime power management (autosuspend) and wakeup). 

Additional information on the USB -110 error:

I set usbcore.usbfs_snoop=1 as a kernel command line argument in uEnv.txt to gather some more detailed information.  Here are the system log messages for a boot that gives the -110 error.  Sorry for the large size of the log, but I felt it better to include everything than to accidentally cull out something that might end up being important.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.8.11-bone16 (user@ubuntu) (gcc version 4.7.3 2013 0226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #67 Fri May 10 22:39:14 EDT 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c07c29a8, node_mem_map c0833000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 129792 pages, LIFO batch:31
[    0.000000] AM335X ES1.0 (neon )
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129792
[    0.000000] Kernel command line: usbcore.usbfs_snoop=1 video=720x480-16@60 console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait fixrtc
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] allocated 1048576 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 511MB = 511MB total
[    0.000000] Memory: 509224k/509224k available, 15064k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc070a718   (7178 kB)
[    0.000000]       .init : 0xc070b000 - 0xc074c6a4   ( 262 kB)
[    0.000000]       .data : 0xc074e000 - 0xc07c4dd8   ( 476 kB)
[    0.000000]        .bss : 0xc07c4dd8 - 0xc08324d4   ( 438 kB)
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000325] Calibrating delay loop... 365.94 BogoMIPS (lpj=356352)
[    0.015466] pid_max: default: 32768 minimum: 301
[    0.015619] Security Framework initialized
[    0.015685] Mount-cache hash table entries: 512
[    0.023117] Initializing cgroup subsys cpuacct
[    0.023156] Initializing cgroup subsys memory
[    0.023225] Initializing cgroup subsys blkio
[    0.023388] CPU: Testing write buffer coherency: ok
[    0.023849] Setting up static identity map for 0x804d2028 - 0x804d2080
[    0.025576] devtmpfs: initialized
[    0.084772] pinctrl core: initialized pinctrl subsystem
[    0.084916] rstctl core: initialized rstctl subsystem
[    0.085318] regulator-dummy: no parameters
[    0.085712] NET: Registered protocol family 16
[    0.086606] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.096167] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.096799] platform 49000000.edma: alias fck already exists
[    0.096828] platform 49000000.edma: alias fck already exists
[    0.096851] platform 49000000.edma: alias fck already exists
[    0.097789] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
[    0.097913] OMAP GPIO hardware version 0.1
[    0.099047] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
[    0.100117] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
[    0.101124] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
[    0.101670] of_get_named_gpio_flags exited with status 52
[    0.101698] gpio-rctrl rstctl.3: loaded OK
[    0.106043] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.108078] cpsw.0: No hwaddr in dt. Using c8:a0:30:bf:67:55 from efuse
[    0.108108] cpsw.1: No hwaddr in dt. Using c8:a0:30:bf:67:57 from efuse
[    0.116143] bio: create slab <bio-0> at 0
[    0.125778] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[    0.125977] of_get_named_gpio_flags: can't parse gpios property
[    0.126198] vmmcsd_fixed: 3300 mV
[    0.128467] usbcore: registered new interface driver usbfs
[    0.128572] usbcore: registered new interface driver hub
[    0.128862] usbcore: registered new device driver usb
[    0.130597] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    0.132657] DCDC1: at 1500 mV
[    0.133639] vdd_mpu: 925 <--> 1325 mV at 1100 mV
[    0.134567] vdd_core: 925 <--> 1150 mV at 1100 mV
[    0.135518] LDO1: at 1800 mV
[    0.136430] LDO2: at 3300 mV
[    0.138078] LDO3: 1800 mV
[    0.139028] LDO4: at 3300 mV
[    0.139857] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    0.140572] omap_i2c 44e0b000.i2c: unable to select pin group
[    0.141249] omap_i2c 4819c000.i2c: bus 1 rev0.11 at 100 kHz
[    0.143247] omap_i2c 4819c000.i2c: unable to select pin group
[    0.143948] Advanced Linux Sound Architecture Driver Initialized.
[    0.144820] NetLabel: Initializing
[    0.144838] NetLabel:  domain hash size = 128
[    0.144849] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.144950] NetLabel:  unlabeled traffic allowed by default
[    0.145239] Switching to clocksource gp_timer
[    0.180702] NET: Registered protocol family 2
[    0.181585] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.181724] TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
[    0.181892] TCP: Hash tables configured (established 4096 bind 4096)
[    0.181985] TCP: reno registered
[    0.182011] UDP hash table entries: 256 (order: 1, 12288 bytes)
[    0.182056] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
[    0.182475] NET: Registered protocol family 1
[    0.183008] RPC: Registered named UNIX socket transport module.
[    0.183027] RPC: Registered udp transport module.
[    0.183038] RPC: Registered tcp transport module.
[    0.183050] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.184076] CPU PMU: probing PMU on CPU 0
[    0.184103] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
[    0.184588] omap2_mbox_probe: platform not supported
[    0.419639] VFS: Disk quotas dquot_6.5.2
[    0.419733] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.420569] NFS: Registering the id_resolver key type
[    0.420765] Key type id_resolver registered
[    0.420782] Key type id_legacy registered
[    0.420851] fuse init (API version 7.20)
[    0.421390] msgmni has been set to 994
[    0.423190] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.423212] io scheduler noop registered
[    0.423225] io scheduler deadline registered
[    0.423254] io scheduler cfq registered (default)
[    0.424540] tps65217-bl tps65217-bl: no platform data provided
[    0.424634] tps65217-bl: probe of tps65217-bl failed with error -22
[    0.425340] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.427440] omap_uart 44e09000.serial: did not get pins for uart0 error: -19
[    0.427708] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88) is a OMAP UART0
[    1.089079] console [ttyO0] enabled
[    1.093600] [drm] Initialized drm 1.1.0 20060810
[    1.107915] brd: module loaded
[    1.116041] loop: module loaded
[    1.119496] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.126785] at24 1-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.134062] at24 1-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.141388] at24 1-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.148692] at24 1-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.162577] bone-capemgr bone_capemgr.9: Baseboard: 'A335BNLT,0A5A,1613BBBK3306'
[    1.170377] bone-capemgr bone_capemgr.9: compatible-baseboard=ti,beaglebone-black
[    1.205854] bone-capemgr bone_capemgr.9: slot #0: No cape found
[    1.242959] bone-capemgr bone_capemgr.9: slot #1: No cape found
[    1.280067] bone-capemgr bone_capemgr.9: slot #2: No cape found
[    1.317177] bone-capemgr bone_capemgr.9: slot #3: No cape found
[    1.323434] bone-capemgr bone_capemgr.9: slot #4: specific override
[    1.330044] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 4
[    1.338098] bone-capemgr bone_capemgr.9: slot #4: 'Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G'
[    1.348253] bone-capemgr bone_capemgr.9: slot #5: specific override
[    1.354860] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 5
[    1.362914] bone-capemgr bone_capemgr.9: slot #5: 'Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI'
[    1.373288] bone-capemgr bone_capemgr.9: loader: before slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.382183] bone-capemgr bone_capemgr.9: loader: check slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.390984] bone-capemgr bone_capemgr.9: initialized OK.
[    1.396593] bone-capemgr bone_capemgr.9: loader: before slot-5 BB-BONELT-HDMI:00A0 (prio 1)
[    1.405370] bone-capemgr bone_capemgr.9: loader: check slot-5 BB-BONELT-HDMI:00A0 (prio 1)
[    1.415239] OneNAND driver initializing
[    1.420384] usbcore: registered new interface driver cdc_ether
[    1.426623] usbcore: registered new interface driver rndis_host
[    1.432929] bone-capemgr bone_capemgr.9: loader: after slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.441722] bone-capemgr bone_capemgr.9: loader: after slot-5 BB-BONELT-HDMI:00A0 (prio 1)
[    1.450511] usbcore: registered new interface driver cdc_ncm
[    1.456499] bone-capemgr bone_capemgr.9: slot #4: Requesting firmware 'cape-bone-2g-emmc1.dtbo' for board-name 'Bone-LT-eMMC-2G', version '00A0'
[    1.470682] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.477574] ehci_hcd: block sizes: qh 60 qtd 96 itd 160 sitd 96
[    1.477720] ehci-platform: EHCI generic platform driver
[    1.483259] bone-capemgr bone_capemgr.9: slot #4: dtbo 'cape-bone-2g-emmc1.dtbo' loaded; converting to live tree
[    1.493996] bone-capemgr bone_capemgr.9: slot #5: Requesting firmware 'cape-boneblack-hdmi-00A0.dtbo' for board-name 'Bone-Black-HDMI', version '00A0'
[    1.508220] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.514723] ohci_hcd: block sizes: ed 64 td 64
[    1.515040] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    1.521613] bone-capemgr bone_capemgr.9: slot #4: #2 overlays
[    1.527696] bone-capemgr bone_capemgr.9: slot #5: dtbo 'cape-boneblack-hdmi-00A0.dtbo' loaded; converting to live tree
[    1.539299] musb-hdrc musb-hdrc.0.auto: pdev->id = 0
[    1.544557] musb-hdrc musb-hdrc.0.auto: drivers/usb/musb/musb_dsps.c:462 dsps_musb_init: OK
[    1.553631] bone-capemgr bone_capemgr.9: slot #4: Applied #2 overlays.
[    1.560514] bone-capemgr bone_capemgr.9: loader: done slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.569531] bone-capemgr bone_capemgr.9: slot #5: #4 overlays
[    1.575644] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[    1.575663] musb-hdrc: MHDRC RTL version 2.0
[    1.575677] musb-hdrc: setup fifo_mode 4
[    1.575702] musb-hdrc: 28/31 max ep, 16384/16384 memory
[    1.575847] musb-hdrc musb-hdrc.0.auto: *** mode=3
[    1.580908] musb-hdrc musb-hdrc.0.auto: *** power=250
[    1.587873] platform 4830e000.fb: alias fck already exists
[    1.595279] bone-capemgr bone_capemgr.9: slot #5: Applied #4 overlays.
[    1.602180] bone-capemgr bone_capemgr.9: loader: done slot-5 BB-BONELT-HDMI:00A0 (prio 1)
[    1.611447] musb-hdrc musb-hdrc.1.auto: pdev->id = 1
[    1.616720] musb-hdrc musb-hdrc.1.auto: drivers/usb/musb/musb_dsps.c:462 dsps_musb_init: OK
[    1.625520] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[    1.625537] musb-hdrc: MHDRC RTL version 2.0
[    1.625550] musb-hdrc: setup fifo_mode 4
[    1.625571] musb-hdrc: 28/31 max ep, 16384/16384 memory
[    1.625692] musb-hdrc musb-hdrc.1.auto: *** mode=1
[    1.630750] musb-hdrc musb-hdrc.1.auto: *** power=250
[    1.636070] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    1.642591] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[    1.650866] musb-hdrc musb-hdrc.1.auto: supports USB remote wakeup
[    1.650985] usb usb1: default language 0x0409
[    1.651036] usb usb1: udev 1, busnum 1, minor = 0
[    1.651057] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.658205] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.665798] usb usb1: Product: MUSB HDRC host driver
[    1.671025] usb usb1: Manufacturer: Linux 3.8.11-bone16 musb-hcd
[    1.677341] usb usb1: SerialNumber: musb-hdrc.1.auto
[    1.683194] usb usb1: usb_probe_device
[    1.683220] usb usb1: configuration #1 chosen from 1 choice
[    1.683285] usb usb1: adding 1-0:1.0 (config #1, interface 0)
[    1.683481] hub 1-0:1.0: usb_probe_interface
[    1.683502] hub 1-0:1.0: usb_probe_interface - got id
[    1.683528] hub 1-0:1.0: USB hub found
[    1.687525] hub 1-0:1.0: 1 port detected
[    1.691663] hub 1-0:1.0: standalone hub
[    1.691681] hub 1-0:1.0: individual port power switching
[    1.691697] hub 1-0:1.0: no over-current protection
[    1.691712] hub 1-0:1.0: Single TT
[    1.691730] hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
[    1.691747] hub 1-0:1.0: power on to power good time: 10ms
[    1.691783] hub 1-0:1.0: local power source is good
[    1.691876] hub 1-0:1.0: enabling power on all ports
[    1.692921] mousedev: PS/2 mouse device common for all mice
[    1.700711] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[    1.708444] i2c /dev entries driver
[    1.712933] Driver for 1-wire Dallas network protocol.
[    1.719732] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.727243] cpuidle: using governor ladder
[    1.731576] cpuidle: using governor menu
[    1.736019] of_get_named_gpio_flags: can't parse gpios property
[    1.736035] of_get_named_gpio_flags: can't parse gpios property
[    1.736047] of_get_named_gpio_flags: can't parse gpios property
[    1.736080] omap_hsmmc mmc.4: of_parse_phandle_with_args of 'reset' failed
[    1.743320] omap_hsmmc mmc.4: Failed to get rstctl; not using any
[    1.749772] omap_hsmmc mmc.4: unable to select pin group
[    1.755606] edma-dma-engine edma-dma-engine.0: allocated channel for 0:25
[    1.762807] edma-dma-engine edma-dma-engine.0: allocated channel for 0:24
[    1.770132] mmc.4 supply vmmc_aux not found, using dummy regulator
[    1.776773] omap_hsmmc mmc.4: pins are not configured from the driver
[    1.791920] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
[    1.791990] hub 1-0:1.0: hub_suspend
[    1.792030] usb usb1: bus auto-suspend, wakeup 1
[    1.809499] of_get_named_gpio_flags: can't parse gpios property
[    1.809519] of_get_named_gpio_flags: can't parse gpios property
[    1.809532] of_get_named_gpio_flags: can't parse gpios property
[    1.809579] gpio-rctrl rstctl.3: gpio_rctrl_request eMMC_RSTn
[    1.815794] omap_hsmmc mmc.5: Got rstctl (gpio:#0 name eMMC_RSTn) label:eMMC_RSTn
[    1.823708] gpio-rctrl rstctl.3: gpio_rctrl_deassert eMMC_RSTn
[    1.830157] edma-dma-engine edma-dma-engine.0: allocated channel for 0:3
[    1.837304] edma-dma-engine edma-dma-engine.0: allocated channel for 0:2
[    1.844787] mmc.5 supply vmmc_aux not found, using dummy regulator
[    1.851433] omap_hsmmc mmc.5: pins are not configured from the driver
[    1.865561] usb usb1: usb wakeup-resume
[    1.865607] usb usb1: usb auto-resume
[    1.865634] hub 1-0:1.0: hub_resume
[    1.865681] hub 1-0:1.0: port 1: status 0301 change 0001
[    1.886045] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.8
[    1.897765] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22
[    1.905085] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
[    1.914095] leds-gpio gpio-leds.8: pins are not configured from the driver
[    1.921377] of_get_named_gpio_flags exited with status 54
[    1.921394] of_get_named_gpio_flags exited with status 55
[    1.921411] of_get_named_gpio_flags exited with status 56
[    1.921448] of_get_named_gpio_flags exited with status 53
[    1.921664] of_get_named_gpio_flags exited with status 54
[    1.921851] of_get_named_gpio_flags exited with status 55
[    1.922065] of_get_named_gpio_flags exited with status 56
[    1.922451] ledtrig-cpu: registered to indicate activity on CPUs
[    1.929223] edma-dma-engine edma-dma-engine.0: allocated channel for 0:36
[    1.936477] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    1.944564] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    1.950915] edma-dma-engine edma-dma-engine.0: allocated channel for 0:5
[    1.958026] mmc0: host does not support reading read-only switch. assuming write-enable.
[    1.966578] edma-dma-engine edma-dma-engine.0: allocated channel for 0:6
[    1.973722] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[    1.973783] hub 1-0:1.0: port 1, status 0301, change 0000, 1.5 Mb/s
[    1.974808] usbcore: registered new interface driver usbhid
[    1.980737] usbhid: USB HID core driver
[    1.984861] mmc0: new high speed SDHC card at address b368
[    1.992657] of_get_named_gpio_flags exited with status 59
[    1.994297] davinci_evm sound.13:  nxp-hdmi-hifi <-> 48038000.mcasp mapping ok
[    2.002199] mmcblk0: mmc0:b368 USD   7.46 GiB
[    2.009165]  mmcblk0: p1 p2
[    2.014317] TCP: cubic registered
[    2.019035] NET: Registered protocol family 10
[    2.024985] NET: Registered protocol family 17
[    2.030232] Key type dns_resolver registered
[    2.034721] CAUTION: musb: Babble Interrupt Occurred
[    2.040233] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    2.048321] ThumbEE CPU extension supported.
[    2.052904] Registering SWP/SWPB emulation handler
[    2.058985] registered taskstats version 1
[    2.063492] [drm] init
[    2.068449] of_get_named_gpio_flags: can't parse gpios property
[    2.068481] tilcdc 4830e000.fb: No power control GPIO
[    2.073856] [drm] Maximum Bandwidth Value 83927040
[    2.078915] [drm] Maximum Horizontal Pixel Width Value 1366pixels
[    2.085334] [drm] Maximum Pixel Clock Value 126000KHz
[    2.090648] [drm] Allowing Standard Monitor Modes: true
[    2.096140] [drm] Allowing Non Audio Monitor Modes: false
[    2.101880] usb 1-1: new low-speed USB device number 2 using musb-hdrc
[    2.108878] [drm] loading module: slave
[    2.144897] mmc1: BKOPS_EN bit is not set
[    2.151653] mmc1: new high speed MMC card at address 0001
[    2.157908] mmcblk1: mmc1:0001 MMC02G 1.78 GiB
[    2.162905] mmcblk1boot0: mmc1:0001 MMC02G partition 1 1.00 MiB
[    2.169456] mmcblk1boot1: mmc1:0001 MMC02G partition 2 1.00 MiB
[    2.177816]  mmcblk1: p1 p2
[    2.183282]  mmcblk1boot1: unknown partition table
[    2.190252]  mmcblk1boot0: unknown partition table
[    2.229985] tilcdc 4830e000.fb: found TDA19988
[    2.235361] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    2.242326] [drm] No driver support for vblank timestamp query.
[    2.248708] [drm] BeagleSNES: cmdline mode for connector HDMI-A-1 720x480@60Hz
[    2.256518] tilcdc 4830e000.fb: No connectors reported connected with modes
[    2.263857] [drm] BeagleSNES - Resolution 720(720):480(480) 16(16)
[    2.277128] Console: switching to colour frame buffer device 90x30
[    2.287816] tilcdc 4830e000.fb: fb0:  frame buffer device
[    2.293499] tilcdc 4830e000.fb: registered panic notifier
[    2.299297] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
[    2.354325] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    2.360756] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[    2.368307] libphy: 4a101000.mdio: probed
[    2.372570] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    2.382368] Detected MACID = c8:a0:30:bf:67:55
[    2.387019] cpsw 4a100000.ethernet: NAPI disabled
[    2.393698] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
[    2.405512] ALSA device list:
[    2.408651]   #0: TI BeagleBone Black
[    2.416943] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    2.424643] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    7.086532] EXT4-fs (mmcblk0p2): recovery complete
[    7.112141] usb 1-1: khubd timed out on ep0in len=0/64
[    7.591281] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    7.599860] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    7.632380] devtmpfs: mounted
[    7.635875] Freeing init memory: 260K
[    8.542179] init: ureadahead main process (79) terminated with status 5
[    9.484638] udevd[147]: starting version 175
[   11.710950] net eth0: initializing cpsw version 1.12 (0)
[   11.713098] net eth0: phy found : id is : 0x7c0f1
[   11.713117] libphy: PHY 4a101000.mdio:01 not found
[   11.718197] net eth0: phy 4a101000.mdio:01 not found on slave 1
[   11.743193] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   11.857639] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
[   12.112207] usb 1-1: khubd timed out on ep0in len=0/64
[   14.653366] init: plymouth-log main process (345) terminated with status 1
[   15.419340] init: plymouth-upstart-bridge main process (364) terminated with status 1
[   16.065159] init: plymouth-stop pre-start process (393) terminated with status 1
[   16.245212] init: lxdm main process (404) terminated with status 127
[   17.112152] usb 1-1: khubd timed out on ep0in len=0/64
[   17.217571] usb 1-1: device descriptor read/64, error -110
[   22.325034] usb 1-1: khubd timed out on ep0in len=0/64
[   27.325030] usb 1-1: khubd timed out on ep0in len=0/64
[   32.325037] usb 1-1: khubd timed out on ep0in len=0/64
[   32.430465] usb 1-1: device descriptor read/64, error -110
[   32.643348] usb 1-1: new low-speed USB device number 3 using musb-hdrc
[   37.643389] usb 1-1: khubd timed out on ep0in len=0/64
[   42.643384] usb 1-1: khubd timed out on ep0in len=0/64
[   47.643402] usb 1-1: khubd timed out on ep0in len=0/64
[   47.748824] usb 1-1: device descriptor read/64, error -110
[   52.856274] usb 1-1: khubd timed out on ep0in len=0/64
[   57.856271] usb 1-1: khubd timed out on ep0in len=0/64
[   62.856270] usb 1-1: khubd timed out on ep0in len=0/64
[   62.961719] usb 1-1: device descriptor read/64, error -110
[   63.174596] usb 1-1: new low-speed USB device number 4 using musb-hdrc
[   68.174634] usb 1-1: khubd timed out on ep0out len=0/0
[   73.377762] usb 1-1: khubd timed out on ep0out len=0/0
[   73.580846] usb 1-1: device not accepting address 4, error -110
[   73.692175] usb 1-1: new low-speed USB device number 5 using musb-hdrc
[   78.692217] usb 1-1: khubd timed out on ep0out len=0/0
[   83.895334] usb 1-1: khubd timed out on ep0out len=0/0
[   84.098439] usb 1-1: device not accepting address 5, error -110
[   84.105097] hub 1-0:1.0: unable to enumerate USB device on port 1
[   84.111780] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[   84.114113] usb usb1: opened by process 429: cat
[   84.121624] hub 1-0:1.0: port 1 enable change, status 00000301
[   84.121709] hub 1-0:1.0: hub_suspend
[   84.121739] usb usb1: bus auto-suspend, wakeup 1

Andrew

hend...@icculus.org

unread,
May 13, 2013, 12:29:58 AM5/13/13
to beagl...@googlegroups.com
I have some further information.  I have been examining a number of system logs for times that USB has worked and times that I have received the -110 error.  This has allowed me to isolate two items of interest in the logs.

1.  In the complete log that I posted where the -110 error occurs, this event appears:

[    0.133639] vdd_mpu: 925 <--> 1325 mV at 1100 mV

When I review logs where that error does not occur, I see this instead:

[    0.XXXXXX] vdd_mpu: 925 <--> 1325 mV at 1325 mV

This is consistent.  If it will fail, it is 1100 mV.  If it works, it is 1325 mV.

2. In the log where the error occurs, this event appears:

[    2.034721] CAUTION: musb: Babble Interrupt Occurred

This event never occurs in the logs where the error does not occur.

Looking KERNEL/arch/arm/boot/dts/am335x-boneblack.dts, I see that vdd_mpu must be the operating-points for "cpu".  If the CPU is clocked at 600 MHz, the voltage is 1.112 mV.  If it is 1GHz, the voltage is 1.325.  I was surprised to see that the vdd_mpu appeared to be bouncing up and down like that.  I added the kernel command line option of "mpurate=1000" to uEnv.txt for u-boot, which always changes the vdd_mpu to 1.325 mV.  While I was hoping that this would also fix the "Babble Interrupt Occurred", that is not the case.  I still observe that happening.  On the bright side, I appear to be getting the babble interrupt and -110 errors far less now that I added mpurate=1000 to the kernel command line.

If anyone has any ideas, I'm all ears.

Andrew
  

Andrew Henderson

unread,
Jun 4, 2013, 12:33:32 PM6/4/13
to beagl...@googlegroups.com
On Tuesday, June 4, 2013 8:09:04 AM UTC-4, Shi Bai wrote:
Hi Andrew,

Did you manage to get any progress on this issue?

I'm having very similar issue when testing with Huawei LTE modem. The system is very reluctant to recognize the Modem. I tried to reset the usb root hub by following script and it managed to find a USB hub attached to it but regularly giving  eror: usb 1-1: khubd timed out on ep0in len=0/64 and the -110 error.

#!/bin/bash
echo '0' | sudo tee /sys/bus/usb/devices/usb1/authorized
sleep 2
echo '1' | sudo tee /sys/bus/usb/devices/usb1/authorized
sleep 2
echo 'on' | sudo tee /sys/bus/usb/devices/usb1/power/control

I applied your fix for mpurate and it seems to have much less error and the -110 error is gone, remains the ep0in len=0/64

I just upgraded the kernel and all firmwares (include all dts files) to Robert's latest kernel 3.8.13-bone20 and the modem seems working somehow.

I will post any update if I can prove it to be stable.

I believe that this patch addresses the -110 error by resetting the USB host interface upon a USB babble interrupt: http://permalink.gmane.org/gmane.linux.kernel/1498448

I've verified that this patch fixes the hotplugging issue from the kernel side (so no need to cat out the USB bus from userspace anymore): https://github.com/RobertCNelson/linux-dev/blob/am33x-v3.8/patches/usb/0013-usb-musb-avoid-stopping-the-session-in-host-mode.patch

Andrew

Shi Bai

unread,
Jun 5, 2013, 6:01:52 AM6/5/13
to beagl...@googlegroups.com
Hi Andrew,

Thank you so much for your detailed answer. It indeed addressed my doubts very well. I believe my Huawei modem is triggering babble interrupt in the initializing stage and seems not only my device, but some other device will trigger it as well. The hot plug fix looks very promising as well. I haven't had a single hot plug issue since the upgrading.

May I ask if you have idea now why the mpurate will reduce the -110 error?

Regards,
Bai Shi

Andrew Henderson

unread,
Jun 5, 2013, 10:04:47 AM6/5/13
to beagl...@googlegroups.com
On Wednesday, June 5, 2013 6:01:52 AM UTC-4, Shi Bai wrote:
Hi Andrew,

Thank you so much for your detailed answer. It indeed addressed my doubts very well. I believe my Huawei modem is triggering babble interrupt in the initializing stage and seems not only my device, but some other device will trigger it as well. The hot plug fix looks very promising as well. I haven't had a single hot plug issue since the upgrading.

May I ask if you have idea now why the mpurate will reduce the -110 error?

Babble interrupts are caused by a noisy signal ("babbling") occurring on the USB signal line.  The typical causes for this that I have observed are improper grounding and static electricity.  My guess is that by increasing the mpurate, which increases the core MPU voltage, you increase the voltage of the USB signal and make it a little bit more tolerant to the conditions that cause a babble interrupt.  My testing of the babble recovery patch has shown me that it isn't perfect.  It will recover from the babble interrupt once, but then hotplugging will not work.  Some examples:

1. The USB device is plugged in at boot, and a babble interrupt occurs.  The device will work until it is unplugged.  When plugged back in, it is not recognized.
2. The USB device is plugged in at boot, and no babble interrupt occurs.  The device will work until it is unplugged.  When plugged back in, it is recognized and is reinitialized and begins working again.

I think that investigating BBB grounding issues might be the best way to go to ultimately address these babble interrupt issues.

Andrew

Gerald Coley

unread,
Jun 5, 2013, 10:11:35 AM6/5/13
to beagl...@googlegroups.com
You definitely need to ground the board properly. A grounded supply is the best but make sure it is the same ground/power strip as the PC or monitor that you may be connected to.

Gerald



--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Gerald
 

Ulf Samuelsson

unread,
Oct 22, 2013, 7:43:04 AM10/22/13
to beagl...@googlegroups.com

If the "mpurate" affects the voltage, is it not then appropriate to keep the voltage high regardless of "mpurate"
as a CONFIG to the kernel?

gcj...@gmail.com

unread,
Oct 27, 2013, 5:48:35 AM10/27/13
to beagl...@googlegroups.com

Hi,

Another possible USB workaround for 3.8.13 kernel

echo on > /sys/devices/ocp.3/47400000.usb/power/control

 then I can unplug and replug USB devices any time without problems.

Juanjo

unread,
Oct 27, 2013, 8:27:05 PM10/27/13
to beagl...@googlegroups.com
Gerald,

You mean a 5VDC adapter which negative is grounded ?

These are dificult to find, at least most of those adapters have only two connectors for the outlet :(

OTH. Are there any testpoints for USB D+ and D- on the BBB so I can patch my oscilloscope ?

I'm having lots of errors with USB 3G modems (mostly Huawei) and would like to see the eye pattern if posible. My error aren't Babble Interrupts but more like (and reported by others too):

[20589.786521] WARNING: at drivers/usb/musb/musb_host.c:125 musb_h_tx_flush_fifo+0x54/0x88()
[20589.795094] Could not flush host TX2 fifo: csr: 2103

Bai Shi

unread,
Oct 28, 2013, 12:21:00 AM10/28/13
to beagl...@googlegroups.com
To be it works many times, but once upon a time it will refuse to work and all call to /sys/devices control will take long time before timeout. It happens quite randomly and I couldn't capture a pattern when it is going wrong.


--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/nuyyVDhU6bw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.

rchrd...@gmail.com

unread,
Oct 28, 2013, 3:05:21 AM10/28/13
to beagl...@googlegroups.com
Have you tried a quick test using a usb hub? This would completely eliminate any issues with current drain.

I have found some usb devices have high transient current drains which can cause intermittent shutdowns of the USB port on the BBB. I know that you are powering your device with an external power supply, but maybe there are some issue with the hardware design in the device. A quick test with a hub might be revealing?

I have always disabled the USB runtime power management option in the kernel. Hot-plugging still seems to work for me, providing the USB device is connected during BBB power-up. (I am using Angstrom 2012.12 with the latest kernel patches). Where I need hot-plugging and cannot guarantee the device will be plugged in on power-up, then a hub must be used. I never tried polling with readlink or equivalent.

Regards ..

On Monday, May 13, 2013 2:08:32 AM UTC+10, Andrew Henderson wrote:
Hello all.  I have been working on porting a project of mine (http://www.beaglesnes.org) from the BeagleBoard-xM over to the BeagleBone Black.  I am running a Linux kernel based on the am33x-v3.8 branch of Robert Nelson's linux-dev GitHub project.  It is similar to the kernel built directly by the branch's build_kernel.sh script, but I've removed a number of modules, unused file systems, etc. in order to make the kernel a bit smaller.  I use the toolchain fetched by the build_kernel.sh script to build the kernel.  The Linux distro underneath is an Ubuntu Quantal 12.10 armhf.  I'm using the v2013.04 u-boot release that I've built using an arm-cortex_a8-linux-gnueabi cross-compiler toolchain (GCC 4.4.6) that I built using crosstool-NG (v1.18.0).

USB ERRORS:

I have most of the issues worked out, but I'm still seeing some issues with the USB subsystem on the board.  I picked back through several thousand messages in the Google group, but I did not see my particular issue addressed.  I will occasionally see the BBB refuse to enumerate an HID gamepad plugged into the USB1 Host port with the following error:

usb 1-1: device descriptor read/64, error -110

My research has shown that a 110 error refers to being unable to enumerate the USB device because power is exceeded.  I'm not sure why this would be the case, since I am using a 5V power supply, rather than supplying power via USB.  The gamepad being plugged into the Host port should not be drawing a lot of power.  The odd thing is that the -110 error will occur after multiple power cycles in a row, but then disappear.  At that point, plugging in the gamepad will work fine for several more power cycles (the USB device will enumerate and be properly identified).  There doesn't seem to be any rhyme or reason to it.  It doesn't matter if the board is hot or cold, if the reset button is pressed or not at the last power cycle, etc.  I'll just get a string of either "working" or "not working" for the USB device enumeration.

I have tried playing with the kernel configuration a bit to see if I might be able to remove this problem.  I tried removing EHCI support to force the gamepad to be enumerated as a USB 1.1 device, since my research has shown that going from USB 2.0 to 1.1 will reduce power usage for some devices.  No luck there.  I also reviewed the patches currently in the GitHub repository, but the closest one that I could see that might effect this is the patch usb/0011-ARM-OMAP-am335x-musb-use-250-for-power.patch.  I didn't see anything in the AM3359A errata that relates to this, either. 

Any suggestions?  Has anyone seen something similar?  Are there any known work-arounds?

HOTPLUG WORK-AROUND:

Some of you might have already seen something similar to this, but I figure that it wouldn't hurt to share my approach on it.  My application (BeagleSNES) supports the hotplugging of USB gamepads on the BB-xM, so I've added support for this in userspace in my BBB port.  My review of the usb/0009-MUSB-Hack-around-to-make-host-port-to-work.patch showed a comment of "After removing the device, issue lsusb to cause it to scan the bus again." Using lsusb doesn't work for me, but "cat /dev/bus/usb/001/001 > /dev/null" does.  If I unplug the gamepad, plug it back in, and then issue that shell command, an ls of "/dev/bus/usb/001" will show that the gamepad has been enumerated again.  I do this programmatically in my code using the following process:

1. I perform a "cat /dev/bus/usb/001/001 > /dev/null" in the launch script for my app (called from rc.local) to scan the bus prior to start. 
2. In my application, I poll once per second or so via readlink() on the file /dev/input/by-path/platform-musb-hdrc.1.auto-usb-0:1:1.0-joystick to see if the gamepad is plugged in.
3. If it is plugged in, I make a note of it, open the proper /dev/jsX file, and interact with the gamepad.
4. If the gamepad has been unplugged (i.e. readlink() fails), I do the following:

  int usbFD, usbCount;
 
char buffer[1024];
  sleep
(2); /* Give the kernel time to sync up (a sync() also works here, but is overkill) */
 
/* Force a read of the USB bus to emulate hotplugging */
  usbFD
= open("/dev/bus/usb/001/001", O_RDONLY);
 
while((usbCount = read(usbFD, buffer, 1024)) > 0);
  close
(usbFD);


5. After this, I go back to the regular readlink() polling.  If a gamepad poll now has a successful readlink(), a gamepad has been plugged back in.  Open it via /dev/jsX (whatever device the readlink() points to) and continue on.

This addresses the hotplugging issue for me, but I happen to know the exact USB file to look for and I know which bus to force a rescan on.  There is also the 2 second delay that occurs when a gamepad is unplugged, but this is a relatively rare occurrence, so the delay is acceptable for my purposes (better than having no gamepad at all after it gets unplugged, anyway).

Andrew

Bai Shi

unread,
Oct 28, 2013, 9:27:58 AM10/28/13
to beagl...@googlegroups.com
My usb device draws power from external power supply, only D+ and D- is connected to BBB. It works 90% of time but when I mess around too much (on/off too frequently maybe, not confirmed), it will reset the USB of BBB and then it will behave very strangely. Every access to /sys/bus/usb take more than 15 seconds and timeout eventually.

Hope my experience gives some hint...


Paulo Ferreira

unread,
Oct 28, 2013, 9:56:11 AM10/28/13
to beagl...@googlegroups.com

On 28/10/2013, at 13:27, Bai Shi <bais...@gmail.com> wrote:

> My usb device draws power from external power supply, only D+ and D- is connected to BBB. It works 90% of time but when I mess around too much (on/off too frequently maybe, not confirmed), it will reset the USB of BBB and then it will behave very strangely. Every access to /sys/bus/usb take more than 15 seconds and timeout eventually.
>
> Hope my experience gives some hint...

Is the same external power supply connected to the Beagle Board?

So, the ground shield of the USB cable is connect only on one side (the device) or is it completely "floating"?

Best regards

Paulo Ferreira

Bai Shi

unread,
Oct 28, 2013, 10:22:42 AM10/28/13
to beagl...@googlegroups.com
Erm.. very good question. It indeed is the same external power supply connected to the Beagle Board. Or I would say all the power come from the same ATX power supply though it might (tiny little chance) be in different rails.

Frankly speaking the line was rather short (less than 5cm) so I didn't bother to do shielding at all. The D+ and D- is using Cat5 ethernet cable.

Does it make any significance?

Regards,
Bai Shi


Paulo Ferreira

unread,
Oct 28, 2013, 10:42:20 AM10/28/13
to beagl...@googlegroups.com
You issue may be there (or not).

To really really know, you can use some wide bandwidth digital oscilloscopes to see how the USB signals are behaving.
Or try to use a good shielded USB cable.

Guess what is the cheapest option, try it, and after that please tell us what did you find.

Best regards
Paulo Ferreira
> You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

Bai Shi

unread,
Oct 28, 2013, 11:27:09 AM10/28/13
to beagl...@googlegroups.com
Erm, ok. I'll look for a good shielded cable..

sword.l...@gmail.com

unread,
Nov 8, 2013, 12:20:38 AM11/8/13
to beagl...@googlegroups.com
Hi,I have the same issue with musb babble interupt. some low speed mouse can enumerate
normally on my box, some mouse will always fail.
For the failed mouse, there is always a babble interrupt, and  the host mode lost(DEVCTL is 0x98).
But I can work around with a externsion cord(about 1.5m), all the failed mouse can work in
this case.
Could you give me some hint for debugging this problem? I think it may be the bug with mentor's 
USB ip.

Bai Shi

unread,
Nov 8, 2013, 9:49:25 AM11/8/13
to beagl...@googlegroups.com
Hi Sword,

I haven't got time to touch BBB recently. Most of my time devote to testing of some other device. Frankly speaking BBB more or less having the least stable USB with 3.8 kernel. There was a patch in this thread indeed helped somehow but still it gives trouble when it want.

From the first day we understand the USB is quite sensitive to current draw or whatever, we have been using separate power from day 1 and have tested using extension cord of more than 10m which didn't really cause much difference IMHO. Sorry not able to provide much useful information, will definitely revisit here when I got time to play with BBB again.

Meanwhile set mpurate indeed helped quite much with the old kernel. But since the USB patch from kernel, I don't feel any substential difference by applying it and what's more it seems sometimes ignore my setting >_<.

Regards,
Bai Shi

Giuseppe Ventura

unread,
Nov 10, 2013, 9:16:35 AM11/10/13
to beagl...@googlegroups.com
There is a solution for Usb hotplug issue?

thanks

Ulf Samuelsson

unread,
Nov 10, 2013, 11:56:15 AM11/10/13
to beagl...@googlegroups.com
The USB host driver is broken.
Have offered TI to fix it for a fee, (estimate that it is going to take me about two days),
but they plan to do it themselves so if you are patient, wait for 2.6.13 where it hopefully will be included.



Message has been deleted

Andrea Pola

unread,
Feb 5, 2014, 3:42:46 AM2/5/14
to beagl...@googlegroups.com
Some news about stable fix on hotplug in 3.8.13?

Bekir Bahadir

unread,
Feb 6, 2014, 6:09:08 AM2/6/14
to beagl...@googlegroups.com
I'm also waiting for a fix to solve the USB hotplug issue

beaglebon...@gmail.com

unread,
Mar 12, 2015, 11:47:23 AM3/12/15
to beagl...@googlegroups.com

Hii, I have a problem with the Beaglebone White's USB ports, I am doing a project with this device and I want to be able to communicate with the Beaglebone White with Python from my PC. I made a script .py in the Beaglebone Bash, it starts automatically at startup the device and so this the Beaglebone is left waiting a certain cararter to start the rest execution of script, the problem comes when my PC sent the caracter and Beaglebone I did not read in the USB port number ttyGS0 !! That may be happening? I have to configure something to read me this port? Because Beaglebone send data to the PC but the reverse is not, I have to set it as a slave as it gets? Always working both terminals  with USB serial ports  did not Ethernet or Sockets. Thanks, I hope your answers!
Reply all
Reply to author
Forward
0 new messages