Embedded Intel® Core™ Processors
Communicate Intel® Core™ Hardware, Software, Firmware, Graphics Concerns
1204 Discussions

Hardware limitations on USB endpoints (XHCI)

DCox4
Beginner
20,044 Views

Hi all.

I would like to know how to find information about the number of endpoints that an intel device can support.

We currently use the C1107U and the J1900I-C

We prefer mini pc type setups for portability of our products.

[edit] I have also tested this on my Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz and finding the same issue

We have noticed that windows 8 is able to support at least 18 connected devices, plus several hubs. We have noticed that Debian systems, however, have issues at about 12 devices and we see that the XHCI driver is reaching its endpoint limitation. We guess that this limitation is 64 endpoints (since hubs can consume 4 or 5 endpoints each)

I have spoken to the Linux kernal developers and they state that "Intel Ivy Bridge system xhci host, the 64 endpoint is a hardware limitation."

I have been able to disable the XHCI driver and force a rollback to the EHCI driver. This allows me to attach many more devices, but I am concerned that this is not a "safe" trick.

This also makes us concerned that the windows driver is may be cheating as well.

Our devices are all USB1.1

We run them on USB3 external powered industrial hubs.

Our devices are custom, so we can change the USB descriptors as necessary.

Currently we ask for (per device), 2 end points, less than 10mA and less than 12mb/sec.

so my Questions:

1. Is it "ok" to run EHCI, given the limitations observed in XHCI? Does EHCI have more endpoints? and why?

2. What options do we have to get more devices connected? We plan to further scale up our operations. For example "i5, i7" etc.

 

3. What do we need to look at in the chip-specifications in order to be able to know what the limitations actually are?

4. A lot of quick response to my questions regarding this matter have been "USB supports 127 connected devices" and "perhaps you are hitting a current limitation". Is this really true, given the above information?

 

0 Kudos
23 Replies
JLube
Beginner
1,161 Views

The system mentioned is an Asus MB: P7P55D-ELX with I5 core 650 @3.2 GHz running Win 10 Pro 32 bit OS on 64 bit system. The USB 3.0 is a Renesas VID 1033 PID 0194 host controller with 0.96 Microsoft driver.

0 Kudos
Adolfo_S_Intel
Moderator
1,161 Views

Hello jlubeck

According to the data that you have provided you are using a Renesas µPD720200.

One suggestion that you could try is using a USB2.0 driver for a different Renesas controller to check if they are compatible with this product, or check with Renesas to see if they have an USB 2.0 driver for this controller.

This advice is mainly for Windows 7, I think from Windows 8.1 onwards, Windows uses xHCI controller by defualt even if no driver is installed.

Best Regards,

Adolfo Sanchez.

0 Kudos
jkindem
Beginner
455 Views

Did you ever reach a solution to this?

Let me give you some information I know from experience connecting 125 devices to a usb2.0 host controller.

1) it works, no memory limitation, I think that is bad information.

2) As time went on and computer usb system evolved, the 3.0 hubs were designed and the designers (at least of the first chipsets) made the decision to only enable fixed number of devices per 3.0 hub. The reason I was told by one of the chipset folks was that the spec says that usb supports UP TO 127 devices.... they took the liberty of supporting less because of this statement. Fundamentally the reason though is because for 3.0 speed, enumeration and control needed to be done in hardware and not software (like 2.0), so it was a trade off between expensive harware support for 127 devices where most will never be used, or taking the liberty with the "UP TOO" statement and opt for lower cost hardware. I suspect, like us, you expected 127 device support.

3) One further development that caused us grief, is that the USB tree on all Intel motherboards now includes a  "rate matching hub" inserted at the root hub on the 2.0 controller ports. This basically dummies down the bus, in what I can only guess was to simplify issues they may have been having with MTT hubs etc. Again, this wouldn't effect most folks, but we had a hub tree that was 5 deep, so by making this choice on the chipset side, Intel basically made us redesign our product because we always had 1 too many hubs in the chain.  Oddly, the USB spec will work with more hub depth, provided you don't have 5 meter long cables at every level, but Microsft chose too hard enforce the depth.

4) Present day: you can bypass like you did. Not sure if there are 3.0 hubs that actually support 127 devices. My guess is no, since it costs more to do in hardware.... But I'm still looking... Curious if you happen to find one.

0 Kudos
Reply