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.

AM335x USB host activation problem (kernel 3.12.10)

Hi,


on a custom board I get these errors when modprobing musb_am335x:

[17176.008122] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[17176.028243] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'


My device tree file (as attached) is derived from the am335x-evm.dts. Kernel is 3.12.10 from PSP7. Am I missing some device tree configuration?

With kernel 3.2.9 from PSP4 USB host is working (but I was hoping for some new drivers in 3.12.10).

Thanks and regards

Arndt

dimm-cpu12.dts.tar.gz
  • Hi Arndt,

    I will ask the factory team to look at this.

  • Arndt,

    I assume your USB port still works even with that message, correct?

    This parsing failure message is harmless debug message and can be ignored. The MUSB PHY on AM335x does not use PGIO for reset, but the PHY driver framework requires one, so the dts node parsing failed in the PHY driver, but it does not affect any USB functionality on AM335x.

  • Thanks for your answers. Unfortunately my USB port doesn't work with 3.12.10 kernel (although with 3.2.9 kernel it does). Bus power doesn't become switched on and lsusb ends with "unable to initialize libusb: -99". My kernel config is attached. Dmesg output is as follows:

    [root@lw-dimm-cpu12 /root]# dmesg
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 3.12.10-ti2013.12.01 (arndt@e751) (gcc version 4.7.3 (Buildroot 2013.08) ) #4 Tue Jul 8 15:06:43 CEST 2014
    [    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: Logic Way GmbH DIMM-CPU12
    [    0.000000] cma: CMA: reserved 24 MiB at 8e000000
    [    0.000000] Memory policy: ECC disabled, Data cache writeback
    [    0.000000] On node 0 totalpages: 64768
    [    0.000000] free_area_init_node: node 0, pgdat c083c8b0, node_mem_map c0877000
    [    0.000000]   Normal zone: 512 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 64768 pages, LIFO batch:15
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES1.0 (sgx 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: 64256
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 223396K/259072K available (5611K kernel code, 560K rwdata, 1880K rodata, 345K init, 225K bss, 35676K 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 : 0xd0800000 - 0xff000000   ( 744 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc075903c   (7493 kB)
    [    0.000000]       .init : 0xc075a000 - 0xc07b04e8   ( 346 kB)
    [    0.000000]       .data : 0xc07b2000 - 0xc083e118   ( 561 kB)
    [    0.000000]        .bss : 0xc083e118 - 0xc0876780   ( 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.000387] Calibrating delay loop... 366.18 BogoMIPS (lpj=1830912)
    [    0.119729] pid_max: default: 32768 minimum: 301
    [    0.119849] Security Framework initialized
    [    0.119912] Mount-cache hash table entries: 512
    [    0.129015] CPU: Testing write buffer coherency: ok
    [    0.129479] Setting up static identity map for 0xc0580c60 - 0xc0580cd0
    [    0.130626] devtmpfs: initialized
    [    0.132987] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.197762] omap_hwmod: debugss: _wait_target_disable failed
    [    0.198598] pinctrl core: initialized pinctrl subsystem
    [    0.199701] regulator-dummy: no parameters
    [    0.202628] NET: Registered protocol family 16
    [    0.205536] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.208922] cpuidle: using governor ladder
    [    0.208942] cpuidle: using governor menu
    [    0.220413] platform mpu.1: FIXME: clock-name 'fck' DOES NOT exist in dt!
    [    0.221832] platform 49000000.edma: FIXME: clock-name 'fck' DOES NOT exist in dt!
    [    0.223000] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
    [    0.223396] OMAP GPIO hardware version 0.1
    [    0.224443] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
    [    0.225693] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
    [    0.227000] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
    [    0.235160] platform 56000000.sgx: FIXME: clock-name 'fck' DOES NOT exist in dt!
    [    0.237248] DSS not supported on this SoC
    [    0.237271] No ATAGs?
    [    0.237285] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.268419] bio: create slab <bio-0> at 0
    [    0.287560] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
    [    0.288218] of_get_named_gpio_flags: can't parse gpios property of node '/fixedregulator@0[0]'
    [    0.288567] vmmcsd_fixed: 3300 mV
    [    0.288746] of_get_named_gpio_flags: can't parse gpios property of node '/fixedregulator@1[0]'
    [    0.289060] vdd_core: 1100 mV
    [    0.292722] vgaarb: loaded
    [    0.294335] SCSI subsystem initialized
    [    0.295017] libata version 3.00 loaded.
    [    0.296032] usbcore: registered new interface driver usbfs
    [    0.296276] usbcore: registered new interface driver hub
    [    0.296529] usbcore: registered new device driver usb
    [    0.297712] omap_i2c 44e0b000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c0_pins, deferring probe
    [    0.297749] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral
    [    0.298016] media: Linux media interface: v0.10
    [    0.298238] Linux video capture interface: v2.00
    [    0.298576] pps_core: LinuxPPS API ver. 1 registered
    [    0.298591] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.298772] PTP clock support registered
    [    0.302160] Switched to clocksource timer1
    [    0.326678] NET: Registered protocol family 2
    [    0.327490] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    [    0.327559] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.327599] TCP: Hash tables configured (established 2048 bind 2048)
    [    0.327679] TCP: reno registered
    [    0.327696] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.327723] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.327986] NET: Registered protocol family 1
    [    0.328464] RPC: Registered named UNIX socket transport module.
    [    0.328481] RPC: Registered udp transport module.
    [    0.328489] RPC: Registered tcp transport module.
    [    0.328499] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.328518] PCI: CLS 0 bytes, default 64
    [    0.329613] NetWinder Floating Point Emulator V0.97 (double precision)
    [    0.330351] PM: Loading am335x-pm-firmware.bin
    [    0.532387] VFS: Disk quotas dquot_6.5.2
    [    0.532482] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [    0.533268] NFS: Registering the id_resolver key type
    [    0.533377] Key type id_resolver registered
    [    0.533389] Key type id_legacy registered
    [    0.533441] jffs2: version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.
    [    0.533695] msgmni has been set to 484
    [    0.535760] NET: Registered protocol family 38
    [    0.535821] io scheduler noop registered
    [    0.535833] io scheduler deadline registered
    [    0.535863] io scheduler cfq registered (default)
    [    0.538208] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.546229] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    0.549310] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/serial@44e09000[0]'
    [    0.549680] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud = 3000000) is a OMAP UART0
    [    1.142907] console [ttyO0] enabled
    [    1.147304] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/serial@48022000[0]'
    [    1.147643] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 89, base_baud = 3000000) is a OMAP UART1
    [    1.158063] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/serial@48024000[0]'
    [    1.158373] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 90, base_baud = 3000000) is a OMAP UART2
    [    1.168781] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/serial@481a6000[0]'
    [    1.169073] 481a6000.serial: ttyO3 at MMIO 0x481a6000 (irq = 60, base_baud = 3000000) is a OMAP UART3
    [    1.180498] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.200437] brd: module loaded
    [    1.210341] loop: module loaded
    [    1.217824] mtdoops: mtd device (mtddev=name/number) must be supplied
    [    1.229400] usbcore: registered new interface driver asix
    [    1.235437] usbcore: registered new interface driver ax88179_178a
    [    1.242129] usbcore: registered new interface driver cdc_ether
    [    1.248494] usbcore: registered new interface driver r815x
    [    1.254528] usbcore: registered new interface driver cdc_subset
    [    1.261012] usbcore: registered new interface driver zaurus
    [    1.267181] usbcore: registered new interface driver cdc_ncm
    [    1.273820] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    1.280718] ehci-pci: EHCI PCI platform driver
    [    1.286512] usbcore: registered new interface driver usb-storage
    [    1.294429] mousedev: PS/2 mouse device common for all mice
    [    1.303842] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    [    1.312314] i2c /dev entries driver
    [    1.316706] Driver for 1-wire Dallas network protocol.
    [    1.324909] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    1.333960] of_get_named_gpio_flags exited with status 85
    [    1.333984] of_get_named_gpio_flags exited with status 99
    [    1.334468] edma-dma-engine edma-dma-engine.0: allocated channel for 0:25
    [    1.341667] edma-dma-engine edma-dma-engine.0: allocated channel for 0:24
    [    1.382387] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/mmc@481d8000[0]'
    [    1.382411] of_get_named_gpio_flags: can't parse gpios property of node '/ocp/mmc@481d8000[0]'
    [    1.382638] edma-dma-engine edma-dma-engine.0: allocated channel for 0:3
    [    1.389737] edma-dma-engine edma-dma-engine.0: allocated channel for 0:2
    [    1.431192] mmc0: new high speed SDHC card at address b368
    [    1.438542] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.445055] mmcblk0: mmc0:b368 NCard 3.70 GiB
    [    1.451342]  mmcblk0: p1 p2
    [    1.454432] edma-dma-engine edma-dma-engine.0: allocated channel for 0:36
    [    1.461670] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
    [    1.474190] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
    [    1.480317] edma-dma-engine edma-dma-engine.0: allocated channel for 0:5
    [    1.487571] edma-dma-engine edma-dma-engine.0: allocated channel for 0:6
    [    1.496670] usbcore: registered new interface driver usbhid
    [    1.502649] usbhid: USB HID core driver
    [    1.510684] oprofile: no performance counters
    [    1.515884] oprofile: using timer interrupt.
    [    1.520762] TCP: cubic registered
    [    1.524309] Initializing XFRM netlink socket
    [    1.528913] NET: Registered protocol family 17
    [    1.533687] NET: Registered protocol family 15
    [    1.538446] 8021q: 802.1Q VLAN Support v1.8
    [    1.542999] Key type dns_resolver registered
    [    1.548526] cpufreq_cpu0: Bootloader freq 550000000Hz no match to table, Using 500000000Hz
    [    1.557463] cpufreq_cpu0: Fail to scale boot voltage down: -22
    [    1.563860] cpufreq-cpu0: probe of cpufreq-cpu0.0 failed with error -22
    [    1.571510] ThumbEE CPU extension supported.
    [    1.579756] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.652238] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.658705] davinci_mdio 4a101000.mdio: detected phy mask fffffffd
    [    1.666065] libphy: 4a101000.mdio: probed
    [    1.670320] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver unknown
    [    1.679756] Detected MACID = 00:18:31:e6:fb:fc
    [    1.686785] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
    [    1.704808] kjournald starting.  Commit interval 5 seconds
    [    1.710691] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
    [    1.718067] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
    [    1.726996] devtmpfs: mounted
    [    1.730855] Freeing unused kernel memory: 344K (c075a000 - c07b0000)
    [    1.867801] EXT3-fs (mmcblk0p2): using internal journal
    [    3.530435] CAN device driver interface
    [    3.607934] at86rf230: unknown parameter 'debug' ignored
    [    3.748804] usbcore: registered new interface driver usbserial
    [    3.763028] usbcore: registered new interface driver usbserial_generic
    [    3.787988] usbserial: USB Serial support registered for generic
    [    3.796983] opticon: unknown parameter 'debug' ignored
    [    3.812818] usbcore: registered new interface driver opticon
    [    3.833099] usbserial: USB Serial support registered for opticon
    [    4.211145] net eth0: initializing cpsw version 1.12 (0)
    [    4.218835] libphy: PHY 4a101000.mdio:00 not found
    [    4.223929] net eth0: phy 4a101000.mdio:00 not found on slave 0
    [    4.232154] net eth0: phy found : id is : 0x20005c90
    [    4.252737] 8021q: adding VLAN 0 to HW filter on device eth0
    [    6.222927] libphy: 4a101000.mdio:01 - Link is Up - 100/Full
    [   59.726901] PM: request_firmware failed
    [  570.379733] Adjusting timer1 more than 11% (-1185714104 vs -1191182336)
    [root@lw-dimm-cpu12 /root]#

    Thanks and regards

    Arndt

    kernel-3.12.10-config.tar.gz
  • Arndt,

    Your log above does not have any message about '/usb-phy@47401300' as in your first post. And the log does not have any MUSB related messages. 

    Arndt Kritzner said:
    and lsusb ends with "unable to initialize libusb: -99".

    This tells MUSB drivers are not loaded at all.

    Arndt Kritzner said:
    My kernel config is attached.

    To debug this USB issue, please use omap2plus_defconfig, and don't change any USB related configs.

  • Bin,

    yes, the device was restarted and musb_am335x doesn't load automatically. But loading musb_am335x only adds the two entries as described in my first post to the log. My config is derived from omap2plus_defconfig and doesn't change essential USB settings.

    Regards

    Arndt

  • Arndt Kritzner said:
    yes, the device was restarted and musb_am335x doesn't load automatically.

    You need to fix this problem first, then debug other issues. One of the reasons that the MUSB drivers are not automatically loaded is because the kernel modules are not installed properly in the filesystem. Please check if you have this problem.

    Arndt Kritzner said:
    But loading musb_am335x only adds the two entries as described in my first post to the log.

    How did you load musb_am335x? modprobe musb_am335x? Please provide the dmesg log after loaded the driver.

    Arndt Kritzner said:
    My config is derived from omap2plus_defconfig and doesn't change essential USB settings.

    Something is changed on your side, your .config has CONFIG_USB_MUSB_HDRC=y, while the omap2plus_defconfig has CONFIG_USB_MUSB_HDRC=m.

  • Bin,

    the attached log is produced with a kernel, that is compiled exactly with your recommended config (omap2plus_defconfig). It also includes the module loading ("modprobe musb_am335x") in the last two lines. Module directory is ok - module was found and loaded (is listed with "lsmod").
    Still USB host doesn't work as already described.

    Thanks + Regards

    Arndt

    dimm-cpu.dmesg.tar.gz
  • Arndt,

    Again, your USB does not work is not because of the PHY GPIO parsing failure, for the reason I mentioned before. As far as I can tell from all the information you provided, your system has many weird factors:

    - If the system is created correctly, you should not have to run 'modprobe musb_am335x' manually, all the USB related driver modules should be loaded automatically during kernel boots.

    - When modprobe musb_am335x, the console does not have any more MUSB related logs other than the two lines of dts parsing failure. You might want to put some printk in probe function to see where it failed.

    - You log has '[   59.645879] PM: request_firmware failed'. I never paid attention on the PM firmware, so not sure if your kernel is not built properly or your filesystem has problems, but at least this line of message tells your system is not properly created.

  • Bin,

    ok, with the filesystem from TIs PSP7.00 the USB-host comes up. So it's not to be solved in the kernel or device tree configuration. I didn't expect that the kernels requirements on the filesystem would change so much from 3.2.9 to 3.12.10. Thanks for your supportiveness.

    Arndt

  • Arndt,

    Thanks for the update and glad you solved the issue.

    It would be interesting to know what exact dependency is in the filesystem...

  • I'm having this exact problem I think.  Did you ever find a way to make this work on 3.12.10?   I don't want to go back to an earlier kernel if I can avoid it, and it appears that this is how the problem was solved in this case.

  • Geoffrey,

    Do you use TI SDK7.0 or SDK8.0 for both kernel and filesystem?

    If you go through this thread, you can see Ardnt fixed the issue by moving to SDK7.0 filesystem.

  • Geoffroy and Bin,

    in the end I had to switch to udev (was busybox' mdev before). Since then I use a "normal" buildroot filesystem.