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.

AM5708: Linux: USB port not working

Part Number: AM5708
Other Parts Discussed in Thread: DRA722, TSC2007, AM5718

Hello experts,

We have developed a custom board with AM5708 processor using ti-processor-sdk-linux-am57xx-evm-05.03.00.07.
Could you help us to make the USB port work? kernel log output with nothing when USB stick is plug in.
By the way, USB host can work in uboot stage.


Pinmux in uboot we set

{USB1_DRVVBUS, (M0 | PIN_OUTPUT)}, /* usb1_drvvbus.usb1_drvvbus */
{USB2_DRVVBUS, (M0 | PIN_OUTPUT_PULLDOWN | SLEWCONTROL)}, /* usb2_drvvbus.usb2_drvvbus *//* usb2_drvvbus.usb2_drvvbus */
{MMC3_DAT6, (M14 | PIN_INPUT)}, /* mmc3_dat6.pr2_mii1_rxd1 *//* mmc3_dat6.gpio1_24 *//* usb1_vbus */
{WAKEUP0, (M14 | PIN_INPUT_PULLUP)}, /* Wakeup0.Wakeup0 *//* Wakeup0.gpio1_0 *//* usb1_device*/
{WAKEUP3, (M14 | PIN_INPUT_PULLDOWN)}, /* Wakeup3.Wakeup3 *//* Wakeup3.gpio1_3 *//* usb2_host*/

device tree am571x-idk.dts we set

    extcon_usb1: extcon_usb1 {
        compatible = "linux,extcon-usb-gpio";
        id-gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
    };

    extcon_usb2: extcon_usb2 {
        compatible = "linux,extcon-usb-gpio";
        id-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
    };
    
    &omap_dwc3_1 {
        extcon = <&extcon_usb1>;
    };

    &omap_dwc3_2 {
        extcon = <&extcon_usb2>;
    };

    &usb2_phy1 {
        phy-supply = <&ldo4_reg>;
    };

    &usb2_phy2 {
        phy-supply = <&ldo4_reg>;
    };

    &usb1 {
        status = "okay";
        maximum-speed = "high-speed";
        dr_mode = "peripheral";
        extcon = <&extcon_usb1>;
    };

    &usb2 {
        status = "okay";
        dr_mode = "host";
        extcon = <&extcon_usb2>;
    };

    &i2c1 {
        status = "okay";
        clock-frequency = <400000>;

        /delete-node/ tps659038@58;
        tps65916: tps65916@58 {
            reg = <0x58>;
            compatible = "ti,tps65917";
            interrupt-controller;
            interrupt-cells = <2>;

            ti,system-power-controller;

            tps65919_pmic {
                compatible = "ti,tps65917-pmic";

                smps1-in-supply = <&vsys_3v3>;
                smps2-in-supply = <&vsys_3v3>;
                smps3-in-supply = <&vsys_3v3>;
                smps4-in-supply = <&vsys_3v3>;
                ldo1-in-supply = <&vsys_3v3>;
                ldo2-in-supply = <&vsys_3v3>;
                ldo4-in-supply = <&evm_5v0>;
                ldo5-in-supply = <&vsys_3v3>;

                tps65917_regulators: regulators {
                    smps1_reg: smps1 {
                        /* VDD_CORE */
                        regulator-name = "smps1";
                        regulator-min-microvolt = <850000>;
                        regulator-max-microvolt = <1250000>;
                        regulator-always-on;
                        regulator-boot-on;
                    };

                    smps2_reg: smps2 {
                        /* VDD_DDR */
                        regulator-name = "smps2";
                        regulator-min-microvolt = <850000>;
                        regulator-max-microvolt = <1150000>;
                        regulator-boot-on;
                        regulator-always-on;
                    };

                    smps3_reg: smps3 {
                        /* VDD_DSP */
                        regulator-name = "smps3";
                        regulator-min-microvolt = <850000>;
                        regulator-max-microvolt = <1250000>;
                        regulator-boot-on;
                        regulator-always-on;
                    };

                    smps4_reg: smps4 {
                        /* VDDS1V8 */
                        regulator-name = "smps4";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-always-on;
                        regulator-boot-on;
                    };
                    ldo1_reg: ldo1 {
                        /* LDO1_OUT --> SDIO  */
                        regulator-name = "ldo1";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-always-on;
                        regulator-allow-bypass;

                    };

                    ldo2_reg: ldo2 {
                        regulator-name = "ldo2";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-allow-bypass;
                        regulator-always-on;
                        regulator-boot-on;
                    };

                    ldo5_reg: ldo5 {
                        /* VDDA_1V8_PLL */
                        regulator-name = "ldo5";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-always-on;
                        regulator-boot-on;
                    };

                    ldo4_reg: ldo4 {
                        /* VDDA_3V_USB: VDDA_USBHS33 */
                        regulator-name = "ldo4";
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-always-on;
                        regulator-boot-on;
                    };
                };
            };
        };
    };

kernel log is shown below

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.79 (melodywang@asus-debian-fatek) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #1 SMP PREEMPT Thu May 28 15:38:51 CST 2020
[ 0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: TI AM5708 527
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
[ 0.000000] OF: reserved mem: initialized node ipu2-memory@95800000, compatible id shared-dma-pool
[ 0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
[ 0.000000] OF: reserved mem: initialized node dsp1-memory@99000000, compatible id shared-dma-pool
[ 0.000000] Reserved memory: created CMA memory pool at 0x000000009d000000, size 32 MiB
[ 0.000000] OF: reserved mem: initialized node ipu1-memory@9d000000, compatible id shared-dma-pool
[ 0.000000] cma: Reserved 24 MiB at 0x00000000be400000
[ 0.000000] OMAP4: Map 0x00000000bfd00000 to fe600000 for dram barrier
[ 0.000000] On node 0 totalpages: 212224
[ 0.000000] free_area_init_node: node 0, pgdat c104d780, node_mem_map ef6a6000
[ 0.000000] DMA zone: 1728 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 147456 pages, LIFO batch:31
[ 0.000000] HighMem zone: 64768 pages, LIFO batch:15
[ 0.000000] DRA722 ES2.1
[ 0.000000] percpu: Embedded 16 pages/cpu @ef648000 s35276 r8192 d22068 u65536
[ 0.000000] pcpu-alloc: s35276 r8192 d22068 u65536 alloc=16*4096
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 210496
[ 0.000000] Kernel command line: console=ttyO2,115200n8 root=PARTUUID=4ba03536-02 rw rootfstype=ext4 rootwait
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 644512K/848896K available (8192K kernel code, 322K rwdata, 2544K rodata, 2048K init, 279K bss, 24160K reserved, 180224K cma-reserved, 234496K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0a00000 (10208 kB)
[ 0.000000] .init : 0xc0e00000 - 0xc1000000 (2048 kB)
[ 0.000000] .data : 0xc1000000 - 0xc1050808 ( 323 kB)
[ 0.000000] .bss : 0xc1052000 - 0xc1097ff0 ( 280 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] OMAP clockevent source: timer1 at 32786 Hz
[ 0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
[ 0.000006] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
[ 0.000018] Switching to timer-based delay loop, resolution 162ns
[ 0.000351] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[ 0.000360] OMAP clocksource: 32k_counter at 32768 Hz
[ 0.000824] Console: colour dummy device 80x30
[ 0.000842] WARNING: Your 'console=ttyO2' has been replaced by 'ttyS2'
[ 0.000850] This ensures that you still see kernel messages. Please
[ 0.000857] update your kernel commandline.
[ 0.000877] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
[ 0.000893] pid_max: default: 32768 minimum: 301
[ 0.001017] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.001031] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.001572] CPU: Testing write buffer coherency: ok
[ 0.001611] CPU0: Spectre v2: using ICIALLU workaround
[ 0.001812] /cpus/cpu@0 missing clock-frequency property
[ 0.001826] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.039853] Setting up static identity map for 0x80200000 - 0x80200060
[ 0.059861] Hierarchical SRCU implementation.
[ 0.080042] EFI services will not be available.
[ 0.099915] smp: Bringing up secondary CPUs ...
[ 0.099926] smp: Brought up 1 node, 1 CPU
[ 0.099936] SMP: Total of 1 processors activated (12.29 BogoMIPS).
[ 0.099944] CPU: All CPU(s) started in HYP mode.
[ 0.099950] CPU: Virtualization extensions available.
[ 0.100382] devtmpfs: initialized
[ 0.117892] random: get_random_u32 called from bucket_table_alloc+0x11c/0x244 with crng_init=0
[ 0.120057] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[ 0.120332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.120350] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.124327] pinctrl core: initialized pinctrl subsystem
[ 0.124876] DMI not present or invalid.
[ 0.125123] NET: Registered protocol family 16
[ 0.131132] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.131918] omap_hwmod: l3_main_2 using broken dt data from ocp
[ 0.301252] cpuidle: using governor ladder
[ 0.301286] cpuidle: using governor menu
[ 0.314102] gpio gpiochip0: (gpio): added GPIO chardev (254:0)
[ 0.314235] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio)
[ 0.314296] OMAP GPIO hardware version 0.1
[ 0.315242] gpio gpiochip1: (gpio): added GPIO chardev (254:1)
[ 0.315359] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio)
[ 0.316818] gpio gpiochip2: (gpio): added GPIO chardev (254:2)
[ 0.316938] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio)
[ 0.317807] gpio gpiochip3: (gpio): added GPIO chardev (254:3)
[ 0.317922] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio)
[ 0.318748] gpio gpiochip4: (gpio): added GPIO chardev (254:4)
[ 0.318869] gpiochip_setup_dev: registered GPIOs 128 to 159 on device: gpiochip4 (gpio)
[ 0.319705] gpio gpiochip5: (gpio): added GPIO chardev (254:5)
[ 0.319822] gpiochip_setup_dev: registered GPIOs 160 to 191 on device: gpiochip5 (gpio)
[ 0.321052] gpio gpiochip6: (gpio): added GPIO chardev (254:6)
[ 0.321228] gpiochip_setup_dev: registered GPIOs 192 to 223 on device: gpiochip6 (gpio)
[ 0.322640] gpio gpiochip7: (gpio): added GPIO chardev (254:7)
[ 0.322759] gpiochip_setup_dev: registered GPIOs 224 to 255 on device: gpiochip7 (gpio)
[ 0.352389] No ATAGs?
[ 0.352428] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.352442] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.352939] omap4_sram_init:Unable to allocate sram needed to handle errata I688
[ 0.352951] omap4_sram_init:Unable to get sram pool needed to handle errata I688
[ 0.353508] OMAP DMA hardware revision 0.0
[ 0.412639] edma 43300000.edma: memcpy is disabled
[ 0.416175] edma 43300000.edma: TI EDMA DMA engine driver
[ 0.439840] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
[ 0.440922] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-vmain[0]'
[ 0.441598] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-v3_3d[0]'
[ 0.442118] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-vtt[0]'
[ 0.442592] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-vsys_3v3[0]'
[ 0.442980] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-5v0[0]'
[ 0.443370] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-evm_1v8[0]'
[ 0.447642] omap-iommu 40d01000.mmu: 40d01000.mmu registered
[ 0.447938] omap-iommu 40d02000.mmu: 40d02000.mmu registered
[ 0.448324] omap-iommu 58882000.mmu: 58882000.mmu registered
[ 0.448680] omap-iommu 55082000.mmu: 55082000.mmu registered
[ 0.449113] iommu: Adding device 58820000.ipu to group 1
[ 0.449199] iommu: Adding device 55020000.ipu to group 2
[ 0.449352] iommu: Adding device 40800000.dsp to group 0
[ 0.453685] SCSI subsystem initialized
[ 0.454221] usbcore: registered new interface driver usbfs
[ 0.454318] usbcore: registered new interface driver hub
[ 0.454433] usbcore: registered new device driver usb
[ 0.457705] palmas 0-0058: IRQ missing: skipping irq request
[ 0.481038] palmas 0-0058: Muxing GPIO 51, PWM 0, LED 2
[ 0.482499] SMPS1: supplied by vsys_3v3
[ 0.484199] SMPS2: supplied by vsys_3v3
[ 0.485851] SMPS3: supplied by vsys_3v3
[ 0.487509] SMPS4: supplied by vsys_3v3
[ 0.488745] SMPS5: supplied by regulator-dummy
[ 0.489829] SMPS12: supplied by vsys_3v3
[ 0.490975] LDO1: supplied by vsys_3v3
[ 0.502110] LDO2: supplied by vsys_3v3
[ 0.511459] LDO3: supplied by regulator-dummy
[ 0.512220] LDO4: supplied by evm_5v0
[ 0.521502] LDO5: supplied by vsys_3v3
[ 0.531364] random: fast init done
[ 0.532242] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
[ 0.533383] omap_i2c 48072000.i2c: bus 1 rev0.12 at 400 kHz
[ 0.534161] omap_i2c 48060000.i2c: bus 2 rev0.12 at 400 kHz
[ 0.534342] Linux video capture interface: v2.00
[ 0.534428] pps_core: LinuxPPS API ver. 1 registered
[ 0.534437] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.534460] PTP clock support registered
[ 0.534482] EDAC MC: Ver: 3.0.0
[ 0.540961] dmi: Firmware registration failed.
[ 0.541411] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
[ 0.541626] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
[ 0.541995] Advanced Linux Sound Architecture Driver Initialized.
[ 0.561302] clocksource: Switched to clocksource arch_sys_counter
[ 0.575897] NET: Registered protocol family 2
[ 0.576393] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.576457] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.576584] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.576655] UDP hash table entries: 512 (order: 2, 16384 bytes)
[ 0.576688] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[ 0.576808] NET: Registered protocol family 1
[ 0.576837] PCI: CLS 0 bytes, default 64
[ 0.578216] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[ 0.578660] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[ 0.580978] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[ 0.597716] bounce: pool size: 64 pages
[ 0.597785] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[ 0.597796] io scheduler noop registered
[ 0.597806] io scheduler deadline registered
[ 0.597911] io scheduler cfq registered (default)
[ 0.597921] io scheduler mq-deadline registered
[ 0.597931] io scheduler kyber registered
[ 0.606911] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
[ 0.607710] pinctrl-single 4a002e8c.pinmux: please update dts to use #pinctrl-cells = <1>
[ 0.607789] pinctrl-single 4a002e8c.pinmux: initialized with no interrupts
[ 0.607802] pinctrl-single 4a002e8c.pinmux: 1 pins at pa fc002e8c size 4
[ 0.612800] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.3
[ 0.612978] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
[ 0.612985] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
[ 0.613023] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0)
[ 0.613201] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
[ 0.613236] OF: PCI: IO 0x20003000..0x20012fff -> 0x00000000
[ 0.613258] OF: PCI: MEM 0x20013000..0x2fffffff -> 0x20013000
[ 1.613508] dra7-pcie 51000000.pcie: phy link never came up
[ 1.613710] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
[ 1.613725] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 1.613737] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 1.613748] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
[ 1.613783] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
[ 1.613816] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
[ 1.613879] pci 0000:00:00.0: supports D1
[ 1.613886] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 1.614128] PCI: bus0: Fast back to back transfers disabled
[ 1.614275] PCI: bus1: Fast back to back transfers enabled
[ 1.614316] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
[ 1.614335] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 1.614741] pcieport 0000:00:00.0: Signaling PME with IRQ 165
[ 1.614969] pcieport 0000:00:00.0: AER enabled with IRQ 165
[ 1.619803] V3_3D: supplied by ldo4
[ 1.620077] vtt_fixed: supplied by V3_3D
[ 1.620155] evm_1v8: supplied by smps4
[ 1.623494] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[ 1.627981] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 45, base_baud = 3000000) is a 8250
[ 2.631319] console [ttyS2] enabled
[ 2.637100] omap_rng 48090000.rng: Random Number Generator ver. 20
[ 2.660782] brd: module loaded
[ 2.672219] loop: module loaded
[ 2.681761] mdio_bus fixed-0: GPIO lookup for consumer reset
[ 2.681770] mdio_bus fixed-0: using lookup tables for GPIO lookup
[ 2.681778] mdio_bus fixed-0: lookup for GPIO reset failed
[ 2.681801] libphy: Fixed MDIO Bus: probed
[ 2.689049] mdio_bus 48485000.mdio: GPIO lookup for consumer reset
[ 2.689058] mdio_bus 48485000.mdio: using lookup tables for GPIO lookup
[ 2.689066] mdio_bus 48485000.mdio: lookup for GPIO reset failed
[ 2.741265] davinci_mdio 48485000.mdio: davinci mdio revision 1.6, bus freq 1000000
[ 2.748962] davinci_mdio 48485000.mdio: detected phy mask fffffffc
[ 2.759903] libphy: 48485000.mdio: probed
[ 2.764107] davinci_mdio 48485000.mdio: phy[0]: device 48485000.mdio:00, driver Micrel KSZ8081 or KSZ8091
[ 2.773805] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver Micrel KSZ9031 Gigabit PHY
[ 2.784548] cpsw 48484000.ethernet: Detected MACID = f0:b5:d1:e9:07:dc
[ 2.791165] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
[ 2.797752] cpsw 48484000.ethernet: ALE Table size 1024
[ 2.804608] cpsw 48484000.ethernet: cpsw: Detected MACID = f0:b5:d1:e9:07:dd
[ 2.814380] PPP generic driver version 2.4.2
[ 2.819785] NET: Registered protocol family 24
[ 2.824531] usbcore: registered new interface driver cdc_ether
[ 2.830563] usbcore: registered new interface driver cdc_eem
[ 2.836733] usbcore: registered new interface driver cdc_ncm
[ 2.842675] usbcore: registered new interface driver huawei_cdc_ncm
[ 2.849131] usbcore: registered new interface driver cdc_mbim
[ 2.855466] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.862653] ehci-pci: EHCI PCI platform driver
[ 2.867208] ehci-omap: OMAP-EHCI Host Controller driver
[ 2.873484] usbcore: registered new interface driver cdc_wdm
[ 2.879467] usbcore: registered new interface driver usb-storage
[ 2.886538] mousedev: PS/2 mouse device common for all mice
[ 2.892877] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/i2c@48072000/tsc2007@48[0]' - status (0)
[ 2.921390] tsc2007 1-0048: i2c io error: -121
[ 2.925857] tsc2007 1-0048: Failed to setup chip: -121
[ 2.931177] tsc2007: probe of 1-0048 failed with error -121
[ 2.961345] rtc-rx8010: probe of 2-0032 failed with error -121
[ 2.967304] i2c /dev entries driver
[ 2.972146] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin
[ 2.977892] vpe 489d0000.vpe: Direct firmware load for vpdma-1b8.bin failed with error -2
[ 2.986744] usbcore: registered new interface driver uvcvideo
[ 2.986747] USB Video Class driver (1.1.1)
[ 2.988038] ti-soc-thermal 4a0021e0.bandgap: thermal zone device is NULL
[ 2.989176] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 2.989939] sdhci: Secure Digital Host Controller Interface driver
[ 2.989941] sdhci: Copyright(c) Pierre Ossman
[ 2.990951] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.992744] sdhci-omap 4809c000.mmc: GPIO lookup for consumer cd
[ 2.992750] sdhci-omap 4809c000.mmc: using device tree for GPIO lookup
[ 2.992760] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@4809c000[0]'
[ 2.992767] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@4809c000[0]'
[ 2.992772] sdhci-omap 4809c000.mmc: using lookup tables for GPIO lookup
[ 2.992778] sdhci-omap 4809c000.mmc: lookup for GPIO cd failed
[ 2.992786] sdhci-omap 4809c000.mmc: GPIO lookup for consumer wp
[ 2.992790] sdhci-omap 4809c000.mmc: using device tree for GPIO lookup
[ 2.992798] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@4809c000[0]'
[ 2.992804] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@4809c000[0]'
[ 2.992809] sdhci-omap 4809c000.mmc: using lookup tables for GPIO lookup
[ 2.992815] sdhci-omap 4809c000.mmc: lookup for GPIO wp failed
[ 3.033553] vpe 489d0000.vpe: couldn't get firmware
[ 3.039000] sdhci-omap 4809c000.mmc: no pinctrl state for ddr_1_8v mode
[ 3.045681] sdhci-omap 4809c000.mmc: no pinctrl state for hs200_1_8v mode
[ 3.111264] mmc0: SDHCI controller on 4809c000.mmc [4809c000.mmc] using ADMA
[ 3.119025] sdhci-omap 480b4000.mmc: GPIO lookup for consumer wp
[ 3.119033] sdhci-omap 480b4000.mmc: using device tree for GPIO lookup
[ 3.119044] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@480b4000[0]'
[ 3.119053] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@480b4000[0]'
[ 3.119060] sdhci-omap 480b4000.mmc: using lookup tables for GPIO lookup
[ 3.119067] sdhci-omap 480b4000.mmc: lookup for GPIO wp failed
[ 3.191263] mmc1: SDHCI controller on 480b4000.mmc [480b4000.mmc] using ADMA
[ 3.199140] ledtrig-cpu: registered to indicate activity on CPUs
[ 3.211837] hidraw: raw HID events driver (C) Jiri Kosina
[ 3.222052] usbcore: registered new interface driver usbhid
[ 3.227651] usbhid: USB HID core driver
[ 3.233246] usbcore: registered new interface driver snd-usb-audio
[ 3.242931] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 3.248569] arp_tables: arp_tables: (C) 2002 David S. Miller
[ 3.254676] NET: Registered protocol family 17
[ 3.259358] Key type dns_resolver registered
[ 3.265048] omap_voltage_late_init: Voltage driver support not added
[ 3.273546] Power Management for TI OMAP4+ devices.
[ 3.278815] Registering SWP/SWPB emulation handler
[ 3.288764] ti-iodelay 4844a000.padconf: Set reg 0x18c Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.308581] ti-iodelay 4844a000.padconf: Set reg 0x1a4 Delay(a: 119 g: 0), Elements(C=0 F=4)0x29004
[ 3.317847] ti-iodelay 4844a000.padconf: Set reg 0x1b0 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.326877] ti-iodelay 4844a000.padconf: Set reg 0x1bc Delay(a: 18 g: 0), Elements(C=0 F=0)0x29000
[ 3.335961] ti-iodelay 4844a000.padconf: Set reg 0x1c8 Delay(a: 894 g: 0), Elements(C=2 F=5)0x29045
[ 3.345069] ti-iodelay 4844a000.padconf: Set reg 0x1d4 Delay(a: 30 g: 0), Elements(C=0 F=1)0x29001
[ 3.354084] ti-iodelay 4844a000.padconf: Set reg 0x1e0 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.363041] ti-iodelay 4844a000.padconf: Set reg 0x1ec Delay(a: 23 g: 0), Elements(C=0 F=0)0x29000
[ 3.372213] ti-iodelay 4844a000.padconf: Set reg 0x1f8 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.382301] ti-iodelay 4844a000.padconf: Set reg 0x360 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.393261] ti-iodelay 4844a000.padconf: Set reg 0x194 Delay(a: 152 g: 0), Elements(C=0 F=5)0x29005
[ 3.402535] ti-iodelay 4844a000.padconf: Set reg 0x1ac Delay(a: 206 g: 0), Elements(C=0 F=7)0x29007
[ 3.411772] ti-iodelay 4844a000.padconf: Set reg 0x1b8 Delay(a: 78 g: 0), Elements(C=0 F=3)0x29003
[ 3.420929] ti-iodelay 4844a000.padconf: Set reg 0x1c4 Delay(a: 2 g: 0), Elements(C=0 F=0)0x29000
[ 3.430226] ti-iodelay 4844a000.padconf: Set reg 0x1d0 Delay(a: 266 g: 0), Elements(C=0 F=10)0x2900a
[ 3.439630] ti-iodelay 4844a000.padconf: Set reg 0x1dc Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.448783] ti-iodelay 4844a000.padconf: Set reg 0x1e8 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.457989] ti-iodelay 4844a000.padconf: Set reg 0x1f4 Delay(a: 43 g: 0), Elements(C=0 F=1)0x29001
[ 3.467255] ti-iodelay 4844a000.padconf: Set reg 0x200 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.476331] ti-iodelay 4844a000.padconf: Set reg 0x368 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.486455] ti-iodelay 4844a000.padconf: Set reg 0x190 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.495386] ti-iodelay 4844a000.padconf: Set reg 0x1a8 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.504314] ti-iodelay 4844a000.padconf: Set reg 0x1b4 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.513243] ti-iodelay 4844a000.padconf: Set reg 0x1c0 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.522170] ti-iodelay 4844a000.padconf: Set reg 0x1d8 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.531085] ti-iodelay 4844a000.padconf: Set reg 0x1e4 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.540012] ti-iodelay 4844a000.padconf: Set reg 0x1f0 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.548938] ti-iodelay 4844a000.padconf: Set reg 0x1fc Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.557865] ti-iodelay 4844a000.padconf: Set reg 0x364 Delay(a: 0 g: 0), Elements(C=0 F=0)0x29000
[ 3.566960] dmm 4e000000.dmm: workaround for errata i878 in use
[ 3.573284] mmc1: new DDR MMC card at address 0001
[ 3.579238] mmcblk1: mmc1:0001 Q2J54A 3.59 GiB
[ 3.584260] mmcblk1boot0: mmc1:0001 Q2J54A partition 1 16.0 MiB
[ 3.590252] dmm 4e000000.dmm: initialized all PAT entries
[ 3.597649] hctosys: unable to open rtc device (rtc0)
[ 3.603060] mmcblk1boot1: mmc1:0001 Q2J54A partition 2 16.0 MiB
[ 3.609766] ALSA device list:
[ 3.612894] mmcblk1rpmb: mmc1:0001 Q2J54A partition 3 512 KiB
[ 3.619304] mmcblk1: p1 p2
[ 3.624740] No soundcards found.
[ 3.650177] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[ 3.658635] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 3.665464] devtmpfs: mounted
[ 3.669744] Freeing unused kernel memory: 2048K
[ 3.742486] fatek_init_pictbridge
[ 4.170820] random: dd: uninitialized urandom read (512 bytes read)
[ 4.233767] net eth0: initializing cpsw version 1.15 (0)

And config is as attached.

Thanks.

Best Regards,

Melody

0336.config.zip

  • Hi Melody,

    Our support to the older SDK such as 5.03.00.07 is limited. 

    Do you happen to have a version of software that is based on a more recent version of the SDK which is 6.03? If you are still under development, I suggest that you migrate to the latest version.

    Regards

    Karthik

  • Hi Melody,

    Can you tell which USB port you are connecting the USB stick to? From the DTS file, we see USB port0 is configured "device mode" and USB port1 is configured as "host mode". So are you sure you connect to USB port 1?

    Thanks.

  • Hi Praveen,

    Yes, I connect USB stick to USB port 1.

    I can use USB in uboot stage like below, but cannot use USB port in kernel.

    => usb start
    starting USB...
    USB0: Register 2000140 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    USB1: Register 2000140 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus 0 for devices... 1 USB Device(s) found
    scanning bus 1 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => usb tree
    USB device tree:
    1 Hub (5 Gb/s, 0mA)
    U-Boot XHCI Host Controller

    1 Hub (5 Gb/s, 0mA)
    | U-Boot XHCI Host Controller
    |
    +-2 Mass Storage (480 Mb/s, 200mA)
    Patriot Memory 07B21A0894454125

    => usb info
    1: Hub, USB Revision 3.0
    - U-Boot XHCI Host Controller
    - Class: Hub
    - PacketSize: 512 Configurations: 1
    - Vendor: 0x0000 Product 0x0000 Version 1.0
    Configuration: 1
    - Interfaces: 1 Self Powered 0mA
    Interface: 0
    - Alternate Setting 0, Endpoints: 1
    - Class Hub
    - Endpoint 1 In Interrupt MaxPacket 8 Interval 255ms

    1: Hub, USB Revision 3.0
    - U-Boot XHCI Host Controller
    - Class: Hub
    - PacketSize: 512 Configurations: 1
    - Vendor: 0x0000 Product 0x0000 Version 1.0
    Configuration: 1
    - Interfaces: 1 Self Powered 0mA
    Interface: 0
    - Alternate Setting 0, Endpoints: 1
    - Class Hub
    - Endpoint 1 In Interrupt MaxPacket 8 Interval 255ms

    2: Mass Storage, USB Revision 2.0
    - Patriot Memory 07B21A0894454125
    - Class: (from Interface) Mass Storage
    - PacketSize: 64 Configurations: 1
    - Vendor: 0x13fe Product 0x3600 Version 1.0
    Configuration: 1
    - Interfaces: 1 Bus Powered 200mA
    Interface: 0
    - Alternate Setting 0, Endpoints: 2
    - Class Mass Storage, Transp. SCSI, Bulk only
    - Endpoint 1 In Bulk MaxPacket 512
    - Endpoint 2 Out Bulk MaxPacket 512

    Hi Karthik,

    OK, We are now trying to use SDK 6.03.

    We would update status to you if there is any progress.

    Best Regards,

    Melody

  • Hi Karthik,

    We tried to use SDK 6.3.0.106, but USB port still not work.

    The config file we used is tisdk_am57xx-evm_defconfig, and we open following configs: 

    • CONFIG_USB_COMMON=y
    • CONFIG_USB=y
    • CONFIG_USB_STORAGE=y

    Please help us to resolve this issue, thanks! 

    Best Regards,

    Melody

  • Hi Melody,

    From the previous kernel log you provided, we notice the XHCI driver is not getting started during the kernel boot-up. Did you make any code modification to the kernel?

    Also, the previously attached config zip file is empty? Can you provide the config file again?

    can you make sure there are set:

    CONFIG_EXTCON_USB_GPIO=y
    CONFIG_EXTCON=y
    CONFIG_USB_XHCI_HCD=y
    CONFIG_USB_XHCI_PCI=y
    CONFIG_USB_XHCI_PLATFORM=y
    CONFIG_USB_EHCI_HCD=y

    Thanks.

  • Hi Praveen,

    No I didn't modify kernel code, just added some attributes in device tree.

    Sorry for attached file improperly, new config.zip is as attached.

    I am sure the configs you mentioned are in config files.

    Thanks!

    Best Regards,

    Melody

    5381.config.zip

  • Hi Praveen, Karthik,

    Do you have any suggestion to this issue?

    Or you need more information of our board? like hardware info.

    Thanks!

    Best Regards,

    Melody

  • Add some hardware information.

    AM5718 EVM USB1 is USB host and with no connection to USBVus , and USB2 is USB client and USBVbus is with connection to PMIC.

    Our AM5708 custom board USB1 is USB client and USBVbus is with connection  to GPIO, and USB2 is USB host and USBVbus is with connection to GPIO.

    USB1Vbus_drive is kept high under Uboot and kept low under kernel.

  • Melody,

    Can you share more information on the board? Escbesically how the is the VBUS is managed?

    Thanks

  • Add the USB schematic.

    3240.1.pdf

    USB2_drvvbus is kept high under UBOOT and the communication works.

    USB2_drvvbus is kept low under KERNEL and the communication fails.

    Even I short the +5V and +5V_USB2 , the communication still fails.

  • Hi Praveen, Karthik,

    Is there any idea?

    Thanks

    Daniel

  • Hi Praveen,

    We execute script chkusb.sh by referencing this post, output is as following

    chkusb.sh Version 0.2.7

    Linux buildroot 4.14.79 #7 SMP PREEMPT Tue Jun 30 17:33:46 CST 2020 armv7l GNU/Linux

    USB is initialized

    usb@48890000: peripheral, okay

    usb@488d0000: host, okay

     

    The gadget driver is built-in

    Gadget Kernel Config: g_zero is enabled

    Gadget Kernel Config: g_audio is enabled

    Gadget Kernel Config: g_ether is enabled

    Gadget Kernel Config: g_ncm is enabled

    Gadget Kernel Config: g_mass_storage is enabled

    Gadget Kernel Config: g_serial is enabled

    Gadget Kernel Config: g_printer is enabled

    gadget driver loaded: (none)

    Hope this can help.

    Thanks.

    Best Regards,

    Melody

  • Dear Sirs,

    There is no update since 6/23.

    Is there any good news?

    Thanks,

  • Hello Melody,

    Thanks for the chkusb.sh output. It is clear that the USB2 instance is configured as host by the dtb. But it is still not clear why the xhci driver did not get started by the kernel.

    One suspect I have is the extcon setting.

    From the previous dts file you shared, the extcon setting says as below

    extcon_usb2: extcon_usb2 {
            compatible = "linux,extcon-usb-gpio";
            id-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
        };

    But from the schematics, we see that the USB VBUS detection, for USB 2 instance, you are using GPIO1_22, can you please clarify this.

    Thanks.




  • Hi Praveen,

    GPIO 1_0 & GPIO1_3 are used for USB1&2  ID setting and schematic on the below.

    GPIO 1_22 & GPIO 1_23 are used for USB1&2 VBUS detection.

    William.

  • Hi Praveen,

    We change device tree as following, USB device and host can work now, thanks!

    extcon_usb1: extcon_usb1 {
            compatible = "linux,extcon-usb-gpio";
            id-gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
            vbus-gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
    };
    
    extcon_usb2: extcon_usb2 {
            compatible = "linux,extcon-usb-gpio";
            id-gpio = <&gpio2 3 GPIO_ACTIVE_HIGH>;
            vbus-gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>;
    };

    Best Regards,

    Melody