USB

From xboxdevwiki
Revision as of 05:35, 26 July 2022 by Ryzee119 (talk | contribs) (Move Xboxcam info to its own page)
Jump to: navigation, search

USB Host Controllers

Xbox hardware contains two OHCI USB Host controllers within the MCPX southbridge. The two controllers are designated USB0 and USB1. On retail consoles USB0 is connected to the 4 front panel game controller ports. Although USB1 is available, it is not enabled in retail titles and it is not mapped out of the MCPX, so it is difficult the use in homebrew.

The USB controllers are configured and accessed over MMIO. See https://xboxdevwiki.net/Memory. The memory structure follows the standard OHCI specification (OHCI Spec Table 7-1).

OHCI supports USB devices up to USB1.1 12Mbit/s. The OHCI hardware also supports Low Speed USB (1.5MBit/s) however it appears that the retail XDK host stack does support Low Speed devices.

Xbox hardware has the following specific OHCI register values set by the system firmware that may differ from the standard:

FIXME

USB0:
HcRevision:
HcFmInterval:
HcRhDescriptorA:
    NumberDownstreamPorts:
    NoPowerSwitching:
    PowerSwitchingMode:
    DeviceType:
    OverCurrentProtectionMode:
    NoOverCurrentProtection:
    PowerOnToPowerGoodTime:
HcRhDescriptorB:
    DeviceRemovable:
    PortPowerControlMask:
USB1:
HcRevision:
HcFmInterval:
HcRhDescriptorA:
    NumberDownstreamPorts:
    NoPowerSwitching:
    PowerSwitchingMode:
    DeviceType:
    OverCurrentProtectionMode:
    NoOverCurrentProtection:
    PowerOnToPowerGoodTime:
HcRhDescriptorB:
    DeviceRemovable:
    PortPowerControlMask: