Max USB slots in Atom Z8000 series

Options
Javier
Javier New Member Posts: 2
Hi, we're currently using a raspberry pi to connect around 40 USB devices and it's working, but the transfer speed rates are very slow so we started to look for a better replacement with a similar footprint to the raspberry.

The first UP Board seemed to fit perfectly our requirements and as expected the transfer speeds are definitely better, but sadly the board can't detect more than 32 USB devices. We started to investigate the reason behind it and we found out that the Atom Z8000 series' chipset has a limit of 32 USB devices on the xHCI USB controller. In the page 2080 of https://www.intel.com/content/www/us/en/processors/atom/atom-z8000-datasheet-vol-2.html , the "Number of Device Slots" defaults to 32, and it's a read/write field but as they explain there the register is managed by the BIOS.

Do you know if there's any way to increase this limit somehow, or is this a hardware limitation and there's nothing else we can do?

Best Answers

Answers

  • Michael Miller
    Michael Miller New Member Posts: 95
    Options
    From what I can tell, the xHCI controller has a limit of 96 devices, not sure if this implementation is different or what. You might try a mPCIe USB3.0 controller card?
  • Javier
    Javier New Member Posts: 2
    Options
    Tbird Man wrote:
    From what I can tell, the xHCI controller has a limit of 96 devices, not sure if this implementation is different or what. You might try a mPCIe USB3.0 controller card?

    Theoretically a xHCI controller can support up to 255 USB devices, but a manufacturer can set a limit to the number of devices, which is stored in HCSPARAMS1, and according to the PDF I linked in my original post the register can be modified by the BIOS (R/W field).

    When that limit is reached, a message is shown in dmesg (coming from this patch) reporting the max supported devices is 32. I also added some debug prints to the xHCI driver to confirm that behavior (the device number 33 is assigned a slot_id 0, which is considered an error).

    I've also tried to disable the xHCI mode in the BIOS, hoping it works in EHCI mode (I don't mind losing USB3.0 capabilities), but then none of the USB work, not even F7 to enter the BIOS launch screen.

    An external USB controller could help, but this is for an embedded system where space matters, so sadly we can't afford that.
  • Robert Koontz
    Robert Koontz New Member Posts: 2
    Options
    I can confirm what you found here with the xHCI driver having a limit of 32 slots. I also tried to disable the xHCI controller in the setup utility as I have used this method with an Advantech single board computer in order to free up 64 slots for USB devices. I had the same results you mentioned that after disabling the xHCI controller all the USB ports are disabled. I recovered the board by pulling the battery off and dumping the system settings.

    I am wondering if this is because there is no standalone EHCI controller on the UP board? I can't find anything in the specifications to confirm one way or the other. Does anybody know? This is a show stopper for my project. I would consider purchasing and UP Squared board if I knew that it wouldn't have this problem.