13.03.2013 Views

Hacking the Xbox

Hacking the Xbox

Hacking the Xbox

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 10 - More Hardware Projects 153<br />

mo<strong>the</strong>rboard to create ROM devices that install without any soldering.<br />

These devices use a set of spring-loaded “pogo-pins,” similar to those used<br />

during production for <strong>Xbox</strong> testing, to contact <strong>the</strong> LPC interface with just a<br />

pressure-fit. (The pinout of <strong>the</strong> LPC bus as implemented on <strong>the</strong> <strong>Xbox</strong> can<br />

be found in Appendix F, “<strong>Xbox</strong> Hardware Reference.”)<br />

Using <strong>the</strong> LPC Interface<br />

The fact that <strong>the</strong> LPC interface is an industry standard is quite convenient for<br />

<strong>Xbox</strong> hardware hackers. First, <strong>the</strong>re is a plethora of LPC-compatible<br />

interface devices, ranging from Super-I/O chips to firmware ROMs with<br />

built-in LPC interfaces. Second, <strong>the</strong> wide acceptance of <strong>the</strong> LPC interface as a<br />

diagnostic and convenience bus for generic PCs helps mitigate <strong>the</strong> legal risk<br />

of using <strong>the</strong> LPC interface and selling LPC interface devices. A firmware<br />

ROM for <strong>the</strong> LPC interface can be sold without any <strong>Xbox</strong>-specific contents<br />

since end-users can easily reprogram <strong>the</strong>ir LPC bus devices using a simple,<br />

cheap adapter for <strong>the</strong>ir PC. A fur<strong>the</strong>r help to <strong>the</strong> legality of LPC firmware<br />

devices is that <strong>the</strong> <strong>Xbox</strong>’s LPC connector pinout is nearly identical to <strong>the</strong> one<br />

recommended by Intel for generic PCs. As a result, an LPC firmware device<br />

sold for <strong>the</strong> <strong>Xbox</strong> is very similar to an LPC firmware device sold for <strong>the</strong><br />

standard PC.<br />

One of <strong>the</strong> first LPC boot ROM devices was developed by Andy Green.<br />

The project is called “Cheapmod” and it is an SST 49LF020 device (256<br />

kByte FLASH ROM with an integrated LPC interface) in a socket wired to an<br />

LPC-compatible header. According to Andy’s Cheapmod webpage,<br />

“http://warmcat.com/milksop/cheapmod.html,” “If you can get<br />

ahold of <strong>the</strong> $2.50 SST 49LF020, you can build an alternative BIOS for $4.”<br />

This device can be programmed using his “CheapLPC” programmer<br />

(http://warmcat.com/milksop/cheapLPC.html), a delightfully<br />

simple PC parallel-port based device that can (slowly) talk to and reprogram<br />

an LPC device. Many commercially available alternate firmware devices have<br />

been based off of or inspired by his design, including <strong>the</strong> Xodus/Matrix<br />

design. The Xodus/Matrix is a particularly interesting variant of Andy’s<br />

original design, as it was <strong>the</strong> first <strong>Xbox</strong> alternate firmware device to implement<br />

an entirely solderless installation procedure. This opened up <strong>the</strong> world<br />

of <strong>Xbox</strong> hacking to software-oriented hackers who were not inclined to<br />

solder wires into <strong>the</strong>ir <strong>Xbox</strong>es. (A photograph of <strong>the</strong> Xodus/Matrix can be<br />

seen in Figure 10-1.) The Xodus/Matrix device comes without any code<br />

programmed in it; <strong>the</strong> user must provide <strong>the</strong> alternate firmware image.<br />

There are some important functional considerations when selecting a<br />

FLASH ROM chip with an LPC interface for use with <strong>the</strong> <strong>Xbox</strong>. The most<br />

significant is that <strong>the</strong> native <strong>Xbox</strong> architecture allocates a 16 MB area for <strong>the</strong><br />

boot ROM. If <strong>the</strong> physical boot ROM is smaller than 16 MB in size, <strong>the</strong><br />

boot ROM contents are aliased to fill up <strong>the</strong> entire 16 MB space. This gives<br />

<strong>Xbox</strong> designers more flexibility in choosing <strong>the</strong> size of <strong>the</strong> ROM chip<br />

without causing problems with routines that uses both bottom- and toprelative<br />

addressing.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!