USB Mass storage detection issue in u-boot

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB Mass storage detection issue in u-boot

17,222 Views
chandrashekhar
Contributor III

Hi,

we have developed t1042 based board ,where USB mass storage device is not getting detected at u-boot. Below is the u-boot log messages,

=> usb start
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... cannot reset port 1!?
1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
=> usb info
1: Hub,  USB Revision 2.0
- u-boot EHCI Host Controller
- Class: Hub
- PacketSize: 64  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 2048 Interval 255ms

2: Hub,  USB Revision 2.0
- u-boot EHCI Host Controller
- Class: Hub
- PacketSize: 64  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 2048 Interval 255ms

=>

Any advise on what could be the reason for this?

Regards,

Chandra

Tags (2)
0 Kudos
9 Replies

5,963 Views
catalindemergia
Contributor IV

Hi,

I had a look in the USB code. I see that the usb_stor_scan() gets called (that's why you see the "scanning usb for storage devices..." in the log).

This function calls usb_storage_probe() in a for loop to see if the new device is a storage device. Since in your case nothing is found, the function

returns zero for every for iteration. By looking at this functions's code, I see this

if (dev->descriptor.bDeviceClass != 0 ||
   iface->desc.bInterfaceClass != USB_CLASS_MASS_STORAGE ||
   iface->desc.bInterfaceSubClass < US_SC_MIN ||
   iface->desc.bInterfaceSubClass > US_SC_MAX) {
   /* if it's not a mass storage, we go no further */
   return 0;

    }

That is the only place in the function where it returns zero without printing something first (at least in the file version that I'm looking).

Maybe for your device these conditions are not met. Can you add a print statement before the return and see if you see that in the log ?

Because to me it seems very likely that this might be the reason why it doesn't detect any storage device.

regards,

Catalin

0 Kudos

5,964 Views
chandrashekhar
Contributor III

Hi Catalin,

I enabled the debug messages in u-boot usb code base and here is the log,

=> usb start
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x40
usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length 0x0
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x19
usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x1 length 0xFF
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x1 length 0xFF

chanmish[usb_hub_probe,#590]:USB hub found
usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x4
usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x8
chanmish[usb_hub_configure,#387]:part of a compound device
chanmish[usb_hub_configure,#407]:power on to power good time: 20ms
chanmish[usb_hub_configure,#409]:hub controller current requirement: 0mA
usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4
get_hub_status returned status ADDE, change EFBE
local power source is good
over-current condition exists
usb_control_msg: request: 0x1, requesttype: 0x23, value 0x8 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
Port 1 Status 0x509@0x905 Change 11
port 1 connection change
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
portstatus 509, change 11, 480 Mb/s
usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0
hub_port_reset: resetting port 0...
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
portstatus 509, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
portstatus 509, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
portstatus 509, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
portstatus 509, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
portstatus 509, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
Cannot enable port 1 after 5 retries, disabling port.
Maybe the USB cable is bad?
cannot reset port 1!?
port 1 reset change
usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0
1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x40
usb_control_msg: request: 0x5, requesttype: 0x0, value 0x2 index 0x0 length 0x0
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x19
usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x1 length 0xFF
usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x1 length 0xFF

chanmish[usb_hub_probe,#590]:USB hub found
usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x4
usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x8
chanmish[usb_hub_configure,#387]:part of a compound device
chanmish[usb_hub_configure,#407]:power on to power good time: 20ms
chanmish[usb_hub_configure,#409]:hub controller current requirement: 0mA
usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4
get_hub_status returned status ADDE, change EFBE
local power source is good
over-current condition exists
usb_control_msg: request: 0x1, requesttype: 0x23, value 0x8 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
Port 1 Status 0x508@0x805 Change 0
1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
=>

0 Kudos

5,963 Views
catalindemergia
Contributor IV

Hi,

From this log I see that the USB driver is working, it does what is supposed to do, it reads

the hub descriptors correctly (otherwise there would be a lot of error messages in the enumeration stage).

It detects correctly that there is a device present on a hub port, but when it resets the port (as a part of the

enumeration) it sees that the port is not getting enabled; after checking five times (nb of retries) it doesn't go

any further. This seems like an electrical problem (I also see in the log "over-current condition exists" which points

that way).

I would like to see next

- the log that the device is producing when it is powered on (the u-boot log)

- the output of the printenv command (I'm looking for the hwconfig setting)

regards,

Catalin

0 Kudos

5,963 Views
chandrashekhar
Contributor III


Hi Catalin,

Here is one more update on the issue,

We had modified USB_PHYx_PLLREG1 (0x21_4060)  and USB_PHYx_PLLREG2 (0x21_4064) as per t1040RM_RevC section 34.10 to values (0x00000001) and (0x00262013) respectively. Because of this we were not seeing USB device port getting enabled. When we kept USB_PHYx_PLLREG2 value as per t1040 qds eval board i.e. 0x00250003, we could see the USB port getting enabled but u-boot code get crashed after that. here is the log,

=> usb start
(Re)start USB...
USB0:   chanmish[ehci_hcd_init,135]:&ehci->control@0xfe210500
chanmish[ehci_hcd_init,135]:&ehci->control@0xfe210500
USB EHCI 1.00
scanning bus 0 for devices...
chanmish[usb_hub_probe,#594]:USB hub found
chanmish[usb_hub_configure,#391]:part of a compound device
chanmish[usb_hub_configure,#411]:power on to power good time: 20ms
chanmish[usb_hub_configure,#413]:hub controller current requirement: 0mA
get_hub_status returned status ADDE, change EFBE
local power source is good
over-current condition exists
enabling power on all ports
port 1 returns 0
Port 1 Status 509 Change 1
port 1 connection change
portstatus 509, change 1, 480 Mb/s
hub_port_reset: resetting port 0...
portstatus 50b, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
hub_port_reset: resetting port 0...
portstatus 50b, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
NIP: 7FF310F8 XER: 00000000 LR: 7FF72068 REGS: 7fb2cfb0 TRAP: 0700 DAR: 00000000
MSR: 00001000 EENIP: 7FF70E28 XENIP: 7FF70E28 XER: 00000000 LR: 7FF99174 NIP: 7FF70E28 XER: 00000000 LR: 7FF99174 REGS: 7fb2c788 TRAP: 0700 DAR: 00000000
MSR: 00001000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 7FF70EB8 7FB2C878 00000000 00000052 00000001 00000000 FFFFFFFE 00000020
GPR08: 7FB2C8FF 00000020 00000020 7FB2C898 7FF487DC AECF89C0 00000080 7FB41200
GPR16: 0000B3A1 7FB41240 7FF91BC7 7FB2D240 00001000 7FB2CA30 00000000 7FF3109C
GPR24: 7FF38A00 7FFC6380 7FF88211 7FF88299 7FF901E1 00000001 7FF99174 7FB2C8D9
** Illegal Instruction **
Call backtrace: Bad trap at PC: 7ff386c4, SR: 1000, vector=d00
NIP: 7FF386C4 XER: 00000000 LR: 7FF386BC REGS: 7fb2c650 TRAP: 0d00 DAR: DEADBEEF
MSR: 00001000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 7FF386BC 7FB2C740 00000000 00000010 00000020 7FB2C70C FFFFFFFE 00000020
GPR08: 7FB2C5FF DEADBEEF 00000020 7FB2C740 7FF487DC AECF89C0 00000080 7FB41200
GPR16: 0000B3A1 7FB41240 7FF91BC7 7FB2D240 00001000 7FB2C778 00000000 7FF3109C
GPR24: 7FF38A00 7FFC6380 7FF88211 7FF901E1 00000007 00000000 7FF99174 7FB2C878
Call backtrace: Bad trap at PC: 7ff386c4, SR: 1000, vector=d00
NIP: 7FF386C4 XER: 00000000 LR: 7FF386BC REGS: 7fb2c518 TRAP: 0d00 DAR: DEADBEEF
MSR: 00001000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

Also, here is the dump of u-boot boot up and printenv as you suggested,

1) U- boot boot up

U-Boot 2014.01QorIQ-SDK-T1040-BSP0.2 (Jul 14 2014 - 17:24:40)

CPU0:  T1042E, Version: 1.0, (0x85280210)
Core:  e5500, Version: 2.0, (0x80241020)
Single Source Clock Configuration
Clock Configuration:
       CPU0:1000 MHz, CPU1:1000 MHz, CPU2:1000 MHz, CPU3:1000 MHz,
       CCB:400  MHz,
       DDR:500  MHz (1000 MT/s data rate) (Asynchronous), IFC:100  MHz
       FMAN1: 400 MHz
       QMAN:  200 MHz
       PME:   200 MHz
L1:    D-cache 32 KiB enabled
       I-cache 32 KiB enabled
Reset Configuration Word (RCW):
       00000000: 080a000a 0a000000 00000000 00000000
       00000010: a7000002 40000012 ec027000 01000000
       00000020: 00000000 00000000 00000000 0003f00c
       00000030: 00000100 44160a05 00000000 00000000
I2C:   ready
SPI:   ready
Top of RAM usable for U-Boot at: 80000000
Reserving 818k for U-Boot at: 7ff30000

TOTAL_MALLOC_LEN : 402000
Reserving 4104k for malloc() at: 7fb2e000
Reserving 72 Bytes for Board Info at: 7fb2dfb8
Reserving 176 Bytes for Global Data at: 7fb2df08
Stack Pointer at: 7fb2def0

Now running in RAM - U-Boot at: 7ff30000

L2:    256 KiB enabled
Corenet Platform Cache: 256 KiB enabled
Using SERDES1 Protocol: 167 (0xa7)
CPU up timeout. CPU up mask is 1 should be f
NAND:  fsl_ifc_chip_init: address did not match any chip selects
0 MiB
MMC:
FSL_SDHC: 0

*** Warning - bad CRC, using default environment

PCIe1: Root Complex, no link, regs @ 0xfe240000
PCIe1: Bus 00 - 00
PCIe2: Root Complex, x1 gen1, regs @ 0xfe250000
  02:00.0     - 10b5:8609 - Bridge device
   03:01.0    - 10b5:8609 - Bridge device
   03:04.0    - 10b5:8609 - Bridge device
   03:05.0    - 10b5:8609 - Bridge device
   03:06.0    - 10b5:8609 - Bridge device
   03:07.0    - 10b5:8609 - Bridge device
   03:08.0    - 10b5:8609 - Bridge device
   03:09.0    - 10b5:8609 - Bridge device
    0a:00.0   - 1137:005f - Memory controller
  02:00.1     - 10b5:8609 - Base system peripheral
PCIe2: Bus 01 - 0a
PCIe3: Root Complex, no link, regs @ 0xfe260000
PCIe3: Bus 0b - 0b
PCIe4: Root Complex, no link, regs @ 0xfe270000
PCIe4: Bus 0c - 0c

In:    serial
Out:   serial
Err:   serial

Net:   Initializing Fman

Fman1: Uploading microcode version 106.4.14

FSL_MDIO0:0 is connected to FM1@DTSEC1.  Reconnecting to FM1@DTSEC2
FSL_MDIO0:0 is connected to FM1@DTSEC2.  Reconnecting to FM1@DTSEC3

FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3, FM1@DTSEC4 [PRIME]

Hit any key to stop autoboot:  0
=>

2) Printenv log.
=> printenv
baudrate=115200
bdev=sda3
boot=run my_kern my_fs my_dtb my_boot
bootargs=${bootargs} root /dev/ram0 rw console=ttyS0,115200
bootcmd=tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr
bootdelay=10
bootfile=/auto/tftp-blr-users3/chanmish/t1040/uImage-t1040qds.bin
c=ffe
consoledev=ttyS0
eth0addr=00:04:9f:03:25:90
eth10addr=00:04:9F:03:05:EE
eth11addr=00:04:9F:03:05:EF
eth12addr=00:04:9F:03:05:F0
eth13addr=00:04:9F:03:05:F1
eth14addr=00:04:9F:03:05:F2
eth15addr=00:04:9F:03:05:F3
eth1addr=00:04:9F:03:05:E5
eth1addr =00:04:9f:03:25:91
eth2addr= 00:04:9F:03:05:E6
eth3addr=00:04:9F:03:05:E7
eth4addr=00:04:9F:03:05:E8
eth5addr=00:04:9F:03:05:E9
eth6addr=00:04:9F:03:05:EA
eth7addr=00:04:9F:03:05:EB
eth8addr=00:04:9F:03:05:EC
eth9addr=00:04:9F:03:05:ED
ethact=FM1@DTSEC5
ethaddr=00:04:9F:03:05:E4
ethprime=FM1@DTSEC5
fdtaddr=0x5000000
fdtfile=/auto/tftp-blr-users3/chanmish/t1040/uImage-t1040qds.dtb
fman_ucode=0
gatewayip=5.57.0.1
hwconfig=fsl_ddr:bank_intlv=cs0_cs1;usb1:dr_mode=host,phy_type=utmi;usb2:dr_mode=host,phy_type=utmi
ipaddr=5.67.103.9
loadaddr=0x3000000
my_boot=bootm 0x3000000 0x7000000 0x5000000
my_dtb=tftp 0x5000000 /auto/tftp-blr-users3/chanmish/t1040/uImage-t1040qds.dtb
my_fs=tftp 0x3000000 /auto/tftp-blr-users3/chanmish/t1040/uImage-t1040qds.bin
my_kern=tftp 0x7000000 /auto/tftp-blr-users3/chanmish/t1040/fsl-image-core-t1040qds-20140626131340.rootfs.ext2.gz.u-boot
netdev=eth0
netmask=255.255.255.0
nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr - $fdtaddr
ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr
ramdiskaddr=0x7000000
ramdiskfile=/auto/tftp-blr-users3/chanmish/t1040/fsl-image-core-t1040qds-20140626131340.rootfs.ext2.gz.u-boot
rootpath=/opt/nfsroot
serverip=202.153.144.25
tftpflash=tftpboot $loadaddr $uboot && protect off $ubootaddr +$filesize && erase $ubootaddr +$filesize && cp.b $loadaddr $ubootaddr $filesize && protect on $ubootaddr +$filesize && cmp.b $loadaddr $ubootaddr $filesize
uboot="u-boot.bin"
ubootaddr=0x01101000

Environment size: 2483/8188 bytes
=>

Regards,

Chandra

0 Kudos

5,963 Views
catalindemergia
Contributor IV

Hello,

I am looking at this section from the log

hub_port_reset: resetting port 0...

portstatus 50b, change 10, 480 Mb/s

STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1

hub_port_reset: resetting port 0...

portstatus 50b, change 10, 480 Mb/s

STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1


and I don't understand how the hub_port_reset function can be called two times in a raw.

Was this a copy-paste error or this is the correct log ? To me it seems unrelated to the logic of

the program. If this is the correct log, for some reason it crashes the second time the function

gets called and the port is reset, even though the port is enabled the second time as well.

Catalin


0 Kudos

5,964 Views
chandrashekhar
Contributor III

Hi Catalin,

This is not a copy paste error. This message came twice only. I checked the same again. Below is the log. Also, the crash location is ramdom. To debug that issue I added few more prints as shown below.

=> usb start
(Re)start USB...
USB0:   chanmish[ehci_hcd_init,135]:&ehci->control@0xfe210500
chanmish[ehci_hcd_init,135]:&ehci->control@0xfe210500
USB EHCI 1.00
scanning bus 0 for devices... chanmish[usb_new_device,#992]
set address 1
chanmish[usb_new_device,#1012]
chanmish[usb_new_device,#1051]
chanmish[usb_new_device,#1076]
Manufacturer u-boot
Product      EHCI Host Controller
SerialNumber
chanmish[usb_hub_configure,#415]:power on to power good time: 20ms
chanmish[usb_hub_configure,#417]:hub controller current requirement: 0mA
get_hub_status returned status 0, change 0
local power source is good
no over-current condition exists
enabling power on all ports
port 1 returns 0
Port 1 Status 500 Change 0
chanmish[usb_hub_configure,#567]
chanmish[usb_new_device,#1082]
1 USB Device(s) found
USB1:   chanmish[ehci_hcd_init,135]:&ehci->control@0xfe211500
chanmish[ehci_hcd_init,135]:&ehci->control@0xfe211500
USB EHCI 1.00
scanning bus 1 for devices... chanmish[usb_new_device,#992]
set address 2
chanmish[usb_new_device,#1012]
chanmish[usb_new_device,#1051]
chanmish[usb_new_device,#1076]
Manufacturer u-boot
Product      EHCI Host Controller
SerialNumber
chanmish[usb_hub_configure,#415]:power on to power good time: 20ms
chanmish[usb_hub_configure,#417]:hub controller current requirement: 0mA
get_hub_status returned status 0, change 0
local power source is good
no over-current condition exists
enabling power on all ports
port 1 returns 0
Port 1 Status 509 Change 1
port 1 connection change
portstatus 509, change 1, 480 Mb/s
hub_port_reset: resetting port 0...
portstatus 50b, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
chanmish[usb_hub_port_connect_change,#289]
chanmish[usb_hub_port_connect_change,#292]
chanmish[usb_hub_port_connect_change,#300] HIGH SPEED
hub_port_reset: resetting port 0...
portstatus 50b, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
chanmish[usb_new_device,#992]
set address 3
chanmish[usb_new_device,#1012]
chanmish[usb_new_device,#1051]
chanmish[usb_new_device,#1076]
Manufacturer
Product
SerialNumber
chanmish[usb_hub_configure,#415]:power on to power good time: 100ms
chanmish[usb_hub_configure,#417]:hub controller current requirement: 1mA
get_hub_status returned status 0, change 0
local power source is good
no over-current condition exists
enabling power on all ports
port 1 returns 0
port 2 returns 0
port 3 returns 0
Port 1 Status 101 Change 1
port 1 connection change
portstatus 101, change 1, 12 Mb/s
hub_port_reset: resetting port 0...
portstatus 503, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
chanmish[usb_hub_port_connect_change,#289]
chanmish[usb_hub_port_connect_change,#292]
chanmish[usb_hub_port_connect_change,#300] HIGH SPEED
hub_port_reset: resetting port 0...
portstatus 503, change 10, 480 Mb/s
STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
chanmish[usb_new_device,#992]
set address 4
chanmish[usb_new_device,#1012]
NIP: 00000A38 XER: 00000000 LR: 7FF720E8 REGS: 7fb2c9f8 TRAP: 0700 DAR: 00000000
MSR: 00021200 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 7FF7206C 7FB2CAE8 7FB2DF08 0001A4FB 7FB412C0 00000000 000186A0 00000001
GPR08: 00000080 7FFB00D8 01000000 7FB2CAF8 7FF720E8 FECF8DD0 00000080 7FB41240
GPR16: 0001A4FB 7FB412C0 7FB41240 7FB2CB80 7FF720E8 7FB2C9E8 00000000 7FFC6500
GPR24: 00000000 7FFC64C0 00000009 80008C80 7FB2CB00 7FB411C0 7FF99278 7FFB3C80
** Illegal Instruction **
Call backtrace:
7FB411C0 7FF7206C 7FF53740 7FF537DC 7FF53B28 7FF54154 7FF54C84
7FF54FF8 7FF5453C 7FF54C84 7FF54FF8 7FF5453C 7FF54654 7FF46FC4
7FF483A4 7FF4E1C0 7FF4E838 7FF4EA2C 7FF527A4 7FF3964C 7FF31650
Program Check Exception
### ERROR ### Please RESET the board ###

0 Kudos

5,964 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Chandra,

According to your u-boot log, it seems that you use Single Source Clock Configuration mode.

About support USB in single clock mode, in T104x USB can be configured to get clock from SYSCLK instead of using external clock, in the default u-boot, USB runs with the external clock, it is need to define CONFIG_SYS_FSL_SINGLE_SOURCE_CLK in the config header file for single clock mode.

It seems that this is a new feature of SDK 1.6, so I suggest you to upgrade your software to SDK 1.6.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

5,964 Views
catalindemergia
Contributor IV

Hello,

I tried with a SDK 1.6 u-boot on a t1042 board and it detected the USB storage device.

The problem I could see was that if you do usb start many times in a raw, one time it detects

the device and the next fails, and this process repeats. A workaround to this could be to enter

usb stops between the usb starts. If after reset it doesn't detect the device, do a usb stop and usb

start and it will detect it. However, I didn't see any crash with this u-boot.

regards,

Catalin

0 Kudos

5,964 Views
chandrashekhar
Contributor III

Hi guys,

What could be the possible reason for "hub_port_reset()" failure in u-boot ? It seems because of this usb storage device is not getting detected on our board.

Regards,

Chandra

0 Kudos