Hello Yonkers12, thanks for contacting us through the Intel Communities.
It is important to know that the USB technology was designed to support an important amount of devices in a chain configuration, but during the time the USB has been changing and adding new features that eventually limit the amount of devices that can be connected especially if they required power through USB.
Now days the amount of USB devices is defined by the motherboard design and most of them offer 4 USB 3.0 ports (2 fronts + 2 rears) and around 6 or 8 USB2.0 ports. (2 front + 4 or 6 rear)
My recommendation is to look at the motherboard documentation and confirm how many USB 2.0 and USB 3.0 are offered.
Here is the list and the information on Intel motherboards based on the 8th series chipset. ARK | Compare Intel® Products
My question is actually not about the number of physical ports, but the maximum number of connected devices supported by the controller, assuming that hubs provide both the ports and power. My understanding is that xHCI can theoretically support up to 255 USB devices, and EHCI up to 127 USB devices. Are the Intel USB controllers in the 8 Series chipset able to support this number of devices, or is there a limit imposed by the controller?
In technical terms, I'm asking how many xHCI device slots and active endpoints are supported on on the 8 Series USB controller.
I have been checking with the engineer department and this is their response.
For 8th series motherboard the maximum end points is 96.
Each USB device can support multiple end points and how many end points can support vary by device. Once it reaches to the max endpoints, you will get a pop-message; the limitation is not based on number of devices supported but the end points.
I also notice a USB devices count limit xhen using xHCI ports. Only about 35 devices (hubs, HID and USB Key) are detected in windows 8 and 8.1. I was testing in linux too and the limit is 32. May the intel driver in these OS is limitting the count ? However i tested with an Winbows 7, it seems that all devices are detected (until 127) but the driver is not installed as xHCI.
Beside VID/PID are
in Windows 7 : 8086/0F34
in Windows 8 : 8086/0F35
The problem I encounter is that a computer who have only xHCI (USB3) controler and a cascaded integrated USB2 hubs can't have more than about 14 or 15 USB Mass Storage endpoint... What a strange behaviour about USB3 controler management ! I didn't find any information about devices count limit at Intel's. I don't know if the limit is in software or hardware (?!). And all computers I have for now are Intel chipseted...
I'd like to pick up on the comment (6 months ago) from 'sylvia_intel' that the 8th series motherboard limits the 'maximum end points' to 96. By this I presume that the Maximum Device Slots in the xHCI controller has been set to 96.
I am trying to use Win8.1 with 4 composite USB devices that each declare 22 end points. Given that I also have a USB mouse + keyboard + USB-stick, when I connect the 4th composite device I get an error message of "Insufficient system resources exist to complete the API." Hence it is likely that I have exceeded the 96 limit.
Can somebody clarify if it is the BIOS that sets this limit or is it some h/w limitation hard-coded in the xHCI controller? My understanding was that the xHCI controller could support 255 Device Slots (end points).
If it is the BIOS, why limit it to 96? In today's connected world a limit of 96 seems way to small!
DH29, on 8 series motherboards, the limitation of end points is 96 as I mentioned it before.
Bear in mind that each USB device can support multiple end points and how many end points can support vary by device. Once it reaches to the max endpoints, you will get a pop-message, the limitation is not based on number of devices supported but the end points.
So for example, it’s possible that a customer connects only 15 USB devices and then he will get that pop up messages. Everything is going to depends on how many end points the USB devices uses.
Thanks for replying.
I completely understand what you are saying, and from my testing I fully agree with you. I have only 5 USB devices + 1 hub connected and I get the 'pop-up' message. I know that 4 of these USB devices each declare about 22 end-points, so 96 seems to be the limit I am hitting.
My post was really about understanding where the limit is - the Intel xHCI controller or the BIOS or the o/s?
Reading the Intel xHCI controller datasheet (Rev 1.1) it implies that it supports 255 device slots (end-points).
- Take a look at section 5.3.3 (page 287) - this specifies that MaxSlots can be in the range 1 to 255, where MaxSlots specifies the maximum number of Device Context Structures (end-points). This register is ReadOnly - so is it hard-coded by Intel and if so to what value??? Is this set to 96 ???
- Take a look at section 5.4.7 (page 308) - this specifies that MaxSlotsEn can be in the range 0 to MaxSlots. This is Read/Write, hence software can set it. Does the BIOS or the o/s set this???
- Take a look at section 6.2 (page 338 onwards) - this describes how the device contexts are stored in memory. Each device context can hold up to 32 entries (maximum defined by the USB spec). The device contexts must by held in memory - is this allocated by the BIOS or the o/s???
I still maintain that 96 is way to low considering that as part of the USB specification a USB device can declare up to 32 end-points. This means that theoretically the limit of 96 could be reached with only 3 USB devices connected !!!
I'm facing the same issue that on a computer with Intel 8-series chipset, if the Intel xHCI Host Controller is enabled in the BIOS, very limited amount of USB devices (regardless 1.0/1.1/2.0/3.0) can be connected. So for me the Intel xHCI Host Controller is not usable. I'm concerning the answer to the question in the last post by dh29 and whether there is a solution or W/A for this issue.
BTW, on the same computer, there is another xHCI Host Controller on the board which manages the two USB 3.0 interfaces on the back panel. With this xHCI controller, I can connect much more devices (with external USB 3.0 HUBs). So I think the 96 endpoints limit comes from Intel xHCI controller's firmware or driver.
Thank you in advance for any feedback.
I did eventually get confirmation from my board supplier and from Intel that the xHCI controller has a limit of 96 endpoints. This limit is in the xHCI controller itself and hence there is no workaround. It is not a driver limitation or a BIOS limitation or an operating system limitation.
I was evaluating a board with an Intel BayTrail processor that has only a single xHCI controller. Hence this limitation meant that I could not use the BayTrail processor in my project. I was pretty annoyed by this limitation as there was no published documentation that stated this limitation - in fact the Intel xHCI datasheet implies a limit of 255 endpoints, but this is not true. I spent a considerable amount of time investigating this issue, and was told on a number of occasions by my board supplier that there was no such limitation, until eventually they had confirmation from Intel that the limit was 96 endpoints.
It seems that this limitation is one of the reasons why on some of the more powerful processors Intel have introduced multiple USB controllers.
Also note that this limitation does not exist on eHCI controllers.
I am also having problems with my xHCI usb 3.0 ports.
I noticed my notebook has 2 blue usb 3.0 ports and 1 black usb 2.0 ports
I can connect up to 5 hubs on the 2.0 port and fill up the usb ports to the max.
The usb 3.0 ports will only let me connect up to 13 devices or it will pop up an error saying
You have exceeded number of Supported USB Devices
I have tried many different types of usb 3.0 devices but It will always say I exceeded the number of supported usb devices on the usb 3.0 ports. I am using powered usb 3.0 hubs
Wiki said the vendor can limit xHCI controller device limits.
Is this true? I would really like to connect more usb 3.0 devices.
It is not the number of devices that is significant, but rather the number of endpoints that those devices use.
The fact that you are experiencing the issue on USB 3.0 ports implies the use of a xHCI controller, as opposed to a USB 2.0 eHCI controller.
There is a lower limit on Intel's xHCI controller than the eHCI controller. For the xHCI controller it is 96 endpoints. It sounds like you are hitting this endpoint limit. You could use something like Microsoft's USB utility 'USBVIEW' to show you how many endpoints each USB device is using.
There is nothing you can do about it, apart from trying to distribute your devices across multiple USB controllers. This, of course, depends on whether your board has multiple USB controllers, and whether you can figure out which physical USB connectors are routed to which USB controller (again USBVIEW would be useful).