Opened 2 years ago
Last modified 2 years ago
#20696 new defect
Port Change Detect (PCD) bit not set on port change interrupt (xHCI)
Reported by: | Lewis Rosenthal | Owned by: | |
---|---|---|---|
Component: | USB | Version: | VirtualBox 6.1.30 |
Keywords: | Cc: | ||
Guest type: | all | Host type: | Mac OS X |
Description
The XHCI emulation fails to set the Port Change Detect (PCD) bit (bit 4) in the USB Status Register on a port change interrupt as described in the "eXtensible Host Controller Interface for Universal Serial Bus (xHCI) Requirements Specification May 2019 Revision 1.2" section 5.4.2.
When real hardware generates a port change interrupt the Port Change Detect (PCD) bit is always set. In the VirtualBox VM, when a port change interrupt occurs, the USB Status Register only contains the Event Interrupt (EINT) bit set, and not the Port Change Detect (PCD) bit. This does not match the way real hardware works.
This (obviously) affects all guest OSes, and is not limited to specific ones.
I have not tested this on other host platforms.
This (obviously) doesn't affect the xHCI driver in major OSes, otherwise we (or someone else) would've noticed some misbehavior years ago.