Difference between revisions of "USB"
(Add RhPortDescriptor info) |
(Add HcRhDescriptorA for USB1) |
||
Line 12: | Line 12: | ||
<pre> | <pre> | ||
USB0: | USB0: | ||
− | HcRevision: | + | HcRevision: 0x10 |
− | |||
HcRhDescriptorA: 0x01001204 | HcRhDescriptorA: 0x01001204 | ||
NumberDownstreamPorts: 4 (Four downstream ports) | NumberDownstreamPorts: 4 (Four downstream ports) | ||
Line 28: | Line 27: | ||
<pre> | <pre> | ||
USB1: | USB1: | ||
− | HcRevision: | + | HcRevision: 0x10 |
− | + | HcRhDescriptorA: 0x01000202 | |
− | HcRhDescriptorA: | + | NumberDownstreamPorts: 2 (Two downstream ports) |
− | NumberDownstreamPorts: | + | PowerSwitchingMode: 0 (All ports are powered at the same time) |
− | PowerSwitchingMode: | + | NoPowerSwitching: 1 (Ports are always powered on when the HC is powered on) |
− | NoPowerSwitching: | + | DeviceType: 0 (Not a compound device - always 0 for Roothubs) |
− | DeviceType: | + | OverCurrentProtectionMode: 0 (Over-current status is reported collectively for all downstream ports) |
− | OverCurrentProtectionMode: | + | NoOverCurrentProtection: 0 (Over-current status is reported collectively for all downstream ports) |
− | NoOverCurrentProtection: | + | PowerOnToPowerGoodTime: 1 (2ms Power on to good time) |
− | PowerOnToPowerGoodTime: | ||
HcRhDescriptorB: | HcRhDescriptorB: | ||
− | DeviceRemovable: | + | DeviceRemovable: 0 (Device not removable) |
− | PortPowerControlMask: | + | PortPowerControlMask: 0 (Power Control Mask not set) |
</pre> | </pre> |
Revision as of 10:38, 26 July 2022
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: 0x10 HcRhDescriptorA: 0x01001204 NumberDownstreamPorts: 4 (Four downstream ports) PowerSwitchingMode: 0 (All ports are powered at the same time) NoPowerSwitching: 1 (Ports are always powered on when the HC is powered on) DeviceType: 0 (Not a compound device - always 0 for Roothubs) OverCurrentProtectionMode: 0 (Over-current status is reported collectively for all downstream ports) NoOverCurrentProtection: 1 (No overcurrent protection supported) PowerOnToPowerGoodTime: 1 (2ms Power on to good time) HcRhDescriptorB: DeviceRemovable: 0 (Device not removable) PortPowerControlMask: 0 (Power Control Mask not set)
USB1: HcRevision: 0x10 HcRhDescriptorA: 0x01000202 NumberDownstreamPorts: 2 (Two downstream ports) PowerSwitchingMode: 0 (All ports are powered at the same time) NoPowerSwitching: 1 (Ports are always powered on when the HC is powered on) DeviceType: 0 (Not a compound device - always 0 for Roothubs) OverCurrentProtectionMode: 0 (Over-current status is reported collectively for all downstream ports) NoOverCurrentProtection: 0 (Over-current status is reported collectively for all downstream ports) PowerOnToPowerGoodTime: 1 (2ms Power on to good time) HcRhDescriptorB: DeviceRemovable: 0 (Device not removable) PortPowerControlMask: 0 (Power Control Mask not set)