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.

Linux/AM4377: USB Device issue in U-boot

Part Number: AM4377
Other Parts Discussed in Thread: TPS65218, AM4372

Tool/software: Linux

I'm using am4377 processor with sdk version 04.03.00.05 and encoutered a usb device recogntion issue.

The custom board cannot recognize usb when starting from qspi flash but can recognize usb when starting from sd card in the U-Boot stage.

The following information is printed after issuing 'usb start' command.

U-Boot 2017.01-00458-gccd1c34-dirty (Jun 23 2018 - 10:44:35 +0800)

CPU  : AM437X-GP rev 1.2
I2C:   ready
DRAM:  1 GiB
PMIC:  TPS65218
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
SF: Detected mx25l51235f with page size 256 Bytes, erase size 64 KiB, total 64 MiB, mapped at 30000000
*** Warning - bad CRC, using default environment

Net:   <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot:  0
=>
=> usb start
starting USB...
USB0:   Register 2000440 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus 0 for devices... Device not responding to set address.

      USB device not accepting new address (error=80000000)
1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
=>

 

soc: am4377
sdk: 04.03.00.05
nor flash: MX25L51245GMI
u-boot defconfig: am437x-evm-qspiboot_defconfig
device tree source:  am437x-sk-evm.dts

Can someone help me to solve the issue, thanks.

 

  • Hi Beata,

    If you boot your board into Linux from QSPI, does USB still work or not?
  • Hello Bin,

    The USB still cannot work when boot the board into Linux from QSPI,the following is the log.


    U-Boot 2017.01-00458-gccd1c34-dirty (Jun 23 2018 - 10:44:35 +0800)

    CPU : AM437X-GP rev 1.2
    I2C: ready
    DRAM: 1 GiB
    PMIC: TPS65218
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    SF: Detected mx25l51235f with page size 256 Bytes, erase size 64 KiB, total 64 MiB, mapped at 30000000
    *** Warning - bad CRC, using default environment

    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    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!
    SF: Detected mx25l51235f with page size 256 Bytes, erase size 64 KiB, total 64 MiB, mapped at 30000000
    device 0 offset 0x90000, size 0x400000
    SF: 4194304 bytes @ 0x90000 Read: OK
    device 0 offset 0x80000, size 0x10000
    SF: 65536 bytes @ 0x80000 Read: OK
    Kernel image @ 0x82000000 [ 0x000000 - 0x3a6fd0 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to 8fff0000, end 8ffff842 ... OK

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Linux version 4.9.69-g9ce43c71ae (shang@ubuntu) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 PREEMPT Sat Jun 9 15:37:29 CST 2018
    [ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] OF: fdt:Machine model: TI AM437x SK EVM
    [ 0.000000] efi: Getting EFI parameters from FDT:
    [ 0.000000] efi: UEFI not found.
    [ 0.000000] cma: Reserved 48 MiB at 0xbd000000
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] CPU: All CPU(s) started in SVC mode.
    [ 0.000000] AM437x ES1.2 (neon)
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260416
    [ 0.000000] Kernel command line: console=ttyO3,115200n8 spi-ti-qspi.enable_qspi=1 root=/dev/mtdblock3 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: 976224K/1048576K available (8192K kernel code, 316K rwdata, 2516K rodata, 1024K init, 295K bss, 23200K reserved, 49152K cma-reserved, 212992K 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 - 0xc0900000 (9184 kB)
    [ 0.000000] .init : 0xc0c00000 - 0xc0d00000 (1024 kB)
    [ 0.000000] .data : 0xc0d00000 - 0xc0d4f0c8 ( 317 kB)
    [ 0.000000] .bss : 0xc0d4f0c8 - 0xc0d990a4 ( 296 kB)
    [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] Preemptible hierarchical RCU implementation.
    [ 0.000000] Build-time adjustment of leaf fanout to 32.
    [ 0.000000] NR_IRQS:16 nr_irqs:16 16
    [ 0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [ 0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [ 0.000000] OMAP L2C310: ROM does not support power control setting
    [ 0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [ 0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [ 0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x4e430000
    [ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [ 0.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [ 0.000030] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [ 0.000038] OMAP clocksource: timer1 at 24000000 Hz
    [ 0.000396] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [ 0.000406] OMAP clocksource: 32k_counter at 32768 Hz
    [ 0.000755] Console: colour dummy device 80x30
    [ 0.000780] WARNING: Your 'console=ttyO3' has been replaced by 'ttyS3'
    [ 0.000786] This ensures that you still see kernel messages. Please
    [ 0.000791] update your kernel commandline.
    [ 0.000811] Calibrating delay loop... 1987.37 BogoMIPS (lpj=9936896)
    [ 0.060171] pid_max: default: 32768 minimum: 301
    [ 0.060292] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.060303] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.061045] CPU: Testing write buffer coherency: ok
    [ 0.061387] Setting up static identity map for 0x80100000 - 0x80100060
    [ 0.062140] EFI services will not be available.
    [ 0.062923] devtmpfs: initialized
    [ 0.073893] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [ 0.074180] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [ 0.074204] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 0.077454] pinctrl core: initialized pinctrl subsystem
    [ 0.078544] NET: Registered protocol family 16
    [ 0.079850] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [ 0.180181] cpuidle: using governor ladder
    [ 0.210170] cpuidle: using governor menu
    [ 0.217555] OMAP GPIO hardware version 0.1
    [ 0.229773] No ATAGs?
    [ 0.229802] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [ 0.229813] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [ 0.266643] edma 49000000.edma: TI EDMA DMA engine driver
    [ 0.269550] SCSI subsystem initialized
    [ 0.269808] usbcore: registered new interface driver usbfs
    [ 0.269865] usbcore: registered new interface driver hub
    [ 0.270006] usbcore: registered new device driver usb
    [ 0.270355] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins, deferring probe
    [ 0.270408] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins, deferring probe
    [ 0.270539] media: Linux media interface: v0.10
    [ 0.270584] Linux video capture interface: v2.00
    [ 0.270621] pps_core: LinuxPPS API ver. 1 registered
    [ 0.270627] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [ 0.270648] PTP clock support registered
    [ 0.270681] EDAC MC: Ver: 3.0.0
    [ 0.271543] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [ 0.271875] Advanced Linux Sound Architecture Driver Initialized.
    [ 0.272899] clocksource: Switched to clocksource timer1
    [ 0.281027] NET: Registered protocol family 2
    [ 0.281685] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [ 0.281751] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [ 0.281826] TCP: Hash tables configured (established 8192 bind 8192)
    [ 0.281964] UDP hash table entries: 512 (order: 1, 8192 bytes)
    [ 0.281986] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
    [ 0.282127] NET: Registered protocol family 1
    [ 0.282518] RPC: Registered named UNIX socket transport module.
    [ 0.282531] RPC: Registered udp transport module.
    [ 0.282537] RPC: Registered tcp transport module.
    [ 0.282543] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.284885] workingset: timestamp_bits=14 max_order=18 bucket_order=4
    [ 0.290109] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.290881] NFS: Registering the id_resolver key type
    [ 0.290913] Key type id_resolver registered
    [ 0.290919] Key type id_legacy registered
    [ 0.290958] ntfs: driver 2.1.32 [Flags: R/O].
    [ 0.292419] bounce: pool size: 64 pages
    [ 0.292612] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [ 0.292624] io scheduler noop registered
    [ 0.292631] io scheduler deadline registered
    [ 0.292762] io scheduler cfq registered (default)
    [ 0.295717] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [ 0.298705] backlight supply power not found, using dummy regulator
    [ 0.344997] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [ 0.347356] omap8250 44e09000.serial: No clock speed specified: using default: 48000000
    [ 0.348134] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
    [ 0.348560] omap8250 481a6000.serial: No clock speed specified: using default: 48000000
    [ 0.349116] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 31, base_baud = 3000000) is a 8250
    [ 1.036345] console [ttyS3] enabled
    [ 1.040237] omap8250 481a8000.serial: No clock speed specified: using default: 48000000
    [ 1.048872] 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 32, base_baud = 3000000) is a 8250
    [ 1.058010] omap8250 481aa000.serial: No clock speed specified: using default: 48000000
    [ 1.066653] 481aa000.serial: ttyS5 at MMIO 0x481aa000 (irq = 33, base_baud = 3000000) is a 8250
    [ 1.076972] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [ 1.083832] [drm] Initialized
    [ 1.100079] brd: module loaded
    [ 1.108992] loop: module loaded
    [ 1.114579] spi spi1.0: not using DMA for McSPI (-19)
    [ 1.120589] spi spi2.0: not using DMA for McSPI (-19)
    [ 1.126684] spi spi3.0: not using DMA for McSPI (-19)
    [ 1.133659] m25p80 spi0.0: mx66l51235l (65536 Kbytes)
    [ 1.138740] 4 ofpart partitions found on MTD device spi0.0
    [ 1.144277] Creating 4 MTD partitions on "spi0.0":
    [ 1.149065] 0x000000000000-0x000000080000 : "QSPI.u-boot"
    [ 1.155472] 0x000000080000-0x000000090000 : "QSPI.fdt"
    [ 1.161501] 0x000000090000-0x000000490000 : "QSPI.kernel"
    [ 1.167828] 0x000000490000-0x000004000000 : "QSPI.filesystem"
    [ 1.175196] libphy: Fixed MDIO Bus: probed
    [ 1.180193] CAN device driver interface
    [ 1.185278] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=188)
    [ 1.195038] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=189)
    [ 1.272963] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [ 1.279059] davinci_mdio 4a101000.mdio: detected phy mask ffffffec
    [ 1.287174] libphy: 4a101000.mdio: probed
    [ 1.291196] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver RTL8211F Gigabit Ethernet
    [ 1.300836] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver RTL8201F 10/100Mbps Ethernet
    [ 1.310684] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver RTL8211F Gigabit Ethernet
    [ 1.321050] cpsw 4a100000.ethernet: Detected MACID = 60:64:05:5e:44:06
    [ 1.327758] cpsw 4a100000.ethernet: device node lookup for pps timer failed
    [ 1.334784] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [ 1.342678] cpsw 4a100000.ethernet: cpsw: Detected MACID = 60:64:05:5e:44:08
    [ 1.352202] dwc3 48390000.usb: Configuration mismatch. dr_mode forced to host
    [ 1.362433] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [ 1.368008] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
    [ 1.376055] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238f06d hci version 0x100 quirks 0x02010010
    [ 1.384807] xhci-hcd xhci-hcd.0.auto: irq 223, io mem 0x48390000
    [ 1.391580] hub 1-0:1.0: USB hub found
    [ 1.395540] hub 1-0:1.0: 1 port detected
    [ 1.399784] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [ 1.405335] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
    [ 1.413072] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [ 1.421789] hub 2-0:1.0: USB hub found
    [ 1.425622] hub 2-0:1.0: 1 port detected
    [ 1.430003] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [ 1.435570] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
    [ 1.443644] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f06d hci version 0x100 quirks 0x02010010
    [ 1.452371] xhci-hcd xhci-hcd.1.auto: irq 224, io mem 0x483d0000
    [ 1.459127] hub 3-0:1.0: USB hub found
    [ 1.462964] hub 3-0:1.0: 1 port detected
    [ 1.467201] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [ 1.472688] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
    [ 1.480445] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
    [ 1.489214] hub 4-0:1.0: USB hub found
    [ 1.493055] hub 4-0:1.0: 1 port detected
    [ 1.497446] usbcore: registered new interface driver usb-storage
    [ 1.503939] mousedev: PS/2 mouse device common for all mice
    [ 1.509767] i2c /dev entries driver
    [ 1.515135] cpuidle: enable-method property 'ti,am4372' found operations
    [ 1.522798] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 1.529265] ledtrig-cpu: registered to indicate activity on CPUs
    [ 1.537342] pinctrl-single 44e10800.pinmux: pin PIN67 already requested by 4a100000.ethernet; cannot claim for 4803c000.mcasp
    [ 1.548739] pinctrl-single 44e10800.pinmux: pin-67 (4803c000.mcasp) status -22
    [ 1.555990] pinctrl-single 44e10800.pinmux: could not request pin 67 (PIN67) from group mcasp1_pins on device pinctrl-single
    [ 1.567300] davinci-mcasp 4803c000.mcasp: Error applying setting, reverse things back
    [ 1.575275] davinci-mcasp: probe of 4803c000.mcasp failed with error -22
    [ 1.582643] NET: Registered protocol family 10
    [ 1.588360] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [ 1.594972] NET: Registered protocol family 17
    [ 1.599427] can: controller area network core (rev 20120528 abi 9)
    [ 1.605901] NET: Registered protocol family 29
    [ 1.610674] Key type dns_resolver registered
    [ 1.615230] omap_voltage_late_init: Voltage driver support not added
    [ 1.694545] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [ 1.700362] pinctrl-single 44e10800.pinmux: pin PIN87 already requested by 48030000.spi; cannot claim for 4802a000.i2c
    [ 1.711078] pinctrl-single 44e10800.pinmux: pin-87 (4802a000.i2c) status -22
    [ 1.718128] pinctrl-single 44e10800.pinmux: could not request pin 87 (PIN87) from group i2c1_pins on device pinctrl-single
    [ 1.729245] omap_i2c 4802a000.i2c: Error applying setting, reverse things back
    [ 1.736474] omap_i2c: probe of 4802a000.i2c failed with error -22
    [ 1.744453] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 1.803863] hctosys: unable to open rtc device (rtc0)
    [ 1.809626] ALSA device list:
    [ 1.812595] No soundcards found.
    [ 1.831099] random: fast init done
    [ 6.514342] EXT4-fs (mtdblock3): recovery complete
    [ 6.797377] EXT4-fs (mtdblock3): mounted filesystem with ordered data mode. Opts: (null)
    [ 6.805597] VFS: Mounted root (ext4 filesystem) on device 31:3.
    [ 6.811637] devtmpfs: mounted
    [ 6.816437] Freeing unused kernel memory: 1024K
    INIT: version 2.88 booting
    Starting udev
    [ 7.858711] udevd[113]: starting version 3.2
    [ 7.939382] udevd[114]: starting eudev-3.2
    [ 8.260131] EXT4-fs (mtdblock3): re-mounted. Opts: data=ordered
    Mon May 28 01:25:17 UTC 2018
    INIT: Entering runlevel: 5
    Configuring network interfaces...
    [ 9.717840] net eth0: initializing cpsw version 1.15 (0)
    [ 9.735934] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
    [ 9.742292] cpsw 4a100000.ethernet: ALE Table size 1024
    [ 9.843047] RTL8201F 10/100Mbps Ethernet 4a101000.mdio:01: attached PHY driver [RTL8201F 10/100Mbps Ethernet] (mii_bus:phy_addr=4a101000.mdio:01, irq=-1)
    [ 9.860639] cpts ptp bc clkid 0
    [ 9.867298] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    done.
    Starting system message bus: dbus.
    Starting syslogd/klogd: done

    _____ _____ _ _
    | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
    | | _| .'| . | . | | __| _| . | | | -_| _| _|
    |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
    |___| |___|

    Arago Project http://arago-project.org am437x-evm /dev/ttyS3

    Arago 2017.12 am437x-evm /dev/ttyS3

    am437x-evm login: root
    root@am437x-evm:~# [ 45.862995] usb 1-1: new low-speed USB device number 2 using xhci-hcd
    [ 46.003057] usb 1-1: device descriptor read/64, error -71
    [ 46.263035] usb 1-1: device descriptor read/64, error -71
    [ 46.522999] usb 1-1: new low-speed USB device number 3 using xhci-hcd
    [ 46.663043] usb 1-1: device descriptor read/64, error -71
    [ 46.923033] usb 1-1: device descriptor read/64, error -71
    [ 47.043122] usb usb1-port1: attempt power cycle
    [ 47.742981] usb 1-1: new low-speed USB device number 4 using xhci-hcd
    [ 47.749831] usb 1-1: Device not responding to setup address.
    [ 47.973415] usb 1-1: Device not responding to setup address.
    [ 48.192936] usb 1-1: device not accepting address 4, error -71
    [ 48.342945] usb 1-1: new low-speed USB device number 5 using xhci-hcd
    [ 48.354994] usb 1-1: Device not responding to setup address.
    [ 48.573383] usb 1-1: Device not responding to setup address.
    [ 48.792930] usb 1-1: device not accepting address 5, error -71
    [ 48.798870] usb usb1-port1: unable to enumerate USB device
    [ 75.523017] random: crng init done


    Can you help me solve the issue,thanks

    Best regards,
    Beata
  • Beata,

    Thanks for testing in Linux, the kernel log provides much more information to help the investigation.

    The kernel log shows a low-speed usb device is detected. What device did you plug in? Is it a low-speed device?

  • Hi bin:

        We didn't use a low-speed USB disk. The USB port is 2.0.  We use the same kernel image and rootfs image with boot up from SDCARD.

    If boot up from SDCARD, the USB can detect successfully. 

    The only diffient between SDCARD and QSPI flash is uboot part. The SDCARD will use the MLO and u-boot.img image.

    The QSPI flash only use the u-boot.bin.   And t the config file is not the same between the 2 different boot device when compile the uboot. And you can check it in the config files.

    Does the boot up kernel address different in the uboot settings?  It seems that the uboot can not detect the USB too.

    And do you remember that you sent a patch before for we can not detect the USB issue in the uboot for SDcard boot issue.

    e2e.ti.com/.../686669

    It seems that it related with the DWC3 configurations.

  • Rance,

    It sounds like the DP/DM polarity got swapped in qspi boot mode.
    Please check your board SYSBOOT config settings, bit16 controls the swapping.
  • Hi Bin:

        Yes, I check the sysboot bit 16 and it have already been pull up by a LED control(1b = USB  DP/DM swapped in datasheet decribed). But I would like to know which place swap the DP/DM ?

    Do you mean boot from QSPI flash and SDcard use the different USB configuration in the USB driver?  As you know, our SDcard boot no problem to detect it.

    So I only conside this swap in the usb driver for boot from QSPI flash, it not the same path with SDcard boot I think.

    And I will remove the resistor for a try to check if it can detect USB when boot from QSPI flash,  if you have the resource in the source code side, please let us know.

    Thanks very much.

  • Rance,

    Do you mean your board permanently pulls up sysboot bit16 for both qspi and usb boot?
    Can you please share the whole sysboot value you used for both qspi and usb boot mode?

    The sysboot bit16 is not used by uboot, the DP/DM swapping is done in ROM, I don't have access to the ROM source code right now to check why it is different in qspi and usb boot mode, but the TRM section 5.2.5.2 ("SYSBOOT Configuration Pins") show bit16 is "don't care" for some boot modes. That is why I want to know the whole sysboot config you used for qspi and usb boot mode.

    If you board layout doesn't physically swap DP/DM, you should't pull up bit16.
  • Hi Bin:

         Our layout didn't swap the DP/DM, Maybe booting from sdcard swap default setings for the DP/DM in the ROM code which we can not see it.

    So we can detect USB disk in sdcard boot up mode. Because the bit 16 is high as default.

    QSPI flash maybe use the normal configuration for the DP/DM in the ROM code which I guess.  And we remove the resistor R308 in the following picture which connect to the 3.3V. The USB disk can be detected now.

    Thanks for your support.

  • Rance,

    Can both usb and qspi boot detect usb devices now after removed the bit16 pullup? I am still not sure what exactly the issue was. Can you please provide the whole sysboot config value (for all the pins) you use in both usb and qspi boot mode? The values should give a clue.

  • Hi Bin:
    After remove the resistor, the SDcard also can detect USB correctly. This is also confuse me also.
    All our system config as following:
    SYSBOOT[4:0]: 11000
    SYSBOOT[5]: X (means not mount any conponent, don't care)
    SYSBOOT[6-7]:00
    SYSBOOT[8-9]:XX
    SYSBOOT[10]:0
    SYSBOOT[11]: X
    SYSBOOT[12-13]:00
    SYSBOOT[14-15]:10
    SYSBOOT[16-17]:00 --> sysboot16 and 17 reuse as LED control, and it pull high by a 3.3V.
    SYSBOOT[18]: X
  • Rance,

    okay, you use the same sysboot config [4:0]=11000 for both SDcard and qspi boot, so usb dp/dm swapping status should be the same, unless something else changed it, for example, if sysboot[16] has been pulled down by led control in sd card boot.

    To check this, keep the bit[16] pullup resister on your board, and read the CONTROL MODULE CTRL_STS register (TRM Section 7.3.1.4) which shows the sysboot config value, and check if its bit[16] is the same in sd card and qspi boot.
  • Hi Rance,

    Have you checked the register reading if bit[16] is different in both boot modes?
  • Hi Bin:

       Sorry for forget to reply to you,  It seems there is no change for bit16, That maybe other place influence this.

  • Hi Bin:
    Sorry for mistake, the bit16 changed boot from SPI and SDCARD, I got the wrong msg.
  • Rance,

    Do you mean bit16 is 1 (DP/DM swapped) for both boot modes? If so it sounds the problem is caused by something else.

    Since removing sysboot bit16 external pullup solves the issue, are you okay to use it as the solution? Or you have to keep the pullup and find other solution?
  • Hi Bin:

           Yes, the bit16 change with the different boot mode. Next version we will not use the sysboot 16 to control led, and we will remove it for the pull up resistor.

    And it is OK for us.

    Thanks for your help.

  • Rance,

    Sounds a good plan. I am closing this thread.