We are going to start a new blog series called “Known Hardware Issues” where we will try to inform the industry about issues in USB hardware (USB controllers, chipset, firmware, device) that leads to operating system crash. This blog talks about two such issues:
1. BUGCODE_USB_DRIVER (0xFE) crash on systems that has certain AMD EHCI controllers
2. DRIVER_POWER_STATE_FAILURE (0x9F) crash on HP ProLiant DL385 G2 server systems
First issue is described in KB article 982091 has a registry fix to mitigate it. This registry fix applied at a per controller instance level prevents USBEHCI.SYS from disabling the periodic schedule when there are no periodic transfers pending. One consenquece of keeping the periodic schedule enabled even when there is no bus activity results in more power consumption and reduced battery life.
Second issue is due to a firmware bug in HP ProLiant DL385 G2 server systems where the UHCI Frame Number rolls over at 0x3FF instead of 0x7FF. The UHCI Frame Number register (word register at offset 6 from the UHCI I/O base address) is supposed to be an 11-bit counter and should count from 0x0000 and roll over at 0x07FF back to 0x0000. HP has released a firmware update to resolve this issue. The sysinfo debugger command output below provides more detail of the system where this issue is known to occur.
0: kd> !sysinfo machineid
Machine ID Information [From Smbios 2.3, DMIVersion 35, Size=1609]
BiosVendor = HP
BiosVersion = A09
BiosReleaseDate = 01/08/2007
SystemManufacturer = HP
SystemProductName = ProLiant DL385 G2
Please note that 0x9F and 0xFE crashes happen due to various software and hardware issues. The ones described above are some of the ones we have root caused it to these specific HW problems.