Apalis TK1 and USB Issues

I’m having some trouble with a number of USB devices on the Apalis TK1.

When connecting a mouse to the USB4 port (pins 100 and 98), I’m getting the following dmesg information:

[ 3711.141535] usb 1-3: new full-speed USB device number 14 using tegra-xhci
[ 3711.161926] usb 1-3: Device not responding to set address.
[ 3711.372627] usb 1-3: Device not responding to set address.
[ 3711.581975] usb 1-3: device not accepting address 14, error -71
[ 3711.701966] usb 1-3: new full-speed USB device number 15 using tegra-xhci
[ 3711.720386] usb 1-3: Device not responding to set address.
[ 3711.934660] usb 1-3: Device not responding to set address.
[ 3712.148967] usb 1-3: device not accepting address 15, error -71
[ 3712.269385] usb 1-3: new full-speed USB device number 16 using tegra-xhci
[ 3712.288018] usb 1-3: Device not responding to set address.
[ 3712.502782] usb 1-3: Device not responding to set address.
[ 3712.719958] usb 1-3: device not accepting address 16, error -71
[ 3712.842867] usb 1-3: new full-speed USB device number 17 using tegra-xhci
[ 3712.858145] usb 1-3: Device not responding to set address.
[ 3713.075893] usb 1-3: Device not responding to set address.
[ 3713.292339] usb 1-3: device not accepting address 17, error -71
[ 3713.308477] hub 1-0:1.0: unable to enumerate USB device on port 3

When I perform an lsusb, I get the following:

root@apalis-tk1:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And lspci:

root@apalis-tk1:~# lspci
00:00.0 PCI bridge: NVIDIA Corporation TegraK1 PCIe x4 Bridge (rev a1)
01:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
02:00.0 PCI bridge: NVIDIA Corporation TegraK1 PCIe x1 Bridge (rev a1)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

If I attempt to connect an alternative USB device (for example, an FTDI device), the same thing happens:

[ 4122.124608] usb 1-3: new low-speed USB device number 18 using tegra-xhci
[ 4122.144084] usb 1-3: Device not responding to set address.
[ 4122.362573] usb 1-3: Device not responding to set address.
[ 4122.579275] usb 1-3: device not accepting address 18, error -71
[ 4122.703892] usb 1-3: new low-speed USB device number 19 using tegra-xhci
[ 4122.722339] usb 1-3: Device not responding to set address.
[ 4122.938841] usb 1-3: Device not responding to set address.
[ 4123.154559] usb 1-3: device not accepting address 19, error -71
[ 4123.282855] usb 1-3: new low-speed USB device number 20 using tegra-xhci
[ 4123.292973] usb 1-3: Device not responding to set address.
[ 4123.502684] usb 1-3: Device not responding to set address.
[ 4123.717840] usb 1-3: device not accepting address 20, error -71
[ 4123.839714] usb 1-3: new low-speed USB device number 21 using tegra-xhci
[ 4123.858314] usb 1-3: Device not responding to set address.
[ 4124.070588] usb 1-3: Device not responding to set address.
[ 4124.286134] usb 1-3: device not accepting address 21, error -71
[ 4124.301967] hub 1-0:1.0: unable to enumerate USB device on port 3

Would this indicate a hardware error on one of the USB signals?

Please describe your setup (software, carrier board, module version etc.).

The software is the default Linux distribution on the Apalis TK1, we are using a custom carrier board but all signals impedance controlled and routed according to the guidelines. The Apalis TK1 is the V1.1 module.

The software is the default Linux distribution on the Apalis TK1,

What exactly do you mean by ‘the default Linux distribution’ and what exact version thereof?

we are using a custom carrier board but all signals impedance controlled and routed according to the guidelines.

Have you tried the same on our Apalis Evaluation Board or Ixora at all?

The Apalis TK1 is the V1.1 module.

I assume you meant the V1.1A version thereof.

Since tk1 can distinguish between low and full-speed devices, it’s probably not a problem of just one usb signal. Assuming that the module works with evalboard or ixora, problem is likely due to routing, esd or USB power solution used on your custom board. Can you share your design?

Sorry, my description is not very accurate - I mean the version of Linux shipped pre-loaded on the Apalis TK1 modules.

I’ve not been able to try the TK1 in the Ixora carrier, however to clarify, the TK1 does work as a USB device (RNDIS) but when in host mode, the errors are seen.

When I return to the office, I will try and send you the relevant parts of our design. As I mentioned previously, we’ve adhered to your routing guidelines and have ESD protection devices on the USB signals but I will do some more investigation.

Final questions: the Linux version which is pre-loaded onto the TK1, does this have support for the adv7280-m video encoder? Or is this something which needs building as part of the kernel modules? Likewise if I want to use an Intel 7260 PCI-E Wi-Fi card - this required back-ports for the Apalis T30, does the same apply to the TK1?

Sorry, my description is not very accurate - I mean the version of Linux shipped pre-loaded on the Apalis TK1 modules.

Unfortunately with products in sample state there is no “a” pre-installed version but rather depending on when it passed our production test whatever version was current then got flashed. But anyway we expect our customers to either flash our latest BSP demo image or even more likely their own customised builds thereof.

I’ve not been able to try the TK1 in the Ixora carrier,

Why exactly would that be? You don’t have an Ixora or you just didn’t try it?

however to clarify, the TK1 does work as a USB device (RNDIS) but when in host mode, the errors are seen.

You do have to understand that device vs. host mode exercises completely different IP plus while the USB device controller is USB 2.0 only the USB host controller is truly USB 3.0 capable.

When I return to the office, I will try and send you the relevant parts of our design. As I mentioned previously, we’ve adhered to your routing guidelines and have ESD protection devices on the USB signals but I will do some more investigation.

Unfortunately the correct wiring around USB 3.0 OTG is a frequent source of confusion up to the point that the likes of Samsung messed up their mobile designs and now Chinese flood the market with mainly wrong cables!

Final questions: the Linux version which is pre-loaded onto the TK1,

As mentioned above there is no such thing as a pre-loaded Linux version. It really depends on the specific module (e.g. given the serial number we could look at our production test data). But anyway you are supposed to flash the latest stable or beta BSP version anyway.

does this have support for the adv7280-m video encoder?

Such support was introduced with our latest BSP 2.7b2. However it may also depend on how exactly you did hook it up (e.g. to what CSI lanes and such) which is currently hard-coded here.

Or is this something which needs building as part of the kernel modules?

Yes, it is built as kernel modules which ship pre-installed by default.

Likewise if I want to use an Intel 7260 PCI-E Wi-Fi card - this required back-ports for the Apalis T30, does the same apply to the TK1?

Yes. Please also note that we are working on an easier back-ports integration.