(Apologies for the miles-long post.)
I am banging my head against of an issue I understand less and less about. I have designed and launched HALPI2, a CM5 based marine/industrial computer. USB3 port 0 is broken out to a Type A connector. No problems there whatsoever. USB3 port 1 is connected to an UPD720210 USB3 hub with 3 downstream Type A ports. The problem is, it only works with some CM5 (Lite) module units but not others! And I'm at loss about the reason.
So basically, I snap on a known-good unit. I boot up, lsusb shows four USB3 thumb drives connected at 5000M speed (one directly, three via the hub). The drives work perfectly, I can unplug and re-plug them and write and read large files. No problems whatsoever.
I power down the computer and switch to a different CM5 Lite unit. I boot up. Most of the time, the hub is only visible on USB2 but not on USB3. After multiple cold boots, the hub and the connected drive might show up. If they do the USB3 drive works perfectly (R/W works, no issues). But then, if I unplug the drive and plug it back again, it typically doesn't get enumerated. At this point, running `sudo lsusb -v` results in one of three different outcomes: 1) No change 2) Connected thumb drive gets enumerated, or 3) the hub disappears from the tree!
The behavior is identical between:
- kernel versions 6.6 and 6.12
- firmware versions CURRENT (Wed Nov 5 17:37:18 UTC 2025 (1762364238)) and LATEST (Thu May 8 14:13:17 UTC 2025 (1746713597))
- RaspiOS Bookworm and Trixie
- Multiple different carrier board (and two different revisions, with rerouted USB3 interfaces in between)
The only thing that makes a difference is the CM5 module. I went ahead and tested all modules I had at hand. Out of 17 modules, 10 worked and 7 didn't. If an individual unit works it does so consistently, on different carrier boards and between reboots. And if it doesn't, well, it doesn't.
I recorded the test results in this table:
Here are the schematics and design files of the HALPI2 carrier board: https://docs.hatlabs.fi/halpi2/appendic ... files.html
dmesg and lsusb entries exceed the maximum message length, so I'll post them in subsequent messages.
I am banging my head against of an issue I understand less and less about. I have designed and launched HALPI2, a CM5 based marine/industrial computer. USB3 port 0 is broken out to a Type A connector. No problems there whatsoever. USB3 port 1 is connected to an UPD720210 USB3 hub with 3 downstream Type A ports. The problem is, it only works with some CM5 (Lite) module units but not others! And I'm at loss about the reason.
So basically, I snap on a known-good unit. I boot up, lsusb shows four USB3 thumb drives connected at 5000M speed (one directly, three via the hub). The drives work perfectly, I can unplug and re-plug them and write and read large files. No problems whatsoever.
I power down the computer and switch to a different CM5 Lite unit. I boot up. Most of the time, the hub is only visible on USB2 but not on USB3. After multiple cold boots, the hub and the connected drive might show up. If they do the USB3 drive works perfectly (R/W works, no issues). But then, if I unplug the drive and plug it back again, it typically doesn't get enumerated. At this point, running `sudo lsusb -v` results in one of three different outcomes: 1) No change 2) Connected thumb drive gets enumerated, or 3) the hub disappears from the tree!
The behavior is identical between:
- kernel versions 6.6 and 6.12
- firmware versions CURRENT (Wed Nov 5 17:37:18 UTC 2025 (1762364238)) and LATEST (Thu May 8 14:13:17 UTC 2025 (1746713597))
- RaspiOS Bookworm and Trixie
- Multiple different carrier board (and two different revisions, with rerouted USB3 interfaces in between)
The only thing that makes a difference is the CM5 module. I went ahead and tested all modules I had at hand. Out of 17 modules, 10 worked and 7 didn't. If an individual unit works it does so consistently, on different carrier boards and between reboots. And if it doesn't, well, it doesn't.
I recorded the test results in this table:
Code:
Type, Mark1, Mark2, ResultCM116000, 4924, 2.9, FailCM108000, 0325, 1.12, FailCM108000, 4324, 4.5, OkCM108000, 0325, 3.7, FailCM108000, 0325, 3.12, OkCM108000, 0625, 2.2, FailCM108000, 4624, 6.12, OkCM108000, 0325, 5.7, FailCM108000, 0325, 6.3, OkCM108000, 0325, 3.1, OkCM108000, 0325, 5.5, FailCM108000, 0325, 3.8, OkCM108000, 0325, 3.11, OkCM108000, 0325, 1.9, OkCM108000, 0325, 3.9, FailCM108000, 0325, 3.4, OkCM108000, 0325, 3.1, Okdmesg and lsusb entries exceed the maximum message length, so I'll post them in subsequent messages.
Statistics: Posted by hatlabs — Wed Nov 12, 2025 6:06 pm — Replies 7 — Views 118