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 155<br />

Alternate Firmware Devices vs.<br />

Modchips<br />

An alternate firmware device is a hardware module that<br />

provides a method for running user-specified firmware on<br />

<strong>the</strong> <strong>Xbox</strong> hardware. Alternate firmware devices are distinguished<br />

from <strong>the</strong> so-called “modchip” in that an alternate<br />

firmware device is furnished as a blank device and has no<br />

inherent ability to circumvent copyright control mechanisms.<br />

A blank LPC-interface ROM device, for example, is<br />

an alternate firmware device: you could burn a copy of<br />

<strong>the</strong> U.S. Bill of Rights on it if you wanted. Any user-installed<br />

FLASH ROM that comes blank is also an alternate firmware<br />

device. A modchip, on <strong>the</strong> o<strong>the</strong>r hand, colloquially implies<br />

a device that is crafted for playing game backups and<br />

o<strong>the</strong>rwise modifying or removing DRM (digital rights management)<br />

policy restrictions. Hence, <strong>the</strong> term modchip encompasses<br />

certain boot ROM devices that have been programmed<br />

with code that enables DRM policy modifications,<br />

as well as devices such as “patchers” that contain no<br />

ROM and operate by dynamically patching a few key<br />

<strong>Xbox</strong> firmware locations as <strong>the</strong> firmware is loaded for execution.<br />

appears near both <strong>the</strong> top- and <strong>the</strong> bottom-relative base addresses. Now,<br />

suppose that Microsoft decided to save on cost and shrink <strong>the</strong>ir 1 MB boot<br />

ROM down to a 256 kB boot ROM. The processor now sees 64 identical<br />

copies of this 256 kB boot ROM distributed over <strong>the</strong> 16 MB ROM address<br />

space, and all of <strong>the</strong> old code that uses bottom- and top-relative addressing<br />

still works. Significantly, <strong>the</strong> CPU in <strong>the</strong> <strong>Xbox</strong> is hard-wired to start<br />

executing code on power-up from an address located 16 bytes from <strong>the</strong> top<br />

of memory (its “reset vector”), while <strong>the</strong> hardware initialization routines<br />

wired into <strong>the</strong> <strong>Xbox</strong> chipsets use ROM locations located near <strong>the</strong> bottom<br />

of <strong>the</strong> 16 MB FLASH ROM space. As a result, <strong>the</strong> <strong>Xbox</strong> hardware requires<br />

an LPC ROM implementation that is ei<strong>the</strong>r 16 MB in size, or else aliases a<br />

smaller ROM’s contents throughout <strong>the</strong> FLASH ROM address space. (The<br />

SST 49LF020 is one of <strong>the</strong> few LPC FLASH ROMs that aliases <strong>the</strong> ROM’s<br />

contents over <strong>the</strong> whole address space. Arguably, this feature is actually a<br />

bug: By ignoring <strong>the</strong> upper address bits and aliasing <strong>the</strong> ROM’s contents<br />

over <strong>the</strong> whole address space, this chip occupies space that could be allocated<br />

to o<strong>the</strong>r functions. As a result, SST has released an updated “A-step” of <strong>the</strong><br />

part, called <strong>the</strong> 49LF020A, that does not alias <strong>the</strong> ROM’s contents over<br />

memory. Likewise, <strong>the</strong> A-step silicon will not work as an alternate firmware<br />

device for <strong>the</strong> <strong>Xbox</strong>.)<br />

The O<strong>the</strong>r 64 MB of SDRAM<br />

An astute observer will note that <strong>the</strong>re are two missing chips on <strong>the</strong> top<br />

side of <strong>the</strong> <strong>Xbox</strong> mo<strong>the</strong>rboard, and that <strong>the</strong>se missing chip spots look

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

Saved successfully!

Ooh no, something went wrong!