Author Topic: TEBF0808 - USB3.0 not working  (Read 2911 times)

Matt

  • Active Member
  • *
  • Posts: 4
TEBF0808 - USB3.0 not working
« on: April 27, 2017, 03:09:45 PM »
Hi,

I am working with the UltraSOM+ device Rev03 (TE0808) and the motherboard TEBF0808. I built a Linux system with the help of Buildroot, using the components (Linux kernel, U-Boot, etc. [version 2016.2]) from the official Xilinx Github repository.

Concerning my problem:
the board has two USB 2.0/3.0 ports, which are seen by the Linux kernel without a problem.
# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 04b4:650a Cypress Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


The USB driver for USB2.0 and USB3.0 are installed into the kernel.
As illustrated above, the device 002 (I think it represents the two USB ports) is connected to the Bus 001, which is a USB2.0 bus. As a consequence, all USB device that I connect to the board are directly connected to the Bus 001 (USB2.0).

How can I connect the USB3.0 device to the Bus 002?

Thanks,

Matteo

JH

  • Hero Member
  • *****
  • Posts: 610
Re: TEBF0808 - USB3.0 not working
« Reply #1 on: April 28, 2017, 09:54:20 AM »
Hi,

this will be detect automatically, if everything (PS Settings, USB3.0-GTREF-CLK,Linux Driver...) is Ok. Do you use our board parts and modified FSBL? For UlraScale+ devices it will be better to change to the newer Vivado/Linux version. And do not mix files from different versions. Xilinx change and fix a lot of things with every iteration for the beta devices.   

We provide a reference design with USB3.0 activated for storage devices for Vivado 2016.4 / PetaLinux 2016.4:
It includes source code, board part files, fsbl template for SI5345 initialization, petalinux template with current settings, prebuilt...
Links how to use the sources are here:
 

Here's a log with USB3.0 storage on TEBF0808 StarterKit with mini ITX enclosure:
Code: [Select]
root@plnx_aarch64:~# lsusb
Bus 001 Device 002: ID 04b4:650a
Bus 002 Device 002: ID 04b4:6508
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0003
root@plnx_aarch64:~# [   40.125480] usb 2-1.4: new SuperSpeed USB device number 3 using xhci-hcd
[   40.150991] usb 2-1.4: New USB device found, idVendor=125f, idProduct=312b
[   40.157860] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   40.165228] usb 2-1.4: Product: ADATA USB Flash Drive
[   40.170307] usb 2-1.4: Manufacturer: ADATA
[   40.174431] usb 2-1.4: SerialNumber: 273021046016003D
[   40.180791] usb-storage 2-1.4:1.0: USB Mass Storage device detected
[   40.187422] scsi host2: usb-storage 2-1.4:1.0
[   41.370549] scsi 2:0:0:0: Direct-Access     ADATA    USB Flash Drive  1100 PQ: 0 ANSI: 6
[   41.379840] sd 2:0:0:0: [sda] 30310400 512-byte logical blocks: (15.5 GB/14.5 GiB)
[   41.388070] sd 2:0:0:0: [sda] Write Protect is off
[   41.393456] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   41.409192]  sda: sda1
[   41.415603] sd 2:0:0:0: [sda] Attached SCSI removable disk

root@plnx_aarch64:~# lsusb
Bus 001 Device 002: ID 04b4:650a
Bus 002 Device 002: ID 04b4:6508
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0003
Bus 002 Device 003: ID 125f:312b

P.S: It's enough to write a request either to the forum or to our support. Both to the same time is not necessary.

br
John

Matt

  • Active Member
  • *
  • Posts: 4
Re: TEBF0808 - USB3.0 not working
« Reply #2 on: April 28, 2017, 12:09:54 PM »
Hi John,

Thank you for the quick answer and sorry for the duplicate.

I am now using the 2016.4 environment (Linux kernel and U-Boot) and I generated a FSBL with the XSDK 2016.4.
Unfortunately I have a problem when building the ATF (source code from "https://github.com/Xilinx/arm-trusted-firmware.git", tag "xilinx-v2016.4"). The compilation command I use is the following:
Code: [Select]
# make CROSS_COMPILE=/path/to/cross/compile PLAT=zynqmp RESET_TO_BL31=1
And I get this error
Code: [Select]
bl31/aarch64/runtime_exceptions.S: Assembler messages:
bl31/aarch64/runtime_exceptions.S:177: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:186: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:191: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:196: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:212: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:216: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:220: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:224: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:240: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:249: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:253: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:257: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:273: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:282: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:286: Error: non-constant expression in ".if" statement
bl31/aarch64/runtime_exceptions.S:290: Error: non-constant expression in ".if" statement

Is there a workaround?

Thank you for the support

JH

  • Hero Member
  • *****
  • Posts: 610
Re: TEBF0808 - USB3.0 not working
« Reply #3 on: April 28, 2017, 12:16:58 PM »
Hi,

use petalinux 2016.4. It's jocto based build process with SDK/HSI in the background (it use also a distribution from xilinx git hub), see also:

You can use the petalinux template from our reference design with your hdf. See our KickStart description.

br
John

Matt

  • Active Member
  • *
  • Posts: 4
Re: TEBF0808 - USB3.0 not working
« Reply #4 on: May 02, 2017, 11:33:53 AM »
Hi John,

I tried the method described at https://shop.trenz-electronic.de/en/Download/?path=Trenz_Electronic/TE0808/Reference_Design/2016.4/Carrier_TEBF0808 and effectively I can see the USB3.0 bus.

I also tried to create a petalinux project with the ".hdf" file found in the prebuilt directory, but unfortunately, it did not get the same result.

Is it possible to have the kernel configuration file of the prebuilt kernel in order to compare what features/drivers I need?
And concerning your first message:
Quote
Do you use our board parts and modified FSBL?
What do you mean with "modified FSBL"?

Thank you for the support.

Matteo

JH

  • Hero Member
  • *****
  • Posts: 610
Re: TEBF0808 - USB3.0 not working
« Reply #5 on: May 02, 2017, 12:12:58 PM »
Hi, some clock, also USB3.0 reference CLK will be generated with SI5345 PLL. The FSBL,  which will provided with the reference design (also source code as template for SDK/HSI in the subfolder /sw_lib/sw_apps), will initialize this PLL.
You found a SI5345 Project is in the Subfolder misc\Si5345
There is also a PetaLinux template with all configurations, we've used: \os\petalinux


br
John

Matt

  • Active Member
  • *
  • Posts: 4
Re: TEBF0808 - USB3.0 not working
« Reply #6 on: May 02, 2017, 10:26:24 PM »
Hi John,

Many thanks for the support! The file I needed was the following
project-spec/meta-user/recipes-dt/device-tree/files/system-top.dts

Adding this file to my Buildroot environment (and the respective includes) makes the USB3.0 working!