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.

USB host not working on BBB revD with am335x-evm-sdk-src-07.00.00.00

Other Parts Discussed in Thread: DA8XX, TPS65217

I can't seem to see any life from the USB host on my BBB revD from Element14 when compiling the standard kernel from the am335x-evm-sdk-src-07.00.00.00 board support package.

With both standard Debian rootfs that came preinstalled and a custom busybox FS I get the following...where I was expecting to see the "root hub" listings. My custom busybox FS shows no output with "lsusb", but otherwise the same with Debian (below).

debian@beaglebone:~$ lsusb
unable to initialize libusb: -99
debian@beaglebone:~$ ls /sys/bus/usb
devices  drivers  drivers_autoprobe  drivers_probe  uevent
debian@beaglebone:~$ ls /sys/bus/usb/devices
debian@beaglebone:~$ 

I tried plugging in several devices into the host port but no LED light up on the device...no power? Just in case this matters, I am powering the BB from the USB device connector only.

Thanks in advance for your assistance.

===

Build command:

make ARCH=arm CROSS_COMPILE=~/gcc-linaro-arm-linux-gnueabihf-4.8-2014.02_linux/bin/arm-linux-gnueabihf- omap2plus_defconfig
make ARCH=arm CROSS_COMPILE=~/gcc-linaro-arm-linux-gnueabihf-4.8-2014.02_linux/bin/arm-linux-gnueabihf- LOADADDR=0x80008000 uImage

Boot messages:

U-Boot# bootm 0x81000000 - 0x80F80000
## Booting kernel from Legacy Image at 81000000 ...
Image Name: Linux-3.12.10-ti2013.12.01
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4130592 Bytes = 3.9 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 80f80000
Booting using the fdt blob at 0x80f80000
Loading Kernel Image ... OK
Loading Device Tree to 9f322000, end 9f32d62f ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.12.10-ti2013.12.01 (builder@builder) (gcc version 4.8.3 20140203 (prerelease)4
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 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] cma: CMA: reserved 24 MiB at 9d800000
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129280
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk1p2 ro rootfstype=ext4 rootwait
[ 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] Memory: 483296K/521216K available (5607K kernel code, 559K rwdata, 1876K rodata, 344K init, 2)
[ 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 - 0xc0757014 (7485 kB)
[ 0.000000] .init : 0xc0758000 - 0xc07ae2b0 ( 345 kB)
[ 0.000000] .data : 0xc07b0000 - 0xc083bdd8 ( 560 kB)
[ 0.000000] .bss : 0xc083bdd8 - 0xc08743f0 ( 226 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: timer2 at 24000000 Hz
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[ 0.000000] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000000] Console: colour dummy device 80x30
[ 0.000248] Calibrating delay loop... 663.55 BogoMIPS (lpj=3317760)
[ 0.049780] pid_max: default: 32768 minimum: 301
[ 0.049864] Security Framework initialized
[ 0.049906] Mount-cache hash table entries: 512
[ 0.055722] CPU: Testing write buffer coherency: ok
[ 0.056048] Setting up static identity map for 0xc057fd10 - 0xc057fd80
[ 0.056756] devtmpfs: initialized
[ 0.058176] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.118069] omap_hwmod: debugss: _wait_target_disable failed
[ 0.118634] pinctrl core: initialized pinctrl subsystem
[ 0.119330] regulator-dummy: no parameters
[ 0.121356] NET: Registered protocol family 16
[ 0.123047] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.125087] cpuidle: using governor ladder
[ 0.125100] cpuidle: using governor menu
[ 0.131473] platform mpu.1: FIXME: clock-name 'fck' DOES NOT exist in dt!
[ 0.132298] platform 49000000.edma: FIXME: clock-name 'fck' DOES NOT exist in dt!
[ 0.133249] OMAP GPIO hardware version 0.1
[ 0.139306] platform 56000000.sgx: FIXME: clock-name 'fck' DOES NOT exist in dt!
[ 0.140813] DSS not supported on this SoC
[ 0.140828] No ATAGs?
[ 0.140838] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.158555] bio: create slab <bio-0> at 0
[ 0.169375] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.170091] vmmcsd_fixed: 3300 mV
[ 0.172185] vgaarb: loaded
[ 0.173162] SCSI subsystem initialized
[ 0.174182] usbcore: registered new interface driver usbfs
[ 0.174319] usbcore: registered new interface driver hub
[ 0.174474] usbcore: registered new device driver usb
[ 0.175189] omap_i2c 44e0b000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c0_pins, defe
[ 0.175213] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral
[ 0.175382] media: Linux media interface: v0.10
[ 0.175515] Linux video capture interface: v2.00
[ 0.175717] pps_core: LinuxPPS API ver. 1 registered
[ 0.175726] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.175823] PTP clock support registered
[ 0.177747] Switched to clocksource timer1
[ 0.191660] NET: Registered protocol family 2
[ 0.192161] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.192230] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.192268] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.192324] TCP: reno registered
[ 0.192335] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.192350] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.192512] NET: Registered protocol family 1
[ 0.192831] RPC: Registered named UNIX socket transport module.
[ 0.192845] RPC: Registered udp transport module.
[ 0.192850] RPC: Registered tcp transport module.
[ 0.192855] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.193553] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.194025] PM: Loading am335x-pm-firmware.bin
[ 0.306904] VFS: Disk quotas dquot_6.5.2
[ 0.306966] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.307446] NFS: Registering the id_resolver key type
[ 0.307525] Key type id_resolver registered
[ 0.307533] Key type id_legacy registered
[ 0.307566] jffs2: version 2.2. (NAND) (SUMMARY) ?© 2001-2006 Red Hat, Inc.
[ 0.307719] msgmni has been set to 991
[ 0.309015] NET: Registered protocol family 38
[ 0.309049] io scheduler noop registered
[ 0.309057] io scheduler deadline registered
[ 0.309075] io scheduler cfq registered (default)
[ 0.310606] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.314443] platform 4830e000.lcdc: Driver da8xx_lcdc requests probe deferral
[ 0.315708] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.317883] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud = 3000000) is a OMAP UART0
[ 0.916466] console [ttyO0] enabled
[ 0.921222] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[ 0.935690] brd: module loaded
[ 0.942879] loop: module loaded
[ 0.948731] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 0.958228] usbcore: registered new interface driver asix
[ 0.964063] usbcore: registered new interface driver ax88179_178a
[ 0.970585] usbcore: registered new interface driver cdc_ether
[ 0.976838] usbcore: registered new interface driver r815x
[ 0.982723] usbcore: registered new interface driver smsc95xx
[ 0.988895] usbcore: registered new interface driver net1080
[ 0.994970] usbcore: registered new interface driver cdc_subset
[ 1.001294] usbcore: registered new interface driver zaurus
[ 1.007333] usbcore: registered new interface driver cdc_ncm
[ 1.013664] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.020535] ehci-pci: EHCI PCI platform driver
[ 1.025351] ehci-omap: OMAP-EHCI Host Controller driver
[ 1.031508] usbcore: registered new interface driver cdc_wdm
[ 1.037608] usbcore: registered new interface driver usb-storage
[ 1.044703] mousedev: PS/2 mouse device common for all mice
[ 1.052728] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[ 1.060236] 44e3e000.rtc: already running
[ 1.065016] i2c /dev entries driver
[ 1.069129] Driver for 1-wire Dallas network protocol.
[ 1.076345] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.085015] edma-dma-engine edma-dma-engine.0: allocated channel for 0:25
[ 1.092267] edma-dma-engine edma-dma-engine.0: allocated channel for 0:24
[ 1.138048] edma-dma-engine edma-dma-engine.0: allocated channel for 0:3
[ 1.145089] edma-dma-engine edma-dma-engine.0: allocated channel for 0:2
[ 1.189648] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.196214] edma-dma-engine edma-dma-engine.0: allocated channel for 0:36
[ 1.203498] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 1.210501] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 1.216557] edma-dma-engine edma-dma-engine.0: allocated channel for 0:5
[ 1.223695] edma-dma-engine edma-dma-engine.0: allocated channel for 0:6
[ 1.231860] usbcore: registered new interface driver usbhid
[ 1.237723] usbhid: USB HID core driver
[ 1.243664] oprofile: no performance counters
[ 1.248673] oprofile: using timer interrupt.
[ 1.253194] mmc0: host does not support reading read-only switch. assuming write-enable.
[ 1.261954] TCP: cubic registered
[ 1.265432] Initializing XFRM netlink socket
[ 1.269971] NET: Registered protocol family 17
[ 1.274711] mmc0: new high speed SDHC card at address aaaa
[ 1.280522] NET: Registered protocol family 15
[ 1.285218] 8021q: 802.1Q VLAN Support v1.8
[ 1.290109] mmcblk0: mmc0:aaaa SU04G 3.69 GiB
[ 1.295540] Key type dns_resolver registered
[ 1.300293] mmcblk0: p1
[ 1.303832] cpu cpu0: cpu0 regulator not ready, retry
[ 1.309560] platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
[ 1.318897] ThumbEE CPU extension supported.
[ 1.329500] DCDC1: at 1500 mV
[ 1.336592] vdd_mpu: 925 <--> 1375 mV at 1325 mV
[ 1.342363] vdd_core: 925 <--> 1150 mV at 1125 mV
[ 1.348195] LDO1: at 1800 mV
[ 1.352154] LDO2: at 3300 mV
[ 1.356650] LDO3: 1800 mV
[ 1.360297] LDO4: at 3300 mV
[ 1.364012] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 1.369657] mmc1: BKOPS_EN bit is not set
[ 1.378837] mmc1: new high speed MMC card at address 0001
[ 1.384960] mmcblk1: mmc1:0001 MMC04G 3.60 GiB
[ 1.389856] mmcblk1boot0: mmc1:0001 MMC04G partition 1 2.00 MiB
[ 1.396163] mmcblk1boot1: mmc1:0001 MMC04G partition 2 2.00 MiB
[ 1.403318] mmcblk1: p1 p2
[ 1.407996] mmcblk1boot1: unknown partition table
[ 1.414368] mmcblk1boot0: unknown partition table
[ 1.489831] tda998x 0-0070: found TDA19988
[ 1.494535] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.563084] Console: switching to colour frame buffer device 160x45
[ 1.637790] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.644199] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[ 1.651322] libphy: 4a101000.mdio: probed
[ 1.655537] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[ 1.665725] Detected MACID = d0:39:72:30:64:e4
[ 1.671863] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:13:19 UTC (946685599)
[ 1.685539] EXT4-fs (mmcblk1p2): INFO: recovery required on readonly filesystem
[ 1.693278] EXT4-fs (mmcblk1p2): write access will be enabled during recovery
[ 1.781908] EXT4-fs (mmcblk1p2): recovery complete
[ 1.788303] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[ 1.796852] VFS: Mounted root (ext4 filesystem) readonly on device 179:10.
[ 1.804208] devtmpfs: mounted
[ 1.807718] Freeing unused kernel memory: 344K (c0758000 - c07ae000)
  • John,

    I believe the direct root cause of the issue is that your filesystem does not have all the MUSB related driver modules installed, so they are not loaded during kernel boots up.

    Please note that in SDK7.0 uImage is no longer supported, you have to build and use zImage. Please follow the SDK7.0 user's guide to create your Linux system correctly.

  • Bin,

    Thanks for your reply.

    The SDK7.0's omap2plus_defconfig uses these values. It this adequate or does it need to be modified? Note, I only need host operation and using built-in kernel modules. Also I didn't see the MUSB options in menuconfig...can you help me locate the MUSB driver options? 

    CONFIG_USB_MUSB_HDRC=y
    # CONFIG_USB_MUSB_HOST is not set
    # CONFIG_USB_MUSB_GADGET is not set
    CONFIG_USB_MUSB_DUAL_ROLE=y
    CONFIG_USB_MUSB_TUSB6010=y
    # CONFIG_USB_MUSB_OMAP2PLUS is not set
    # CONFIG_USB_MUSB_AM35X is not set
    # CONFIG_USB_MUSB_DSPS is not set
    # CONFIG_USB_MUSB_UX500 is not set
    # CONFIG_MUSB_PIO_ONLY is not set

    Perhaps the UG is out of date, it suggests uImage is still recommended:  http://processors.wiki.ti.com/index.php/Linux_Kernel_Users_Guide

  • John,

    how did to get the values? They are not from omap2plus_defconfig. The correct ones should be

    $ grep MUSB arch/arm/configs/omap2plus_defconfig
    CONFIG_USB_MUSB_HDRC=m 
    CONFIG_USB_MUSB_OMAP2PLUS=m 
    CONFIG_USB_MUSB_DSPS=m 
    
    $ grep MUSB .config 
    CONFIG_USB_MUSB_HDRC=m 
    # CONFIG_USB_MUSB_HOST is not set 
    # CONFIG_USB_MUSB_GADGET is not set 
    CONFIG_USB_MUSB_DUAL_ROLE=y 
    # CONFIG_USB_MUSB_TUSB6010 is not set 
    CONFIG_USB_MUSB_OMAP2PLUS=m 
    # CONFIG_USB_MUSB_AM35X is not set 
    CONFIG_USB_MUSB_DSPS=m # 
    CONFIG_USB_MUSB_UX500 is not set 
    CONFIG_USB_MUSB_AM335X_CHILD=m 
    # CONFIG_MUSB_PIO_ONLY is not set
    

    John Yi1 said:
    Perhaps the UG is out of date, it suggests uImage is still recommended

    No, the UG is correct:

    By default U-boot expects zImage to be the type of kernel image used.

    To just build the zImage use this command

    make ARCH=arm CROSS_COMPILE=<compiler> zImage
    
  • By the way, uImage can still be used in SDK7.0, you just have to use it correctly. In your case the issue seems to be you did not build all the kernel modules or not installed them into the filesystem, so all the usb modules are not loaded.

  • Bin,

    My mistake. I failed to mention I did make a few modifications to omap2plus_defconfig to build my particular flavor (the other is enabling bz2 init rootfs). The one in particular that is causing the differences is built-in kernel modules. I "unchecked" this value in menuconfig.

        [ ] Enable loadable module support  ---- 

    Which produces this result:

    $ grep MUSB .config
    CONFIG_USB_MUSB_HDRC=y
    # CONFIG_USB_MUSB_HOST is not set
    # CONFIG_USB_MUSB_GADGET is not set
    CONFIG_USB_MUSB_DUAL_ROLE=y
    CONFIG_USB_MUSB_TUSB6010=y
    # CONFIG_USB_MUSB_OMAP2PLUS is not set
    # CONFIG_USB_MUSB_AM35X is not set
    # CONFIG_USB_MUSB_DSPS is not set
    # CONFIG_USB_MUSB_UX500 is not set
    # CONFIG_MUSB_PIO_ONLY is not set
    Diff'ing my results with the default omap2plus_defconfig, can I assume I can make the following changes for built-in modules?
    #CONFIG_USB_MUSB_TUSB6010=y
    CONFIG_USB_MUSB_OMAP2PLUS=y
    CONFIG_USB_MUSB_DSPS=y

    Or is built-in module not supported by the SDK?

  • John,

    The SDK7.0 kernel has a bug which cause USB fails to work when built in all MUSB modules. Please check if the item #1 in wiki http://processors.wiki.ti.com/index.php/Sitara_Linux_SDK_MUSB_Issues fixes your issue if you do want to build in all kernel modules.

  • Bin,

    Thanks for your support. Looks like my issue is resolved.

    Seems like the built-in module selection of MUSB modules differs from the loadable modules. After making the selection as you listed from omap2plus_defconfig I can now see attached USB devices.

    # lsusb
    Bus 001 Device 001: ID 1d6b:0002
    Bus 002 Device 001: ID 1d6b:0002
    # ls /sys/bus/usb/devices/
    1-0:1.0  2-0:1.0  usb1     usb2
  • Just for completion, in case it is helpful to others, here are my MUSB .config values.

    grep MUSB .config

    CONFIG_USB_MUSB_HDRC=y
    # CONFIG_USB_MUSB_HOST is not set
    # CONFIG_USB_MUSB_GADGET is not set
    CONFIG_USB_MUSB_DUAL_ROLE=y
    # CONFIG_USB_MUSB_TUSB6010 is not set
    # CONFIG_USB_MUSB_OMAP2PLUS is not set
    # CONFIG_USB_MUSB_AM35X is not set
    CONFIG_USB_MUSB_DSPS=y
    # CONFIG_USB_MUSB_UX500 is not set
    CONFIG_USB_MUSB_AM335X_CHILD=y
    # CONFIG_MUSB_PIO_ONLY is not set
  • Hello John, Bin,

    I've run into a similar problem, where lsusb is showing me unable to initialize : 99. There is one difference though, I created my own .config file from omap2plus_defconfig and I'm using TI's file system. However, it seems during modification I changed/removed an option and now CONFIG_USB_MUSB_HDRC is not even available in my config file. It's neither m nor y. 43847.config.txt

    Can you please let me know how to enable this option and then I can set it up for USB host only mode?

    Thank you

    Regards

    Santhosh