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.

AM3352: USB device not recongnized by USB0

Part Number: AM3352


Hello Team,

We designed AM335X USB0 as usb host only, the schematic and dts settings are same between USB0 and USB1.

But the USB devices can be recongnized by USB1, and USB0 can't detect the usb devices, Why?

Below are the related schematic and dts setting for your reference.

Please give me some advice to resolve this issue.

Best Regards,

TaoTao Wang

  • Hi,

    Try removing R54.

    Please post what Linux version you use.

  • Hi, Biser

    The problem hasn't resolved after removing R54, Our Linux version is 4.1.18.

    Best Regards

    Taotao Wang

  • Hi Taotao,

    The schematic shows RTL8188 is permenately connected to USB0 interface, what is connected to USB1?

    Please attach the full kernel boot log.

    Please run the following script on your board Linux console and provide its output.

    #!/bin/bash
    #
    # Util to check USB subsystem for Linux kernel 3.12+ on TI Sitara devices
    #
    # Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
    #
    #
    #  Redistribution and use in source and binary forms, with or without
    #  modification, are permitted provided that the following conditions
    #  are met:
    #
    #    Redistributions of source code must retain the above copyright
    #    notice, this list of conditions and the following disclaimer.
    #
    #    Redistributions in binary form must reproduce the above copyright
    #    notice, this list of conditions and the following disclaimer in the
    #    documentation and/or other materials provided with the
    #    distribution.
    #
    #    Neither the name of Texas Instruments Incorporated nor the names of
    #    its contributors may be used to endorse or promote products derived
    #    from this software without specific prior written permission.
    #
    #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    #  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    #  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    #  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    #  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    #  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    #  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    #  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    #  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    #  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    #  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    
    VERSION=0.2.10
    DTPATH=/sys/firmware/devicetree/base
    DEVPATH=/sys/devices/platform
    
    ### functions ###
    
    # $1 command to be checked
    check_command() {
        local _cmd=$1
    
        which $_cmd > /dev/null || {
            echo "Error: $_cmd command not found"
            exit 1
        }
    }
    
    # check if the kernel is supported
    # this tool only runs on v3.12+ kernel
    # return 0 - if kernel version >= 3.12
    #        1 - if kernel version < 3.12
    has_supported_kernel() {
    	local _ver
    	local _t
    
        check_command uname
        uname -a
    	_ver=`uname -r`
        _t=${_ver%%.*}
        # 2.x.x, unsupported
        [ $_t -ge 3 ] || return 1
        # 4.x.x, supported
        [ $_t -lt 4 ] || return 0
    
        _ver=${_ver#*.}
        _t=${_ver%%.*}
        # < 3.12.x, unsupported
        [ $_t -ge 12 ] || return 1
        return 0
    }
    
    # check if the platform is supported
    #    $PLATFORM - global variable
    # return 0 - if platform is supported
    #        1 - if platform is not supported
    check_platform () {
    	local _hw
    
        check_command grep
        [ "$PLATFORM" != "" ] || {
    	    _hw=`cat ${DTPATH}/compatible | tr '\0' ' '`
    	    DBG_PRINT $_hw
    
            if [[ "$_hw" == *"ti,am33xx"* ]]; then
                PLATFORM="am335x"
            elif [[ "$_hw" == *"ti,am43"* ]]; then
                PLATFORM="am437x"
            elif [[ "$_hw" == *"ti,dra7"* ]]; then
                PLATFORM="am57x"
            elif [[ "$_hw" == *"ti,k2g"* ]]; then
                PLATFORM="keystone"
            elif [[ "$_hw" == *"ti,am654"* ]]; then
                PLATFORM="am65x"
            else
                PLATFORM=$_hw
            fi
        }
    
        DBG_PRINT $PLATFORM
        case $PLATFORM in
            "am335x")
                USB0DT="$(find $DTPATH -name 'usb@47401000')"
                USB1DT="$(find $DTPATH -name 'usb@47401800')"
                USB0DEV="$(find $DEVPATH -name '47401400.usb')/musb-hdrc.*"
                USB1DEV="$(find $DEVPATH -name '47401c00.usb')/musb-hdrc.*"
                return 0;;
            "am437x")
                USB0DT="$(find $DTPATH -name 'usb@48390000')"
                USB1DT="$(find $DTPATH -name 'usb@483d0000')"
                return 0;;
            "am57x" | "keystone")
                USB0DT="$(find $DTPATH -name 'usb@48890000')"
                USB1DT="$(find $DTPATH -name 'usb@488d0000')"
                return 0;;
            "am65x")
                USB0DT="$(find $DTPATH -name 'dwc3@4000000')/usb@10000"
                USB1DT="$(find $DTPATH -name 'dwc3@4020000')/usb@10000"
                return 0;;
            *)
                echo "Unsupported \"$PLATFORM\""
                return 1;;
        esac
    }
    
    # check a kernel CONFIG option
    # params $1 - the config option
    #        $2 = '-q', quiet output
    # return 0 - undefined
    #        1 - defined as 'm', kernel module
    #        2 - defined as 'y', kernel builtin
    check_kernel_config() {
        local _cfg
    
        [ -n "$1" ] || return 0
        check_command zcat
        _cfg=`zcat /proc/config.gz | grep "^$1\>"`
    
        case ${_cfg#*=} in
            "y") return 2;;
            "m") return 1;;
              *) [ "$2" = "-q" ] ||
                  echo "Error: $1 is undefined in kernel config"
              return 0;;
        esac
    }
    
    # check a kernel module
    # $1 - module name, relative path from drivers/, without .ko surfix
    # return 0 - found
    #        1 - error
    check_module() {
        local _modname
        local _moddep
    
        [ -n "$1" ] || return 1
    
        _modname="/lib/modules/`uname -r`/kernel/drivers/${1}.ko"
        _moddep="/lib/modules/`uname -r`/modules.dep"
    
        DBG_PRINT 1
        [ -f $_modname ] || {
            echo "Error: $_modname not found."
            echo "       Please ensure 'make module_install' is done properly."
            return 1
        }
    
        DBG_PRINT 2
        [ -f $_moddep ] || $moddep_checked || {
            echo "Error: $_moddep not found."
            echo "       Please ensure 'make module_install' is done properly."
            moddep_checked=true
        }
    
        DBG_PRINT 3
        check_command lsmod
        check_command basename
        check_command tr
    
        lsmod | grep `basename $1 | tr '-' '_'` > /dev/null || {
            DBG_PRINT ">>>> ${1}.ko:"
            if grep "${1}.ko:" $_moddep > /dev/null; then
                DBG_PRINT 5
                echo "Error: $_moddep seems to be valid,"
                echo "       but `basename $1`.ko is not loaded."
                echo "       Please provide /proc/config.gz and /lib/module/`uname -r`/*"
                echo "       for further investigation."
            else
                DBG_PRINT 6
                echo "Error: `basename $1`: $_moddep is invalid."
                echo "       Please run command 'depmod' on the target to re-generate it,"
                echo "       then reboot the target. If the issue still exists, please"
                echo "       ensure 'make module_install' is done properly."
            fi
    
            DBG_PRINT 7
            return 1
        }
        DBG_PRINT 8
        return 0
    }
    
    # check kernel config, and modules (if CONFIG_*=M) for musb
    check_musb_drivers() {
        check_kernel_config CONFIG_USB_MUSB_HDRC
        [ $? != 1 ] || check_module 'usb/musb/musb_hdrc'
    
        check_kernel_config CONFIG_USB_MUSB_DUAL_ROLE -q
        [ $? != 0 ] || echo "Warning: CONFIG_USB_MUSB_DUAL_ROLE undefined."
    
        check_kernel_config CONFIG_USB_OTG -q
        [ $? == 0 ] || echo "Warning: CONFIG_USB_OTG defined."
    
        check_kernel_config CONFIG_USB_MUSB_DSPS
        [ $? != 1 ] || {
            check_module 'usb/musb/musb_dsps'
            check_module 'usb/musb/musb_am335x'
        }
    
        check_kernel_config CONFIG_AM335X_PHY_USB
        [ $? != 1 ] || {
            check_module 'usb/phy/phy-am335x'
            check_module 'usb/phy/phy-am335x-control'
        }
    
        check_kernel_config CONFIG_MUSB_PIO_ONLY -q
        [ $? != 0 ] || {
           if check_kernel_config CONFIG_TI_CPPI41 -q; then
               echo "Error: MUSB CPPI DMA mode is enabled, but CPPI moudle is not enabled in DMA Engine."
               echo "       Please enable CONFIG_TI_CPPI41 under DMA Engine Support in kernel config."
           fi
        }
    }
    
    # check kernel config, and modules (if CONFIG_*=M) for dwc3
    check_dwc3_drivers() {
        check_kernel_config CONFIG_USB_DWC3
        [ $? != 1 ] || check_module 'usb/dwc3/dwc3'
    
        check_kernel_config CONFIG_USB_DWC3_DUAL_ROLE -q
        [ $? != 0 ] || echo "Warning: CONFIG_USB_DWC3_DUAL_ROLE undefined."
    
        check_kernel_config CONFIG_USB_OTG -q
        [ $? == 0 ] || echo "Warning: CONFIG_USB_OTG defined."
    
        check_kernel_config CONFIG_USB_DWC3_OMAP
        [ $? != 1 ] || check_module 'usb/dwc3/dwc3-omap'
    
        check_kernel_config CONFIG_USB_XHCI_HCD
        [ $? != 1 ] || {
            check_module 'usb/host/xhci-plat-hcd'
            check_module 'usb/host/xhci-hcd'
        }
    
        check_kernel_config CONFIG_OMAP_CONTROL_PHY
        [ $? != 1 ] || check_module 'phy/phy-omap-control'
    
        if [ $PLATFORM = am437x ]; then
            check_kernel_config CONFIG_OMAP_USB2
            [ $? != 1 ] || check_module 'phy/phy-omap-usb2'
        else
            check_kernel_config CONFIG_TI_PIPE3
            [ $? != 1 ] || check_module 'phy/phy-ti-pipe3'
        fi
    }
    
    check_musb_dt() {
        local _dt_dir
        local _ent
        local _sts
    
        _dt_dir='/proc/device-tree/ocp/usb@47400000'
        _ent='. control@44e10620 usb-phy@47401300 usb-phy@47401b00 dma-controller@47402000'
    
        for _t in $_ent; do
            _sts=$(tr -d '\0' <${_dt_dir}/${_t}/status)
            [ "$_sts" != "disabled" ] || echo $_t: disabled in devicetree
        done
    }
    
    ### debug ###
    
    g_log_file=/tmp/chkusb.log
    
    DBG_ENABLE() { g_dbg_enabled=true; }
    DBG_DISABLE() { g_dbg_enabled=false; }
    DBG_LOG_RESET() { ! $g_dbg_enabled || echo > $g_log_file; }
    DBG_PRINT() { ! $g_dbg_enabled || echo "$(date +%H:%M:%S) [$(basename $0)]: $*"; }
    DBG_LOG() { DBG_PRINT $* >> $g_log_file; }
    DBG_LOG_MARK() { DBG_PRINT "----------------" >> $g_log_file; }
    
    
    ### main ####
    
    moddep_checked=false
    
    echo "chkusb.sh Version $VERSION"
    
    [ "$V" = "1" ] && DBG_ENABLE && DBG_LOG_RESET || DBG_DISABLE
    
    has_supported_kernel ||
        { echo "Unsupported kernel version: `uname -r`"; exit 1; }
    check_platform || exit 2
    DBG_PRINT device: $PLATFORM
    
    check_command lsusb
    if lsusb > /dev/null 2>&1; then
        echo "USB is initialized"
    else
        echo "USB initialization failed"
    fi
    
    # check kernel configs
    
    if [ -f /proc/config.gz ]; then
        case $PLATFORM in
            am335x) check_musb_drivers;;
            am437x | am57x | keystone | am65x) check_dwc3_drivers;;
            *)
                echo "Error: unsupported platform $PLATFORM"
                exit 5;;
        esac
    else
        echo "Error: /proc/config.gz not found"
    fi
    
    case $PLATFORM in
        am335x)
            for _f in $USB0DEV $USB1DEV; do
                echo "$(basename $_f): mode $(cat ${_f}/mode), $(cat ${_f}/vbus)"
            done
    
            _debugfs=`sed -ne 's/^debugfs \(.*\) debugfs.*/\1/p' /proc/mounts`
            [ -z "$_debugfs" ] ||
                grep -i 'power\|devctl\|testmode' ${_debugfs}/musb-hdrc.?/regdump
            ;;
    esac
    
    # check dr_mode & gadget drivers
    
    [ -d ${DTPATH} ] || {
        echo "Warning: ${DTPATH} not found"
        if [ -d "/lib/modules/`uname -r`/" ]; then
            echo "The list of USB gadget drivers installed:"
            ls -1Rp "/lib/modules/`uname -r`/kernel/drivers/usb/gadget/"
        fi
        exit 0
    }
    
    check_command basename
    for _usb_dir in "${USB0DT}" "${USB1DT}"; do
        [ -n "$_usb_dir" ] || continue
    
        [ ! -d "$_usb_dir/status" ] &&
            _status='(null)' || _status=`tr -d '\0' <$_usb_dir/status`
        _dr_mode=`tr -d '\0'  <$_usb_dir/dr_mode`
        echo `basename $_usb_dir`: $_dr_mode, $_status
    
        [ "$_status" = "disabled" -o "$_dr_mode" = "host" ] || gadget_mode=true
    done
    
    case $PLATFORM in
        am335x) check_musb_dt;;
        *) ;;
    esac
    
    DBG_PRINT $gadget_mode
    $gadget_mode || exit 0
    
    echo
    
    check_kernel_config CONFIG_USB_LIBCOMPOSITE
    case $? in
        0) echo "Error: no any gadget driver enabled"
           exit 6;;
        1) is_gadget_builtin=false;;
        2) echo "The gadget driver is built-in"
           is_gadget_builtin=true;;
    esac
    
    check_kernel_config CONFIG_USB_ZERO -q ||
        echo "Gadget Kernel Config: g_zero is enabled"
    check_kernel_config CONFIG_USB_AUDIO -q ||
        echo "Gadget Kernel Config: g_audio is enabled"
    check_kernel_config CONFIG_USB_ETH -q ||
        echo "Gadget Kernel Config: g_ether is enabled"
    check_kernel_config CONFIG_USB_G_NCM -q ||
        echo "Gadget Kernel Config: g_ncm is enabled"
    check_kernel_config CONFIG_USB_MASS_STORAGE -q ||
        echo "Gadget Kernel Config: g_mass_storage is enabled"
    check_kernel_config CONFIG_USB_G_SERIAL -q ||
        echo "Gadget Kernel Config: g_serial is enabled"
    check_kernel_config CONFIG_USB_G_PRINTER -q ||
        echo "Gadget Kernel Config: g_printer is enabled"
    
    g_driver=`grep '^DRIVER=' /sys/class/udc/*/uevent 2>/dev/null`
    echo "gadget driver loaded: ${g_driver:-(none)}"
    
    echo
    
    if ! $is_gadget_builtin; then
        if [ -d "/lib/modules/`uname -r`/" ]; then
            echo "The list of USB gadget drivers installed:"
            ls -1Rp "/lib/modules/`uname -r`/kernel/drivers/usb/gadget/"
        else
            echo "Error: /lib/modules/`uname -r`/ not found"
            echo "       Please ensure 'make modules_install' is done properly."
            exit 7
        fi
    fi
    
    # vim: ft=sh:ts=4:sw=4:et
    

  • Hi Bin

    USB1 connected with 4G module.

    USB0 connected with this Wifi module.

    Now the 4G module can be detected ,but Wifi can't be found.

    The attached includes the boot log and shell scripte results for your reference.

    Thanks

    # CCCCCCC
    U-Boot SPL 2016.05 (Nov 05 2019 - 13:55:56)
    Trying to boot from NAND
    
    
    U-Boot 2016.05 (Nov 05 2019 - 13:55:56 +0800)
    
           Watchdog enabled
    I2C:   ready
    DRAM:  512 MiB
    NAND:  512 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - bad CRC, using default environment
    
    Timed out in wait_for_bb: status=1000
    Timed out in wait_for_bb: status=1000
    Net:   Could not get PHY for cpsw: addr 0
    cpsw
    Press SPACE to abort autoboot in 2 seconds
    Card did not respond to voltage select!
    Card did not respond to voltage select!
    USB is stopped. Please issue 'usb start' first.
    starting USB...
    USB0:   Port not available.
    USB is stopped. Please issue 'usb start' first.
    Card did not respond to voltage select!
    Card did not respond to voltage select!
    Card did not respond to voltage select!
    Card did not respond to voltage select!
    Booting from nand ...
    
    NAND read: device 0 offset 0x80000, size 0x40000
     262144 bytes read: OK
    
    NAND read: device 0 offset 0x200000, size 0x800000
     8388608 bytes read: OK
    Kernel image @ 0x82000000 [ 0x000000 - 0x44d640 ]
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff3000, end 8ffffb0a ... OK
    Fixing up ETH0 & ETH1 to CPSW Ethernet
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.1.18 (wangtaotao@dctek) (gcc version 5.4.0 (Buildroot 2017.02-git) ) #1 PREEMPT Tue Nov 5 17:33:27 CST 2019
    [    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 model: MYIR MYD C335x
    [    0.000000] cma: Reserved 24 MiB at 0x9e800000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (neon )
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=NAND.rootfs,2048 rootfstype=ubifs rootwait=1
    [    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: 485016K/524288K available (6455K kernel code, 254K rwdata, 2176K rodata, 268K init, 234K bss, 14696K reserved, 24576K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 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 - 0xc087605c   (8633 kB)
    [    0.000000]       .init : 0xc0877000 - 0xc08ba000   ( 268 kB)
    [    0.000000]       .data : 0xc08ba000 - 0xc08f99f0   ( 255 kB)
    [    0.000000]        .bss : 0xc08fc000 - 0xc0936814   ( 235 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  Additional per-CPU info printed with stalls.
    [    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] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000014] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000036] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000047] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000225] Console: colour dummy device 80x30
    [    0.000255] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
    [    0.089184] pid_max: default: 32768 minimum: 301
    [    0.089286] Security Framework initialized
    [    0.089339] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.089350] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090027] Initializing cgroup subsys blkio
    [    0.090051] Initializing cgroup subsys memory
    [    0.090094] Initializing cgroup subsys devices
    [    0.090108] Initializing cgroup subsys freezer
    [    0.090122] Initializing cgroup subsys perf_event
    [    0.090150] CPU: Testing write buffer coherency: ok
    [    0.090528] Setting up static identity map for 0x800082c0 - 0x80008330
    [    0.092095] devtmpfs: initialized
    [    0.103691] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.118009] omap_hwmod: debugss: _wait_target_disable failed
    [    0.173214] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.175478] pinctrl core: initialized pinctrl subsystem
    [    0.176762] NET: Registered protocol family 16
    [    0.178906] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.209176] cpuidle: using governor ladder
    [    0.239168] cpuidle: using governor menu
    [    0.243620] OMAP GPIO hardware version 0.1
    [    0.253225] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_default, deferring probe
    [    0.256414] No ATAGs?
    [    0.256443] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.299094] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.304525] vgaarb: loaded
    [    0.305047] SCSI subsystem initialized
    [    0.305597] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    0.305647] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c1_pins, deferring probe
    [    0.305796] media: Linux media interface: v0.10
    [    0.305864] Linux video capture interface: v2.00
    [    0.305915] pps_core: LinuxPPS API ver. 1 registered
    [    0.305923] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.305954] PTP clock support registered
    [    0.306841] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.307102] Advanced Linux Sound Architecture Driver Initialized.
    [    0.307985] Switched to clocksource timer1
    [    0.318945] NET: Registered protocol family 2
    [    0.319793] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.319847] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.319894] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.319966] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.319986] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.320138] NET: Registered protocol family 1
    [    0.320526] RPC: Registered named UNIX socket transport module.
    [    0.320539] RPC: Registered udp transport module.
    [    0.320545] RPC: Registered tcp transport module.
    [    0.320552] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.321491] CPU PMU: Failed to parse /pmu/interrupt-affinity[0]
    [    0.321539] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.323686] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.323771] audit: initializing netlink subsys (disabled)
    [    0.323835] audit: type=2000 audit(0.300:1): initialized
    [    0.331576] VFS: Disk quotas dquot_6.6.0
    [    0.331795] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [    0.333962] NFS: Registering the id_resolver key type
    [    0.334032] Key type id_resolver registered
    [    0.334041] Key type id_legacy registered
    [    0.334109] jffs2: version 2.2. (NAND) (SUMMARY)  漏 2001-2006 Red Hat, Inc.
    [    0.335865] NET: Registered protocol family 38
    [    0.335925] io scheduler noop registered
    [    0.335939] io scheduler deadline registered
    [    0.335995] io scheduler cfq registered (default)
    [    0.337135] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.339820] backlight supply power not found, using dummy regulator
    [    0.341540] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [    0.342770] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.346524] omap_uart 44e09000.serial: no wakeirq for uart0
    [    0.346646] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a OMAP UART0
    [    1.013618] console [ttyO0] enabled
    [    1.017792] omap_uart 48022000.serial: no wakeirq for uart1
    [    1.023908] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 159, base_baud = 3000000) is a OMAP UART1
    [    1.034113] omap_uart 48024000.serial: no wakeirq for uart2
    [    1.040097] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 160, base_baud = 3000000) is a OMAP UART2
    [    1.050273] omap_uart 481a6000.serial: no wakeirq for uart3
    [    1.056215] 481a6000.serial: ttyO3 at MMIO 0x481a6000 (irq = 161, base_baud = 3000000) is a OMAP UART3
    [    1.066517] [drm] Initialized drm 1.1.0 20060810
    [    1.071896] panel panel: pins are not configured
    [    1.078188] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.085097] [drm] No driver support for vblank timestamp query.
    [    1.099169] Console: switching to colour frame buffer device 100x30
    [    1.108388] tilcdc 4830e000.lcdc: fb0:  frame buffer device
    [    1.114382] tilcdc 4830e000.lcdc: registered panic notifier
    [    1.148014] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
    [    1.164775] brd: module loaded
    [    1.173161] loop: module loaded
    [    1.177527] mtdoops: mtd device (mtddev=name/number) must be supplied
    [    1.248022] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.254399] davinci_mdio 4a101000.mdio: detected phy mask ffffffaf
    [    1.262538] libphy: 4a101000.mdio: probed
    [    1.266731] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver Atheros 8035 ethernet
    [    1.276473] davinci_mdio 4a101000.mdio: phy[6]: device 4a101000.mdio:06, driver Atheros 8035 ethernet
    [    1.286836] cpsw 4a100000.ethernet: Missing dual_emac_res_vlan in DT.
    [    1.293812] cpsw 4a100000.ethernet: Using 1 as Reserved VLAN for 0 slave
    [    1.300920] cpsw 4a100000.ethernet: Missing dual_emac_res_vlan in DT.
    [    1.307670] cpsw 4a100000.ethernet: Using 2 as Reserved VLAN for 1 slave
    [    1.314709] cpsw 4a100000.ethernet: Detected MACID = 40:06:a0:1b:d8:1c
    [    1.322491] cpsw 4a100000.ethernet: cpsw: Detected MACID = 40:06:a0:1b:d8:1e
    [    1.330607] PPP generic driver version 2.4.2
    [    1.335377] SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).
    [    1.343644] mousedev: PS/2 mouse device common for all mice
    [    1.349556] i2c /dev entries driver
    [    1.354424] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.359826] vdd_3v3: supplied by vbat
    [    1.438376] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.445255]  remoteproc0: wkup_m3 is available
    [    1.450023]  remoteproc0: Note: remoteproc is still under development and considered experimental.
    [    1.459472]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [    1.471529]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
    [    1.485791] oprofile: using arm/armv7
    [    1.489812]  remoteproc0: Falling back to user helper
    [    1.495551] ip_tables: (C) 2000-2006 Netfilter Core Team
    [    1.501712] Initializing XFRM netlink socket
    [    1.507387] NET: Registered protocol family 17
    [    1.512143] NET: Registered protocol family 15
    [    1.516925] Key type dns_resolver registered
    [    1.521590] omap_voltage_late_init: Voltage driver support not added
    [    1.528783] ThumbEE CPU extension supported.
    [    1.533319] Registering SWP/SWPB emulation handler
    [    1.540845] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.546227] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.554168] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xdc
    [    1.560925] nand: Micron MT29F4G08ABADAWP
    [    1.565144] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [    1.573114] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.578760] 11 ofpart partitions found on MTD device 8000000.nand
    [    1.585141] Creating 11 MTD partitions on "8000000.nand":
    [    1.590800] 0x000000000000-0x000000020000 : "NAND.SPL"
    [    1.597424] 0x000000020000-0x000000040000 : "NAND.SPL.backup1"
    [    1.604678] 0x000000040000-0x000000060000 : "NAND.SPL.backup2"
    [    1.611743] 0x000000060000-0x000000080000 : "NAND.SPL.backup3"
    [    1.618864] 0x000000080000-0x0000000c0000 : "NAND.u-boot-spl-os"
    [    1.626091] 0x0000000c0000-0x0000001c0000 : "NAND.u-boot"
    [    1.633070] 0x0000001c0000-0x0000001e0000 : "NAND.u-boot-env"
    [    1.640082] 0x0000001e0000-0x000000200000 : "NAND.u-boot-env.backup1"
    [    1.647828] 0x000000200000-0x000000a00000 : "NAND.kernel"
    [    1.657258] 0x000000a00000-0x00000e000000 : "NAND.rootfs"
    [    1.738695] 0x00000e000000-0x000020000000 : "NAND.userdata"
    [    1.847160] i2c i2c-0: of_i2c: modalias failure on /ocp/i2c@44e0b000/tps@2d
    [    1.854529] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.861674] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
    [    1.868514] ubi0: attaching mtd9
    [    2.714728] ubi0: scanning is finished
    [    2.727242] ubi0: attached mtd9 (name "NAND.rootfs", size 214 MiB)
    [    2.733828] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    [    2.741017] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [    2.748041] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
    [    2.755301] ubi0: good PEBs: 1712, bad PEBs: 0, corrupted PEBs: 0
    [    2.761685] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
    [    2.769234] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 227435581
    [    2.778699] ubi0: available PEBs: 0, total reserved PEBs: 1712, PEBs reserved for bad PEB handling: 80
    [    2.788426] ubi0: background thread "ubi_bgt0d" started, PID 44
    [    2.794655] hctosys: unable to open rtc device (rtc0)
    [    2.803628] ALSA device list:
    [    2.806743]   No soundcards found.
    [    2.818099] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 45
    [    2.848683] UBIFS (ubi0:0): recovery needed
    [    2.934221] UBIFS (ubi0:0): recovery completed
    [    2.939074] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
    [    2.946791] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [    2.957186] UBIFS (ubi0:0): FS size: 205320192 bytes (195 MiB, 1617 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
    [    2.968364] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
    [    2.974471] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID DC830761-186A-4438-B0F4-F498B4762862, small LPT model
    [    2.987809] VFS: Mounted root (ubifs filesystem) on device 0:15.
    [    2.995602] devtmpfs: mounted
    [    2.999078] Freeing unused kernel memory: 268K (c0877000 - c08ba000)
    INIT: version 2.88 booting
    INIT: Entering runlevel: 3
    Starting logging: OK
    modprobe: module bc_example not found in modules.dep
    modprobe: module cryptodev not found in modules.dep
    modprobe: module pvrsrvkm not found in modules.dep
    Populating /dev using udev: [    4.174901] pinctrl-single 44e10800.pinmux: pin 44e1082c.0 already requested by 4830e000.lcdc; cannot claim for gpio-leds
    [    4.243543] ===========================am_phy->dr_mode = 1 
    [    4.275249] tp reset gpio=-2
    [    4.294866] 47401300.usb-phy supply vcc not found, using dummy regulator
    [    4.309548] pinctrl-single 44e10800.pinmux: pin-11 (gpio-leds) status -22
    [    4.338289] msg ft5x0x_i2c_rxdata i2c read error: -121
    [    4.352022] pinctrl-single 44e10800.pinmux: could not request pin 11 (44e1082c.0) from group pinmux_leds_pins  on device pinctrl-single
    [    4.365924] ft5x0x read ID error!
    [    4.379610] ===========================am_phy->dr_mode = 0 
    [    4.385747] 47401b00.usb-phy supply vcc not found, using dummy regulator
    [    4.419382] ft5x06_ts: probe of 1-0038 failed with error 161
    [    4.432100] sgtl5000: probe of 1-000a failed with error -121
    [    4.439722] ft5x0x_ts_init successful
    [    4.451315] leds-gpio gpio-leds: Error applying setting, reverse things back
    [    4.507604] pinctrl-single 44e10800.pinmux: pin 44e10834.0 already requested by 4830e000.lcdc; cannot claim for 481cc000.can
    [    4.569318] pinctrl-single 44e10800.pinmux: pin-13 (481cc000.can) status -22
    [    4.576709] pinctrl-single 44e10800.pinmux: could not request pin 13 (44e10834.0) from group dcan0_pins_default  on device pinctrl-single
    [    4.629991] PM: bootloader does not support rtc-only!
    [    4.667107] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    4.681915] c_can_platform 481cc000.can: Error applying setting, reverse things back
    [    4.700582] davinci_evm sound: snd_soc_register_card failed (-517)
    [    4.709530] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    4.728608] davinci_evm sound: snd_soc_register_card failed (-517)
    [    4.765535] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    4.798349] davinci_evm sound: snd_soc_register_card failed (-517)
    [    4.844779] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    4.888239] davinci_evm sound: snd_soc_register_card failed (-517)
    [    5.202943] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    5.234052] davinci_evm sound: snd_soc_register_card failed (-517)
    [    5.346810] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    5.362727] davinci_evm sound: snd_soc_register_card failed (-517)
    [    5.377181] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    5.387342] davinci_evm sound: snd_soc_register_card failed (-517)
    [    5.399879] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    5.406719] davinci_evm sound: snd_soc_register_card failed (-517)
    [    5.426647] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    done
    [    5.448223] davinci_evm sound: snd_soc_register_card failed (-517)
    Initializing random number generator... done.
    Starting system message bus: done
    Starting network: [    5.868353] usb 1-1: device descriptor read/64, error -71
    [    5.951117] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    5.957952] davinci_evm sound: snd_soc_register_card failed (-517)
    [    6.008834] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    6.015771] davinci_evm sound: snd_soc_register_card failed (-517)
    udhcpc: started, v1.25.1
    [    6.037306] davinci_evm sound: ASoC: CODEC DAI sgtl5000 not registered
    [    6.055768] davinci_evm sound: snd_soc_register_card failed (-517)
    [    6.098156] usb 1-1: device descriptor read/64, error -71
    udhcpc: sending discover
    [    6.448017] usb 1-1: device descriptor read/64, error -71
    [    6.678006] usb 1-1: device descriptor read/64, error -71
    [    7.328008] usb 1-1: device not accepting address 4, error -71
    [    7.868015] usb 1-1: device not accepting address 5, error -71
    [    7.874143] usb usb1-port1: unable to enumerate USB device
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending select for 192.168.0.210
    udhcpc: lease of 192.168.0.210 obtained, lease time 7200
    deleting routers
    adding dns 221.179.155.161
    adding dns 221.179.155.177
    OK
    Starting sshd: OK
    Starting DHCP server: FAIL
    ok
    
    DACHUANTEK login: root
    # ifconfig -a
    can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              NOARP  MTU:16  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:10 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:167 
    
    can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              NOARP  MTU:16  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:10 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:168 
    
    eth0      Link encap:Ethernet  HWaddr 40:06:A0:1B:D8:1C  
              inet addr:192.168.0.210  Bcast:192.168.1.255  Mask:255.255.254.0
              inet6 addr: fe80::4206:a0ff:fe1b:d81c/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:93 errors:0 dropped:7 overruns:0 frame:0
              TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:11648 (11.3 KiB)  TX bytes:1262 (1.2 KiB)
              Interrupt:178 
    
    eth1      Link encap:Ethernet  HWaddr 40:06:A0:1B:D8:1E  
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    usb0      Link encap:Ethernet  HWaddr 66:1A:C0:7E:A3:16  
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    # lsusb -t
    Bus 002 Device 002: ID 19d2:1476
    Bus 001 Device 001: ID 1d6b:0002
    Bus 002 Device 001: ID 1d6b:0002
    # [   61.498202]  remoteproc0: failed to load am335x-pm-firmware.elf
    [   61.505170]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
    [   61.519007]  remoteproc0: Falling back to user helper
    
    # cd 
    # ls
    3441.chkusb-0.2.10.sh
    # chmod 755 3441.chkusb-0.2.10.sh 
    # ./3441.chkusb-0.2.10.sh  > usb0_host.log
    grep: /sys/kernel/debug/musb-hdrc.?/regdump: No such file or directory
    # cat usb0_host.log 
    chkusb.sh Version 0.2.10
    Linux DACHUANTEK 4.1.18 #1 PREEMPT Tue Nov 5 17:33:27 CST 2019 armv7l GNU/Linux
    USB is initialized
    Warning: CONFIG_USB_OTG defined.
    musb-hdrc.0.auto: mode a_suspend, Vbus off, timeout 1100 msec
    musb-hdrc.1.auto: mode a_host, Vbus off, timeout 1100 msec
    usb@47401000: host, (null)
    usb@47401800: host, (null)
    
    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)
    
    The list of USB gadget drivers installed:
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/:
    function/
    legacy/
    libcomposite.ko
    udc/
    
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/function:
    u_ether.ko
    u_serial.ko
    usb_f_acm.ko
    usb_f_ecm.ko
    usb_f_ecm_subset.ko
    usb_f_eem.ko
    usb_f_fs.ko
    usb_f_hid.ko
    usb_f_mass_storage.ko
    usb_f_midi.ko
    usb_f_ncm.ko
    usb_f_obex.ko
    usb_f_phonet.ko
    usb_f_printer.ko
    usb_f_rndis.ko
    usb_f_serial.ko
    usb_f_ss_lb.ko
    usb_f_uac1.ko
    usb_f_uac2.ko
    usb_f_uvc.ko
    
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/legacy:
    g_acm_ms.ko
    g_audio.ko
    g_cdc.ko
    g_dbgp.ko
    g_ether.ko
    g_ffs.ko
    g_hid.ko
    g_mass_storage.ko
    g_midi.ko
    g_multi.ko
    g_ncm.ko
    g_nokia.ko
    g_printer.ko
    g_serial.ko
    g_webcam.ko
    g_zero.ko
    gadgetfs.ko
    
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/udc:
    udc-core.ko
    

    # 
    # 
    # ./3441.chkusb-0.2.10.sh 
    chkusb.sh Version 0.2.10
    Linux DACHUANTEK 4.1.18 #1 PREEMPT Tue Nov 5 17:33:27 CST 2019 armv7l GNU/Linux
    USB is initialized
    Warning: CONFIG_USB_OTG defined.
    musb-hdrc.0.auto: mode a_suspend, Vbus off, timeout 1100 msec
    musb-hdrc.1.auto: mode a_host, Vbus off, timeout 1100 msec
    grep: /sys/kernel/debug/musb-hdrc.?/regdump: No such file or directory
    usb@47401000: host, (null)
    usb@47401800: host, (null)
    
    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)
    
    The list of USB gadget drivers installed:
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/:
    function/
    legacy/
    libcomposite.ko
    udc/
    
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/function:
    u_ether.ko
    u_serial.ko
    usb_f_acm.ko
    usb_f_ecm.ko
    usb_f_ecm_subset.ko
    usb_f_eem.ko
    usb_f_fs.ko
    usb_f_hid.ko
    usb_f_mass_storage.ko
    usb_f_midi.ko
    usb_f_ncm.ko
    usb_f_obex.ko
    usb_f_phonet.ko
    usb_f_printer.ko
    usb_f_rndis.ko
    usb_f_serial.ko
    usb_f_ss_lb.ko
    usb_f_uac1.ko
    usb_f_uac2.ko
    usb_f_uvc.ko
    
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/legacy:
    g_acm_ms.ko
    g_audio.ko
    g_cdc.ko
    g_dbgp.ko
    g_ether.ko
    g_ffs.ko
    g_hid.ko
    g_mass_storage.ko
    g_midi.ko
    g_multi.ko
    g_ncm.ko
    g_nokia.ko
    g_printer.ko
    g_serial.ko
    g_webcam.ko
    g_zero.ko
    gadgetfs.ko
    
    /lib/modules/4.1.18/kernel/drivers/usb/gadget/udc:
    udc-core.ko
    

  • Hi Taotao,

    The kernel log shows the USB0 port is in suspend state, we probably have to figure out what causes it.

    Can you please run the following command on your board Linux console to dump a couple USB registers?

    # devmem2 0x47401401 b
    # devmem2 0x47401460 b
    

    Is the 4G module connected to USB1 through a USB port? or the module is permanently on the board similar to the wifi module on USB0?

    The TI kernel v4.1.18 was released in 2015 and no longer supported on this forum. There have been many musb bug fixes since 2015. Are you able to test the latest Processor SDK to see your board still have the same issue?

  • Hi Bin,

    The memory dump results as below.

    # devmem 0x47401401 b
    0xE2
    # devmem 0x47401460 b
    0x3D

    As for the hardware schematic, the USB0 is same as USB1.

    The LTE module is also permanently connected with the USB1 similar with Wifi module.

    There is much work payload for kernel porting to latest version, we will discuss it.

    Best Regards.

    Taotao Wang

  • Hi Taotao,

    The register value indicates the Wifi module is detected as a low-speed device. Is it really a low-speed device? If not, please check your board layout to ensure USB0 DP and DM pins are not swapped with the DP and DM pins on the Wifi module.

  • Hi Bin,

    You are right! The DM DP pin of wifi module PCB footprint  are swapped.

    After exchanged the sigals, the wlan0 has worked.

    Thanks for your great support!

    Best Regards,

    TaoTao Wang

  • Hi TaoTao,

    I am glad the issue is solved. Thanks for the update.