USB devices not detected in custom board with iMX8M PLUS

Dear Community,

I have a custom designed base board with the Verdin iMX8M Mini Quad 2GB WB IT V1.1B based. The image used is Toradex Linux Reference Minimal BSP 6.3.0. If instead of using the SOM iMX8M mini, I connect the SOM iMX8M plus the USB ports stop working. I turn on the system and then I connect a USB camera on the USB_2 port (X2) and I get the following error:

[ 37.812798] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[ 38.317603] kauditd_printk_skb: 3 callbacks suppressed
[ 38.317614] audit: type=1334 audit(1724827909.450:17): prog-id=0 op=UNLOAD
[ 38.329764] audit: type=1334 audit(1724827909.450:18): prog-id=0 op=UNLOAD
[ 43.383630] cpu cpu0: _set_opp_voltage: failed to set voltage (950000 950000 950000 mV): -110
[ 43.392214] cpufreq: __target_index: Failed to change cpu frequency: -110
[ 43.814778] cpu cpu0: _set_opp_voltage: failed to set voltage (950000 950000 950000 mV): -110
[ 43.823371] cpufreq: __target_index: Failed to change cpu frequency: -110
[ 47.941768] xhci-hcd xhci-hcd.1.auto: Abort failed to stop command ring: -110
[ 47.959018] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead
[ 47.966955] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up
[ 47.972491] imx-sdma 30e10000.dma-controller: All bds consumed,restart now.
[ 47.979585] xhci-hcd xhci-hcd.1.auto: Timeout while waiting for configure endpoint command
[ 47.988227] usb 1-1: can’t set config #1, error -62
[ 47.993417] usb 1-1: USB disconnect, device number 2

If I disconnect the camera and reconnect it, it doesn’t seem any message by console and no device is detected. If I run uhubctl I get the following result:

No compatible devices detected!
Run with -h to get usage info.

I repeat, if I plug a SOM iMX8M mini on the same board everything works correctly, so I suspect that it is a device tree configuration problem. I have compared the DTSI files for both devices and they are very different.

I’m using the USB_2 with a schematic very similar to that in figure 27, where the IC1A has been replaced by the AOZ1353DI-01 (it is the same one used in the Dhalia board). I’m using USB_1 in host mode (USB_1_ID=0) with the same schematic as USB_2.

I hope someone can help me.

Thanks,
Julián

Hello @jbruno,

Just to confirm, are you using the default device tree (for the Verdin Development Board) from the Toradex Reference Minimal Image 6.3.0?
Also, is this problem also present on the Toradex Reference Minimal Image 6.7.0?

Best Regards,
Bruno

Dear @bruno.tx ,
Our custom card is based on the Dahlia card. To eliminate possible errors in our image, I have flashed the module with the Toradex Linux Reference Minimal BSP 6.3.0 image and configured the system as follows:

fw_setenv board 'dahlia-imx8mp'
fw_setenv board_name 'dahlia-imx8mp'
fw_setenv fdt_board 'dahlia'
fw_setenv fdtfile 'imx8mp-verdin-wifi-dahlia.dtb'
reboot

After rebooting the system, I have connected the camera to the USB_2 port and the error is similar:

[ 31.052778] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[ 41.452784] xhci-hcd xhci-hcd.1.auto: Abort failed to stop command ring: -110
[ 41.470034] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead
[ 41.477972] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up
[ 41.483558] xhci-hcd xhci-hcd.1.auto: Timeout while waiting for configure endpoint command
[ 41.491888] usb 1-1: can’t set config #1, error -62
[ 41.497065] usb 1-1: USB disconnect, device number 2
[ 41.556854] kauditd_printk_skb: 3 callbacks suppressed
[ 41.556865] audit: type=1334 audit(1724917209.692:15): prog-id=0 op=UNLOAD
[ 41.568951] audit: type=1334 audit(1724917209.692:16): prog-id=0 op=UNLOAD

Best regards,
Julián

Dear @bruno.tx ,
I have repeated the test for BPS 6.7.0 and the error is the same.

I hope you can help me.

Thanks,
Julián

Hello @jbruno,

Thanks for the additional details.
I believe this is not a problem with the USB port, but the same problem from your other post regarding the DRP.

Can you confirm this by testing another device such as a flash drive, usb hub and/or input devices with your custom board paired with the Verdin iMX8MP?
This way we can rule out a hardware issue with your custom board.

I will reply on your other post to further debug that problem.

Best Regards,
Bruno

Dear @bruno.tx ,

I confirm that by using a hub the problem disappears. But of course in our product we do not have a hub on board.
We are working on creating a custom image with the new BSP, but it would be very helpful if we could provide a solution with the current BSP that is already production tested.
Best regards,
Julián

Hello @jbruno,

Sorry for the delay on this topic.

I will raise this internally so that we can evaluate backporting this fix to BSP 6.

Regardless, it is worth mentioning that between earlier testing and now the Toradex BSP 7 has been released, so we consider it to be production grade and usable in a production environment for most modules.
More details will be available in the release notes soon.

Best Regards,
Bruno

Hello @jbruno,

We recommend that you upgrade to BSP 7 to address this issue.

A lot has changed between BSP 6 and BSP 7, so if we were to work on backporting a fixed driver from BSP7, this would take a long time.

Please let me know if moving to BSP 7 is absolutely not an option for you.

Best Regards,
Bruno