Hi,
We have a custom board and are struggling with using the USB2.0 interface with a USB3343 ULPI.
The USB3343 is configured for clock out and have confirmed that a 60MHz clock is being generated and fed into the LS1012A's USB2 CLK pin.
We have the RCW bits set correctly to enable ULPI mode on the EC1 pins, but do not see any sign of the interfaces presence.
Reading the USB2.0's address space 0x860_0000 in uBoot shows all zero's.
Are there any other RCW settings required to use the ULPI interface?
We have one ethernet port using 4-wire SGMII, one PCIe and both the USB3 and USB2 interfaces.
The ethernet, USB3 and PCIe ports function as expected.
Thanks in advance.
Our RCW configuration is as follows:
SoC: LS1012AE Rev2.0 (0x87040020)
Clock Configuration:
CPU0(A53):1000 MHz
Bus: 250 MHz DDR: 1000 MT/s
Reset Configuration Word (RCW):
00000000: 0800000a 00000000 00000000 00000000
00000010: 33050000 c000000c 40000000 00001800
00000020: 00000000 00000000 00000000 000e4432
00000030: 00000000 10800120 00000096 00000000
Please set USB CONTROL[USB_EN]=1.
Please check that the USBCMD[RST] is cleared, if not - write 1 to USB_CONTROL[USB_EN].
Hi Ufedor,
USBCMD[RST] is cleared. I have tried writing to USB_CONTROL[USB_EN], but writes to this region do not appear to work or have no affect. I have also implemented erratum a008118 concerning not waiting for reset to clear before enabling USB_CONTROL[USB_EN], Again to no affect.
We are using u-boot source from the FRWY reference, U-Boot 2017.07-00013
A dump of the register space in u-boot shows nothing present:
=> md.l 0x8600000 141
08600000: 00000000 00000000 00000000 00000000 ................
08600010: 00000000 00000000 00000000 00000000 ................
08600020: 00000000 00000000 00000000 00000000 ................
08600030: 00000000 00000000 00000000 00000000 ................
08600040: 00000000 00000000 00000000 00000000 ................
08600050: 00000000 00000000 00000000 00000000 ................
08600060: 00000000 00000000 00000000 00000000 ................
<data repeats...>
08600440: 00000000 00000000 00000000 00000000 ................
08600450: 00000000 00000000 00000000 00000000 ................
08600460: 00000000 00000000 00000000 00000000 ................
08600470: 00000000 00000000 00000000 00000000 ................
08600480: 00000000 00000000 00000000 00000000 ................
08600490: 00000000 00000000 00000000 00000000 ................
08600500: 00000000 ....
Does the SAI hardware need to be disabled in DCFG_CCSR for the USB2 registers to appear?
Or is there some other memory specific initialisation to perform before trying to use this module?
What is DEVDISR1 value?
Hi Ufedor,
Here is the DCFG_CCSR map:
=> md.l 0x1ee0000 60
01ee0000: ffbf7f22 000000f6 00000000 00000000 "...............
01ee0010: 00000000 00000000 00000000 00000000 ................
01ee0020: 00000000 00000000 00000000 00000000 ................
01ee0030: 00000000 00000000 00000000 00000000 ................
01ee0040: 00000000 00000000 00000000 00000000 ................
01ee0050: 00000000 00000000 00000000 00000000 ................
01ee0060: 00000000 00000000 00000000 00000000 ................
01ee0070: 00000000 00000000 00000000 00000000 ................
01ee0080: 00000000 00000000 00000000 00000000 ................
01ee0090: 00000000 0e000000 00000000 00000000 ................
01ee00a0: 00000000 20000487 40000000 00000000 ....... ...@....
01ee00b0: 00000000 00000000 00000000 00000000 ................
01ee00c0: 00400000 00000000 00400000 00000000 ..@.......@.....
01ee00d0: 00000000 00000000 00000000 00000000 ................
01ee00e0: 00000000 00000000 00000000 00000000 ................
01ee00f0: 00000000 00000000 00000000 00000000 ................
01ee0100: 0a000008 00000000 00000000 00000000 ................
01ee0110: 00000533 0c0000c0 00000040 00180000 3.......@.......
01ee0120: 00000000 00000000 00000000 32440e00 ..............D2
01ee0130: 00000000 20018010 96000000 00000000 ....... ........
01ee0140: 00000000 00000000 00000000 00000000 ................
01ee0150: 00000000 00000000 00000000 00000000 ................
01ee0160: 00000000 00000000 00000000 00000000 ................
01ee0170: 00000000 00000000 00000000 00000000 ................
Thanks
Please check and confirm that all notes after the "Table 1. Pinout list by bus" in the QorIQ LS1012A Data Sheet are fulfilled in the design.
Hi Ufedor,
We have confirmed all of the notes in table 1 of the data sheet are being followed.
Thanks
What is the value of the USB CONTROL[USB_EN]?
Hi Ufedor,
We have made some additional progress. It looks like a register in the CSU may not be set correctly.
Modifying 'arch/arm/include/asm/arch-fsl-layerscape/ns_access.h' to add the USB2 permissions after I2C1 enables the USB2 interface. Its registers then appear and we can then see the ULPI.
Thanks
USB_CONTROL{USB_EN] is zero. The entire memory range of the USB2 controller reads zero, as in the dump of 0x860_0000 shown above.