The developer's resource for computer interfacing, especially USB, serial (COM) ports, mass storage, and embedded networking. (Formerly Lvr.com)

Home > USB Central > Using Eclipse to Cross-compile Applications for Embedded Systems

Debugging Non-functioning USB Ports

Jan Axelson

Update: after upgrading to Windows 8.1, all ports are functioning.

My new Windows 8, 64-bit Dell Precision T1650 PC came with ten USB ports. Two of the ports don't work.

At any one time, I have a dozen or more USB devices attached. Still, I could manage with eight ports and some hubs.

On the other hand, I do have some experience with USB. Plus I'm curious as to why the two ports don't work. So I've decided to dig into the problem and try to fix it or at least understand what's going on.

If you have comments, suggestions, etc., please post to my PORTS forum.

Here is the story.

Ten Ports, Two Don't Work

The system is a Dell Precision T1650 PC. The CPU is a Xeon E3 1270 V2. The USB ports are on an Intel C216 chipset. One of the USB 2.0 host controllers and its two ports are non-functioning.

The PC has ten USB ports in all. The back panel has a pair of USB 2.0 ports and a row with two USB 3.0 ports and two USB 2.0 ports. The front panel has two USB 3.0 ports and two USB 2.0 ports.

My first clue that something was wrong was that on the back panel, the two USB 2.0 ports in the row of four weren’t functioning. The OS detected nothing attached to the ports. On device attachment, a protocol analyzer showed only a reset.

The BIOS Settings are Correct

I checked the BIOS, which has options to enable and disable the two non-functioning ports as well as the other ports. All ports were enabled. I tried disabling the front-panel ports to see if that would bring the back-panel ports to life: nope.

Device Manager Shows a Problem

Device Manager shows one Intel USB 3.0 eXtensible Host Controller and two Standard Enhanced PCI to USB Host Controllers. The USB 3.0 controller and one of the Standard Enhanced PCI to USB Host Controllers are "working properly." The other Standard Enhanced PCI to USB Host Controller, at location:

         PCI bus 0, device 29, function 0

has an “!” with the error:

         This device cannot start. (Code 10) Insufficient 
system resources exist to complete the API.
         Windows did not start a related device driver. 
To learn more, click the Driver tab and then click Driver Details.

Driver > Driver Details shows the same drivers as the second, functioning Standard Enhanced PCI to USB Host Controller.

On clicking Update driver, Windows says the driver software is up to date.

Roll Back Driver is grayed out.

Clicking Uninstall and rebooting results in no change.

Device Manager > Events shows:

         Device configured (usbport.inf)
         Device not started (usbehci)
       Device 
PCI\VEN_8086&DEV_1E26&SUBSYS_053A1028&REV_04\3&11583659&0&E8
 was configured.
Driver Name: usbport.inf
         Class GUID: {36FC9E60-C465-11CF-8056-444553540000}
         Driver Date: 06/21/2006
         Driver Version: 6.2.9200.16461
         Driver Provider: Microsoft
         Driver Section: EHCI.Dev.NT
         Driver Rank: 0xFF2005
         Matching Device ID: PCI\CC_0C0320
         Outranked Drivers: 
         Device Updated: false

Device Manager > Resources says:

         This device isn’t using any resources because it has a problem.

Here is the setupapi.dev.log file on rebooting:

 >>>  [Device Install (DiShowUpdateDevice) - 
         PCI\VEN_8086&DEV_1E26&SUBSYS_053A1028&REV_04\3&11583659&0&E8]
   >>>  Section start 2012/12/10 11:11:01.765
         cmd: "C:\Windows\system32\mmc.exe" "C:\Windows\System32\devmgmt.msc"
         dvi: {DIF_UPDATEDRIVER_UI} 11:11:01.780
         dvi:      No class installer for 'Standard Enhanced PCI to USB Host 
         Controller'
         dvi:      Default installer: Enter 11:11:01.780
         dvi:      Default installer: Exit
         dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 11:11:01.780
         ndv: {Update Driver Software Wizard for 
         PCI\VEN_8086&DEV_1E26&SUBSYS_053A1028&REV_04\3&11583659&0&E8}
         ndv: {Update Driver Software Wizard exit(00000000)}
   <<<  Section end 2012/12/10 11:11:12.192
         <<<  [Exit status: SUCCESS]
 >>>  [Device Install (DiShowUpdateDevice) - 
         PCI\VEN_8086&DEV_1E26&SUBSYS_053A1028&REV_04\3&11583659&0&E8]
   >>>  Section start 2012/12/10 11:23:20.140
         cmd: "C:\Windows\system32\mmc.exe" "C:\Windows\System32\devmgmt.msc"
         dvi: {DIF_UPDATEDRIVER_UI} 11:23:20.140
         dvi:      No class installer for 'Standard Enhanced PCI to USB Host 
         Controller'
         dvi:      Default installer: Enter 11:23:20.140
         dvi:      Default installer: Exit
         dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 11:23:20.140
         ndv: {Update Driver Software Wizard for 
         PCI\VEN_8086&DEV_1E26&SUBSYS_053A1028&REV_04\3&11583659&0&E8}
         ndv: {Update Driver Software Wizard exit(000004c7)}
   <<<  Section end 2012/12/10 11:23:27.510
         <<<  [Exit status: FAILURE(0x000004c7)]

Googling about on the error message Insufficient system resources exist to complete the API didn't bring up any USB-related problems or solutions.

Dell Tries to Help

I ran Dell’s diagnostics. Everything passed. Dell sent out a tech to swap out the motherboard. (All of the ports are on the motherboard.) The problem remained.

I updated the ChipSet driver from Dell’s website. The problem remained.

Dell thought it must be OS and advised me to contact Microsoft.

Safe Mode Works

Meanwhile, I decided to try booting into Safe mode. Lo and behold, the ports were functional! An attached mouse and flash drive both functioned.

A protocol analyzer showed that the flash drive completed the high-speed handshake successfully and that the device was communicating at high speed.

In Safe Mode, Device Manager > Resources had:

         F7F37000 - F7F373FF         
         IRQ 17 (23)

and:

The device is working properly.

No conflicts

Device Manager showed this message for both USB 2.0 host controllers, probably due to operating in Safe mode:

Did not start a related driver.

But for the problem host controller only, the Events tab showed:

Device not started usbehci
The device had a problem starting.

Yet the host controller and ports seemed fully functional.

Expansion Card Ports Don't Work

I wondered whether USB ports on a PCI expansion card would work. So I pulled a card with USB 2.0 and Firewire ports from an older PC and installed the card in the new PC. It showed the same error for the USB ports. No errors for the Firewire ports.

Disabling Startup Options and Services Doesn't Help

Via msconfig, I tried rebooting with all non-Microsoft Services disabled and with all Startup items disabled, no change.

Microsoft Is No Help

I contacted support.microsoft.com as suggested by Dell. Microsoft said they would charge to try to help and that it looked like a hardware problem anyway.

Another Clue

As an experiment, I disabled the USB 3.0 host controller and rebooted. No change. Next I re-enabled the USB 3.0 host controller, disabled the functioning USB 2.0 host controller and rebooted. The previously non-functioning USB 2.0 controller began working. I tested with a mouse and a flash drive, which I verified enumerated at high speed. Mysteriously, Device Manager still showed the message:

Windows did not start a related device driver.    To learn 
more, click the Driver tab and then click Driver Details.

After re-enabling the disabled host controller, both host controllers were functional. But on rebooting, the problem host controller again stopped working.

This experiment provides further evidence that the hardware is functional. But for some reason two USB 2.0 host controllers can't be active at once.

Back to Dell

Dell transferred the problem to a "Resolution Specialist," who suggested reinstalling Windows.

Everything Is Fine under Linux

Instead, I decided to give Linux a try. After a few failed attempts with Knoppix, I discovered that you can run Ubuntu (and other distros) from a Live CD. So I booted to Ubuntu, and all of the ports worked.

Digging Around for Clues

The C216 chipset has 2 EHCI controllers, one with an 8-port USB 2.0 rate-matching hub and one with a 6-port USB 2.0 rate-matching hub. On my system, four of the USB 2.0 hardware ports belong to the first EHCI controller and the remaining two USB 2.0 ports belong to the second ECHI controller. The other four ports are xhci (USB 3.0).

The chipset's datasheet says: If for some reason, the particular system platform does not want to support any one of the Device Functions, with the exception of D30:F0, can individually be disabled.

And under ECHI: BIOS performs a number of platform customization steps after the core well has powered up. Contact your Intel Field Representative for additional PCH BIOS information.

Since I can enable both ECHI controllers at the same time from within Device Manager, perhaps the BIOS initialization is disabling the second ECHI controller on bootup, even though the BIOS is set to enable all USB ports and even though booting to Linux doesn't show the problem.

Maybe Dell will be able to do something with this new information...

Windows 8.1 Fixes the Problem

I let this problem rest for a while. When Windows 8.1 became available, I upgraded, and all ports are now functioning.