USB 2.0 HUB using USB2514

Hello,

We developed an industrial carrier board based on the Verdim SoM family and it has a Microchip USB2514 (USB 2.0 high speed controller 4-port hub controller) connected directly to our imx8mm.

We have a 4G modem (PCIe - it uses the usb part of it) connected directly to this hub, but the Linux kernel can only see it when at startup there’s a mouse (e.g.) connected to the external port of the hub.

In fact, if the mouse is not connected at startup, connecting it afterwards doesn’t works. Linux won’t recognise it at all, and there are no messages popping from dmesg when plugging and unplugging devices.

It is like having a device connected at startup will make the hub work.

Well, we’ve found a workaround via soft. We developed a script that de-authorizes/authorizes the hub during systemd’s initialization, if it doesn’t find our modem, that should be connected in most use cases.

This script basically does “echo 0 > /sys/bus/usb/devices/1-1/authorized”, and then echo 1 to reauthorize the USB.

What is weird is that this hub works perfectly with the imx8mp.

I am using Torizon Core with linux kernel 5.4.115-5.3.0 in both imx8mm and mp.

Any idea of what could be the difference between imx8mm and the mp that could be causing such issue?

Best Regards,
Adrian

Another thing I would like to add is that it seems that the process of USB enumeration is correctly done.

In the following 2 files, you can see the result of the lsusb -t in the two situation:

At start-up, when the the Qualcomm modem goes undetected:
usb_startup.txt (3.8 KB)

, and after the “echo 0 > /sys/bus/usb/devices/1-1/authorized"
usb_authorized.txt (13.6 KB)

Maybe my understanding of the process of USB enumeration is not accurate. Is there anything else I could do in order to determine if the process was correctly done?

Best Regards,
Adrian

Hello adrmateu,

I just wrote your Hardware guy to sent me the latest schematic so that we can exclude any issues there.
On the software side there is no issue know that far except that OTG is not yet supported

Best Regards,

Matthias Gohlke

Hello,

I’m working with a Verdin iMX8MM Q 2GB WB IT and BSP v5.4. and have the same issue

We made a custom carrier board based on the verdin evaluation board v1.1B but with a USB 2.0 Hub USB2514B (like on the colibri evalution v3.2) connected to the USB_2 interface of the SOM.

I’m facing the problem that a USB device (like a flash drive or a mouse) is only enumerated by Linux when it is already connected on boot up or when another device is already plugged in on another port of the hub.

I’m not facing this issue with the same Linux image on the verdin evaluation board or with an iMX7D on the colibri evaluation board.

I’m not facing this issue using the Easy Installer 5.4.0+build.4. I can load the installer to the SOM, see it starting and then plug in a flash drive and it is always recognized and enumerated by the SOM.

So my carrier board seems to work but somehow the BSP v5.4 kind of don’t like the combination iMX8MM + USB 2.0 host.

Best regards,
Markus

hello Mowlwurf,

i have to check what the issue was I think it was something with the suspend mode that had to be changed for this kind of hub.

Best Regards,

Matthias

Right, there is already an entry in the backlog:

Can you say, when this will be fixed?

Best regards,
Markus

Hello Mowlwurf,

our R&D came back with this.
In the following function imx_controller_suspend() in drivers/usb/chipidea/ci_hdrc_imx.c
needs to be modified that nothing else is done then returning 0

int imx_controller_suspend() {
return 0;
}

1 Like