LPC Debug Port

From xboxdevwiki
Jump to: navigation, search
Pin Layout
Name Pin Pin Name
SERIRQ (v1.0) 16 15 3.3V
SDA 14 13 SCL
GND 12 11 LAD0
LAD1 10 9 3.3V
LAD2 8 7 LAD3
5V 6 5 LRESET#
PWR (v1.6) 4 3 LFRAME#
GND 2 1 LCLK

The LPC Debug Port is an unpopulated 2x8 2.54mm (0.1") footprint on the Xbox motherboard that provides access to the system's Low Pin Count Bus, as well as the SMBus. Throughout the Xbox's lifetime, Microsoft modified the LPC port in an attempt to prevent modding and, in some cases, it must be "rebuilt" to restore the port's full functionality. Rebuilding the LPC debug port involves soldering wires between it and very small vias on the motherboard.

The LPC bus is controlled by the MCPX southbridge, which conforms to the Intel Low Pin Count Specification 1.0.

Pins

  • 3.3V (15 & 9) - Provides 3.3V while the Xbox is powered on. On 1.6 hardware, pin 9 is disconnected. Reconnect to pin 15 to restore the supply voltage.
  • SDA (14) - SMBus data and address signal.
  • SCL (13) - SMBus clock signal.
  • GND (12 & 2) - Ground.
  • LAD[3:0] (11, 10, 8, 7) - LPC address and data signals.
  • 5V (6) - Provides 5V while the Xbox is powered on or v1.6 always on when AC plugged in.
  • LRESET# (5) - LPC reset signal; same as PCIRST#.
  • PWR (4) - On pre-1.6 hardware, this pin does not physically exist. On 1.6 hardware, this pin is connected to the power button. Shorting it to ground will turn the Xbox on and off.
  • LFRAME# (3) - LPC start-of-cycle signal. On 1.3-1.5 hardware, this pin is disconnected. See LFRAME# reconnect for a possible reconnection.
  • LCLK (1) - 33MHz LPC clock signal; same as PCICLK.

The debug port lacks the optional LDRQ#, SERIRQ, CLKRUN#, PME#, LPCPD#, and LSMI# signals. This means peripherals connected to the debug port cannot utilize interrupt, DMA, bus mastering, or power management features.

LFRAME# reconnect

It is possible to reconnect this pin on 1.3-1.5 hardware by tapping the MCPX soldermask and soldering a jumper wire to the disconnected pin on the LPC port.

Result should look similar to this in the end: [1] (Image provided by dreimer)

In the end, we can gain kernel debug output from Super I/O serial again: [2] (Image provided by dreimer)

This reconnection was tested on 1.3 hardware, and should work on 1.4 and 1.5 revisions, as the MCPX is the same.

References

  • LFRAME-for-v1_3-and-up.pdf An old manual from Xbox-Scene that explains how to reconnect LFRAME# (3) for a Cheapmod. This we don't care about, but is what we want for kernel debugging via Super I/O. Thanks to dreimer for finding and testing this documentation.