<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.theiphonewiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kleemajo</id>
	<title>The iPhone Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.theiphonewiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kleemajo"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Kleemajo"/>
	<updated>2026-05-07T18:45:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=14319</id>
		<title>Talk:Bootrom Dumper Utility</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=14319"/>
		<updated>2010-12-26T01:02:41Z</updated>

		<summary type="html">&lt;p&gt;Kleemajo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If anyone gets it working for iPod touch 2G let me know. I am trying to work on it, but not much spare time --[[User:JacobVengeance|JakeAnthraX]] 07:27, 23 December 2010 (UTC)&lt;br /&gt;
:[https://github.com/liamchat/Bootrom-Dumper/tree/master/stake4uce my fork] should work --[[User:Liamchat|liamchat]] 16:27, 24 December 2010 (UTC)&lt;br /&gt;
:You can also use the current iPod touch 2G openiBoot [https://github.com/kleemajo/openiBoot link]. The bootrom is at 0x20000000 on the 2g touch --[[User:Kleemajo|Kleemajo]] 01:02, 26 December 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Kleemajo</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IBSS_commands&amp;diff=12638</id>
		<title>IBSS commands</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IBSS_commands&amp;diff=12638"/>
		<updated>2010-11-09T07:18:51Z</updated>

		<summary type="html">&lt;p&gt;Kleemajo: I'm pretty sure that iBoot does not run bash...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iBSS commands}}&lt;br /&gt;
You can access this command list by typing &amp;quot;help&amp;quot; after [[iBSS]] is uploaded.&lt;br /&gt;
&lt;br /&gt;
        bootx            boot a kernel cache at specified address&lt;br /&gt;
        tsys             boot into tsys (if present)&lt;br /&gt;
        diags            boot into diagnostics (if present)&lt;br /&gt;
        setpicture       set the image on the display&lt;br /&gt;
        bgcolor          set the display background color&lt;br /&gt;
        poweroff         power off the device&lt;br /&gt;
        halt             halt the system (good for JTAG)&lt;br /&gt;
        reboot           reboot the device&lt;br /&gt;
        run              use contents of enironment var as script&lt;br /&gt;
        script           run script at specific address&lt;br /&gt;
        go               jump directly to address&lt;br /&gt;
        mws              memory write - string&lt;br /&gt;
        mwb              memory write - 8bit&lt;br /&gt;
        mwh              memory write - 16bit&lt;br /&gt;
        mw               memory write - 32bit&lt;br /&gt;
        mdb              memory display - 8bit&lt;br /&gt;
        mdh              memory display - 16bit&lt;br /&gt;
        md               memory display - 32bit&lt;br /&gt;
        ramdisk          create a radisk from the specified address&lt;br /&gt;
        powernvram       Access Power NVRAM.&lt;br /&gt;
        charge           Manage the charger chip.&lt;br /&gt;
        devicetree       create a device tree from the specified address&lt;br /&gt;
        saveenv          save current environment to flash&lt;br /&gt;
        syscfg           flash SysCfg inspection&lt;br /&gt;
        chunk            chunk a file&lt;br /&gt;
        arm7_stop        stop the arm7&lt;br /&gt;
        arm7_go          start the arm7 with a downloaded image&lt;br /&gt;
        iic              iic read/write&lt;br /&gt;
        usb              run a USB command&lt;br /&gt;
        sha1             SHA-1 hash of memory&lt;br /&gt;
        crc              POSIX 1003.2 checksum of memory&lt;br /&gt;
        clearenv         clear all environment variables&lt;br /&gt;
        setenv           set an environment variable&lt;br /&gt;
        printenv         print one or all environment variables&lt;br /&gt;
        image            flash image inspection&lt;br /&gt;
        pki              PKI&lt;br /&gt;
        bdev             block device commands&lt;br /&gt;
&lt;br /&gt;
== command descriptions ==&lt;br /&gt;
&lt;br /&gt;
 (Recovery) iPhone$ usb&lt;br /&gt;
 Usage:&lt;br /&gt;
        usb get &amp;lt;filename&amp;gt; [address] [amount]&lt;br /&gt;
        usb get tftp://servername.com/file.bin [address] [amount]&lt;br /&gt;
        usb put &amp;lt;filename&amp;gt; &amp;lt;amount&amp;gt; [address]&lt;br /&gt;
 (Recovery) iPhone$ pki&lt;br /&gt;
 not enough arguments.&lt;br /&gt;
 pki verify &amp;lt;cert-chain-as-concatenated-der-blobs-data&amp;gt; &amp;lt;length&amp;gt;  &amp;lt;signature-blob-data&amp;gt; &amp;lt;length&amp;gt; &amp;lt;hash-blob-data&amp;gt; &amp;lt;length&amp;gt;&lt;br /&gt;
        verify-image &amp;lt;8900-1.0-image-data&amp;gt; &amp;lt;length&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ bdev&lt;br /&gt;
 not enough arguments&lt;br /&gt;
 usage:&lt;br /&gt;
 bdev list&lt;br /&gt;
 bdev read &amp;lt;dev&amp;gt; &amp;lt;offset&amp;gt; &amp;lt;len&amp;gt; [&amp;lt;address&amp;gt;]&lt;br /&gt;
 bdev write &amp;lt;dev&amp;gt; &amp;lt;offset&amp;gt; [&amp;lt;len&amp;gt;] [&amp;lt;address&amp;gt;]&lt;br /&gt;
 bdev memcmp &amp;lt;dev&amp;gt; &amp;lt;offset&amp;gt; [&amp;lt;len&amp;gt;] [&amp;lt;address&amp;gt;]&lt;br /&gt;
 bdev erase &amp;lt;dev&amp;gt; &amp;lt;offset&amp;gt; &amp;lt;len&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ image&lt;br /&gt;
 not enough arguments.&lt;br /&gt;
 image list [&amp;lt;detailed&amp;gt;]&lt;br /&gt;
 image load [&amp;lt;type&amp;gt;|memory] [&amp;lt;address&amp;gt;]&lt;br /&gt;
 (Recovery) iPhone$ printenv&lt;br /&gt;
  config_board = 'n72ap'&lt;br /&gt;
  loadaddr = '0x9000000'&lt;br /&gt;
  boot-command = 'fsboot'&lt;br /&gt;
  idle-off = 'true'&lt;br /&gt;
  boot-device = 'nand0'&lt;br /&gt;
  boot-partition = '0'&lt;br /&gt;
  boot-path = '/System/Library/Caches/com.apple.kernelcaches/kernelcache.s5l8720x'&lt;br /&gt;
  display-color-space = 'RGB888'&lt;br /&gt;
  display-timing = 'n72'&lt;br /&gt;
 P bootdelay = '0'&lt;br /&gt;
 P platform-uuid = &amp;lt;DATA&amp;gt;&lt;br /&gt;
 P backlight-level = '56'&lt;br /&gt;
 P debug-uarts = '4'&lt;br /&gt;
 P auto-boot = 'false'&lt;br /&gt;
  image-version = '0x3'&lt;br /&gt;
  framebuffer = '0xfb04000'&lt;br /&gt;
  secure-boot = '0x1'&lt;br /&gt;
  ? = '0xfffffff'&lt;br /&gt;
 (Recovery) iPhone$ crc&lt;br /&gt;
 not enough arguments.&lt;br /&gt;
 crc &amp;lt;address&amp;gt; &amp;lt;len&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ sha1&lt;br /&gt;
 not enough arguments.&lt;br /&gt;
 sha1 &amp;lt;address&amp;gt; &amp;lt;len&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ iic&lt;br /&gt;
 not enough arguments.&lt;br /&gt;
 iic read &amp;lt;bus&amp;gt; &amp;lt;iicaddr&amp;gt; &amp;lt;len&amp;gt;&lt;br /&gt;
 iic readreg &amp;lt;bus&amp;gt; &amp;lt;iicaddr&amp;gt; &amp;lt;reg&amp;gt; &amp;lt;len&amp;gt;&lt;br /&gt;
 iic write &amp;lt;bus&amp;gt; &amp;lt;iicaddr&amp;gt; &amp;lt;data0&amp;gt; &amp;lt;data1&amp;gt; ...&lt;br /&gt;
 (Recovery) iPhone$ chunk&lt;br /&gt;
 Enter a sub-command&lt;br /&gt;
 &lt;br /&gt;
 Commands:&lt;br /&gt;
        put_test&lt;br /&gt;
        get_test&lt;br /&gt;
 (Recovery) iPhone$ syscfg&lt;br /&gt;
 0x53724e6d 'SrNm'  0x30304539 0x48453134 0x00333032 0x00000000&lt;br /&gt;
 0x46774964 'FwId'  0x01000000 0x00000000 0x000a2700 0x00000000&lt;br /&gt;
 0x48775672 'HwVr'  0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;
 0x48774964 'HwId'  0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;
 0x53775672 'SwVr'  0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;
 (Recovery) iPhone$ saveenv&lt;br /&gt;
 0x4d4c424e 'MLBN'  0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;
 0x4d6f6423 'Mod#'  0x3335424d 0x00000031 0x00000000 0x00000000&lt;br /&gt;
 0x5265676e 'Regn'  0x412f4446 0x00000000 0x00000000 0x00000000&lt;br /&gt;
 0x4d4c4223 'MLB#'  0x30394339 0x50393237 0x5a323437 0x00000041&lt;br /&gt;
 (Recovery) iPhone$ devicetree&lt;br /&gt;
 0x42617474 'Batt'  0x42617474 0x00000012 0x00001fd8 0xffffffff&lt;br /&gt;
 0x53425672 'SBVr'  0x00000031 0x00000000 0x00000000 0x00000000&lt;br /&gt;
 0x4d74436c 'MtCl'  0x4d74436c 0x00000100 0x00001ed8 0xffffffff&lt;br /&gt;
 (Recovery) iPhone$ powernvram&lt;br /&gt;
 usage:&lt;br /&gt;
        powernvram &amp;lt;command&amp;gt;&lt;br /&gt;
                list                  List NVRAM Properties.&lt;br /&gt;
                set &amp;lt;prop#&amp;gt; &amp;lt;value&amp;gt;   Set NVRAM Property.&lt;br /&gt;
 (Recovery) iPhone$ powernvram list&lt;br /&gt;
 0: [iBootState] 0x00&lt;br /&gt;
 1: [iBootDebug] 0x00&lt;br /&gt;
 2: [iBootStage] 0x00&lt;br /&gt;
 3: [iBootErrorCount] 0x05&lt;br /&gt;
 4: [iBootErrorStage] 0x30&lt;br /&gt;
 (Recovery) iPhone$ md&lt;br /&gt;
 0x09000000: e59f3014 e3a02a02  e1c320b0 e3e02000&lt;br /&gt;
 0x09000010: e2833c9d e58326c0  eafffffe 2200f300&lt;br /&gt;
 0x09000020: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x09000030: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x09000040: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x09000050: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x09000060: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x09000070: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x09000090: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x090000a0: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x090000b0: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x090000c0: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x090000d0: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x090000e0: 00000000 00000000  00000000 00000000&lt;br /&gt;
 0x090000f0: 00000000 00000000  00000000 00000000&lt;br /&gt;
 (Recovery) iPhone$ mdh&lt;br /&gt;
 0x09000100: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000110: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000120: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000130: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000140: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000150: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000160: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000170: 0000 0000 0000 0000  0000 0000 0000 000&lt;br /&gt;
 0x09000180: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x09000190: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x090001a0: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x090001b0: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x090001c0: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x090001d0: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x090001e0: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 0x090001f0: 0000 0000 0000 0000  0000 0000 0000 0000&lt;br /&gt;
 59f3014 (Recovery) iPhone$ mdd&lt;br /&gt;
 (Recovery) iPhone$ mdb&lt;br /&gt;
 0x09000200: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000210: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000220: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000230: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000240: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000250: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000260: 00 00 00 0 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000270: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000280: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x09000290: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x090002a0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x090002b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x090002c0: 00 00 00 00 00 00 00 00  00 0000 00 00 00 00 00&lt;br /&gt;
 0x090002d0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x090002e0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 0x090002f0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00&lt;br /&gt;
 (Recovery) iPhone$ mw&lt;br /&gt;
 mw [&amp;lt;address&amp;gt;] &amp;lt;data&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ mwh&lt;br /&gt;
 mwh [&amp;lt;address&amp;gt;] &amp;lt;data&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ mwb&lt;br /&gt;
 mwb [&amp;lt;address&amp;gt;] &amp;lt;data&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ mws&lt;br /&gt;
 mws [&amp;lt;address&amp;gt;] &amp;lt;data&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ bgcolor&lt;br /&gt;
 wrong number of args.&lt;br /&gt;
 bgcolor &amp;lt;red&amp;gt; &amp;lt;green&amp;gt; &amp;lt;blue&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ setpicture&lt;br /&gt;
 wrong number of args.&lt;br /&gt;
 setpicture update? [&amp;lt;addr&amp;gt; [&amp;lt;size&amp;gt;]]&lt;br /&gt;
 (Recovery) iPhone$ tsys&lt;br /&gt;
 boot_flash: could not find image&lt;br /&gt;
 (Recovery) iPhone$ diags&lt;br /&gt;
 boot_flash: could not find image&lt;br /&gt;
 (Recovery) iPhone$ run&lt;br /&gt;
 run &amp;lt;variable&amp;gt;&lt;br /&gt;
 (Recovery) iPhone$ script&lt;br /&gt;
 running script at 0x9000000&lt;br /&gt;
 finished running script (EOF at 0x900000c)&lt;br /&gt;
 0??*?? ??&lt;br /&gt;
 &lt;br /&gt;
 ?SYNTAX ERROR&lt;br /&gt;
 ]      POSIX 1003.2 cpresent)&lt;br /&gt;
 (Recovery) iPhone$ bootx&lt;br /&gt;
 Attempting to validate kernelcache @ 0x09000000&lt;br /&gt;
 (Recovery) iPhone$  usb_control_msg(iDev, 0x21, 2, 0, 0, 0, 0, 1000)&lt;br /&gt;
 Kernelcache image not valid&lt;br /&gt;
 error loading kernelcache&lt;br /&gt;
&lt;br /&gt;
==[[IBEC]] commands==&lt;br /&gt;
&lt;br /&gt;
A lot of the commands have been removed because [[IBEC]] is used to boot a [[ramdisk]] or [[kernelcache]].&lt;br /&gt;
&lt;br /&gt;
 ramdisk          create a radisk from the specified address&lt;br /&gt;
 go               jump directly to address&lt;br /&gt;
 bootx            boot a kernel cache at specified address&lt;br /&gt;
 devicetree       create a device tree from the specified address&lt;/div&gt;</summary>
		<author><name>Kleemajo</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=S5L8720_(Hardware)&amp;diff=6099</id>
		<title>S5L8720 (Hardware)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=S5L8720_(Hardware)&amp;diff=6099"/>
		<updated>2010-04-20T07:49:16Z</updated>

		<summary type="html">&lt;p&gt;Kleemajo: /* VIC (PL192) */ Fixed a tag that I accidentally copy pasted over in the previous edit.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This should help people reversing iBoot and friends. It is a work in progress.&lt;br /&gt;
&lt;br /&gt;
==SHA1==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x38000000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x00&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Configuration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x04&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Setup&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x20 through 0x30&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Output SHA1 hash&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x40 through 0x7C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Data Input (64 Bytes)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
See [[S5L8720 (Hardware) SHA1|S5L8720 SHA1]] for a more detailed description&lt;br /&gt;
&lt;br /&gt;
==DMA (PL080)==&lt;br /&gt;
This appears to use an ARM PrimeCell PL080. You can read the technical reference manual [http://www.mediafire.com/download.php?mjy2m1do0jg here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base (dmac0)&amp;lt;/b&amp;gt;: 0x38200000&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Base (dmac1)&amp;lt;/b&amp;gt;: 0x39900000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;TC Status (If HIGH, transaction complete)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x8&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;TC Interrupt Clear&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Error Interrupt Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x10&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Error Interrupt Clear&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x14&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;TC Interrupt Status Before Masking (Raw)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x18&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Error Interrupt Status Before Masking (Raw)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x1C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;DMA Channels Enabled&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x30&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Controller Configuration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x34&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Enable / Disable Synchronization&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x100&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Source Address&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x104&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Destination Address&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x108&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Linked List Address&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x10C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Control 1&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x110&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Control 2&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x114&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Configuration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VIC (PL192)==&lt;br /&gt;
This appears to use an ARM PrimeCell PL192. You can read the technical reference manual [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0273a/DDI0273.pdf here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (vic0)&amp;lt;/b&amp;gt;: 0x38E00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (vic1)&amp;lt;/b&amp;gt;: 0x38E01000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;IRQ Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;FIQ Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x8&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Raw Interrupt Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Select (0=IRQ, 1=FIQ)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x10&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Enable (0=Disabled, 1=Enabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x14&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Enable Clear (Write-Only; 0=No Effect, 1=Interrupt enabled with previous reg disabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x18&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Software Interrupt (0=Disabled, 1=Enabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x1C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Software Interrupt Clear (Write-Only; 0=No Effect, 1=Interrupt enabled with previous reg disabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x20&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Register Protection Mode. If bit 0 is set to 1, then Protection Mode is on and only privileged mode writes will work.&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x24&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Software Interrupt Priority Mask (0=Masked, 1=Not Masked)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x100&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Vector Addresses&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x200&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Vector Priority Levels&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xFE0 through 0xFEC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Peripheral Identification Registers&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Part Number&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bits 7 through 0 of register 0xFE0 is one portion of the part number (0x92), then bits 3 through 0 of register 0xFE4 is the other portion of it (0x1). If you do some annoying shifting, to put it together, you get 0x192 (0x92|0x11&amp;lt;&amp;lt;8&amp;amp;0xFFF==0x192). 0x192 indicates that it is an ARM PrimeCell PL192.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Designer&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bits 7 through 4 of register 0xFE4 is one portion of the designer tag (0x1), then bits 3 through 0 of register 0xFE8 is the other portion of it (0x4). Like above, we can do (0x11 | 0x4&amp;lt;&amp;lt;4) and we get 0x41, which is &amp;quot;A&amp;quot; in ASCII, meaning it was designed by ARM Limited.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Revision Number&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Unlike the above two, this one is pretty easy. Bits 7 through 4 of register 0xFE8 is the revision number, which is &amp;quot;0&amp;quot; at least for the iPod touch 2G.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Configuration&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The reference manual simply states that bits 7 through 2 should read back as 0, and nothing more about them. It also states that bits 1 through 0 indicate the number of interrupts supported, which appear to be 32 for the iPod touch 2G ('''0b00=32 Supported''', 0b01=64 Supported, 0b10=128 Supported, 0b11=256 Supported).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xFF0 through 0xFFC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;PrimeCell Identification Registers&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFF0&amp;lt;/b&amp;gt;: Should read as 0x0D&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFF4&amp;lt;/b&amp;gt;: Should read as 0xF0&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFF8&amp;lt;/b&amp;gt;: Should read as 0x05&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFFC&amp;lt;/b&amp;gt;: Should read as 0xB1&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CHIPID==&lt;br /&gt;
All information here was gathered by reversing iBoot and friends.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x3D100000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Unused &amp;amp; Unreferenced Register&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Not yet documented&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x8&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Chip Info&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Chip ID&amp;lt;/b&amp;gt;: Bits 31 through 16 (0x8720, meaning it is an [[S5L8720]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Security Epoch&amp;lt;/b&amp;gt;: Bits 15 through 1 (0x01)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==WDT (Watchdog Timer)==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x3C800000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Control Register&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE: It seems that you can disable Watchdog Timer by rewriting this register to 0x00000000, and you can reboot the device by rewriting it to 0x100000&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Watchdog Timeout Duration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Clear&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
See separate article [[S5L8720 Timers (Hardware)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM7 (Second CPU)==&lt;br /&gt;
All information here was gathered by looking at the code for the [[ARM7 Go]] command, as well as noting that although 2.1.1 iBoots reference this as 0xB8600000, 0x80000000 through 0xFFFFFFFF is mapped to 0x0 through 0x7FFFFFFF when the MMU does it's stuff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x38600000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x100&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Running Status&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;To halt the ARM7&amp;lt;/b&amp;gt;: Clear all bits then set bit t 2&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;To make it resume&amp;lt;/b&amp;gt;: Set bit 1&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x110&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Code Address&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
To run code, halt the ARM7, write the load address of the code to this register, write 0x3FF0000 to register 0x114, then resume the ARM7&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x114&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;quot;Code Waiting&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I don't know exactly what this register does, but I named it like this because 0x3FF0000 is written to this register when there is a load address of code to be jumped to in register 0x110&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UART==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart0 - Serial)&amp;lt;/b&amp;gt;: 0x3CC00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart1 - Bluetooth)&amp;lt;/b&amp;gt;: 0x3DB00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart2)&amp;lt;/b&amp;gt;: 0x3DC00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart3)&amp;lt;/b&amp;gt;: 0x3DD00000&amp;lt;br&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SPI==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi0 - NOR Flash)&amp;lt;/b&amp;gt;: 0x3C300000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi1 - NOR Flash)&amp;lt;/b&amp;gt;: 0x3CE00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi2)&amp;lt;/b&amp;gt;: 0x3D200000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi3)&amp;lt;/b&amp;gt;: 0x3DA00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi4 - Multi Touch)&amp;lt;/b&amp;gt;: 0x3E100000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://github.com/planetbeing/iphonelinux/tree/27b57ac836053d59421a02755920b5be6b1e7805/openiboot OpeniBoot]&lt;br /&gt;
* [http://code.google.com/p/chronicdev/wiki/N72APDevTree Decoded iPod touch 2G DevTree]&lt;/div&gt;</summary>
		<author><name>Kleemajo</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=S5L8720_(Hardware)&amp;diff=6098</id>
		<title>S5L8720 (Hardware)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=S5L8720_(Hardware)&amp;diff=6098"/>
		<updated>2010-04-20T07:48:23Z</updated>

		<summary type="html">&lt;p&gt;Kleemajo: /* VIC (PL192) */ Updated technical reference manual link to one on the ARM doc site since the old link was broken.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This should help people reversing iBoot and friends. It is a work in progress.&lt;br /&gt;
&lt;br /&gt;
==SHA1==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x38000000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x00&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Configuration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x04&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Setup&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x20 through 0x30&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Output SHA1 hash&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x40 through 0x7C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Data Input (64 Bytes)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
See [[S5L8720 (Hardware) SHA1|S5L8720 SHA1]] for a more detailed description&lt;br /&gt;
&lt;br /&gt;
==DMA (PL080)==&lt;br /&gt;
This appears to use an ARM PrimeCell PL080. You can read the technical reference manual [http://www.mediafire.com/download.php?mjy2m1do0jg here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base (dmac0)&amp;lt;/b&amp;gt;: 0x38200000&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Base (dmac1)&amp;lt;/b&amp;gt;: 0x39900000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;TC Status (If HIGH, transaction complete)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x8&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;TC Interrupt Clear&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Error Interrupt Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x10&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Error Interrupt Clear&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x14&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;TC Interrupt Status Before Masking (Raw)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x18&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Error Interrupt Status Before Masking (Raw)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x1C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;DMA Channels Enabled&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x30&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Controller Configuration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x34&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Enable / Disable Synchronization&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x100&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Source Address&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x104&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Destination Address&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x108&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Linked List Address&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x10C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Control 1&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x110&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Control 2&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x114&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Channel 0 Configuration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VIC (PL192)==&lt;br /&gt;
This appears to use an ARM PrimeCell PL192. You can read the technical reference manual http://infocenter.arm.com/help/topic/com.arm.doc.ddi0273a/DDI0273.pdf here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (vic0)&amp;lt;/b&amp;gt;: 0x38E00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (vic1)&amp;lt;/b&amp;gt;: 0x38E01000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;IRQ Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;FIQ Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x8&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Raw Interrupt Status&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Select (0=IRQ, 1=FIQ)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x10&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Enable (0=Disabled, 1=Enabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x14&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Enable Clear (Write-Only; 0=No Effect, 1=Interrupt enabled with previous reg disabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x18&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Software Interrupt (0=Disabled, 1=Enabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x1C&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Software Interrupt Clear (Write-Only; 0=No Effect, 1=Interrupt enabled with previous reg disabled)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x20&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Register Protection Mode. If bit 0 is set to 1, then Protection Mode is on and only privileged mode writes will work.&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x24&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Software Interrupt Priority Mask (0=Masked, 1=Not Masked)&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x100&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Vector Addresses&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x200&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Vector Priority Levels&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xFE0 through 0xFEC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Peripheral Identification Registers&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Part Number&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bits 7 through 0 of register 0xFE0 is one portion of the part number (0x92), then bits 3 through 0 of register 0xFE4 is the other portion of it (0x1). If you do some annoying shifting, to put it together, you get 0x192 (0x92|0x11&amp;lt;&amp;lt;8&amp;amp;0xFFF==0x192). 0x192 indicates that it is an ARM PrimeCell PL192.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Designer&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bits 7 through 4 of register 0xFE4 is one portion of the designer tag (0x1), then bits 3 through 0 of register 0xFE8 is the other portion of it (0x4). Like above, we can do (0x11 | 0x4&amp;lt;&amp;lt;4) and we get 0x41, which is &amp;quot;A&amp;quot; in ASCII, meaning it was designed by ARM Limited.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Revision Number&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Unlike the above two, this one is pretty easy. Bits 7 through 4 of register 0xFE8 is the revision number, which is &amp;quot;0&amp;quot; at least for the iPod touch 2G.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Configuration&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The reference manual simply states that bits 7 through 2 should read back as 0, and nothing more about them. It also states that bits 1 through 0 indicate the number of interrupts supported, which appear to be 32 for the iPod touch 2G ('''0b00=32 Supported''', 0b01=64 Supported, 0b10=128 Supported, 0b11=256 Supported).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xFF0 through 0xFFC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;PrimeCell Identification Registers&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFF0&amp;lt;/b&amp;gt;: Should read as 0x0D&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFF4&amp;lt;/b&amp;gt;: Should read as 0xF0&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFF8&amp;lt;/b&amp;gt;: Should read as 0x05&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Register 0xFFC&amp;lt;/b&amp;gt;: Should read as 0xB1&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CHIPID==&lt;br /&gt;
All information here was gathered by reversing iBoot and friends.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x3D100000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Unused &amp;amp; Unreferenced Register&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Not yet documented&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x8&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Chip Info&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Chip ID&amp;lt;/b&amp;gt;: Bits 31 through 16 (0x8720, meaning it is an [[S5L8720]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Security Epoch&amp;lt;/b&amp;gt;: Bits 15 through 1 (0x01)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==WDT (Watchdog Timer)==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x3C800000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x0&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Control Register&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE: It seems that you can disable Watchdog Timer by rewriting this register to 0x00000000, and you can reboot the device by rewriting it to 0x100000&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x4&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Watchdog Timeout Duration&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0xC&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Interrupt Clear&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
See separate article [[S5L8720 Timers (Hardware)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM7 (Second CPU)==&lt;br /&gt;
All information here was gathered by looking at the code for the [[ARM7 Go]] command, as well as noting that although 2.1.1 iBoots reference this as 0xB8600000, 0x80000000 through 0xFFFFFFFF is mapped to 0x0 through 0x7FFFFFFF when the MMU does it's stuff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Base&amp;lt;/b&amp;gt;: 0x38600000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x100&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Running Status&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;To halt the ARM7&amp;lt;/b&amp;gt;: Clear all bits then set bit t 2&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;To make it resume&amp;lt;/b&amp;gt;: Set bit 1&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x110&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;Code Address&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
To run code, halt the ARM7, write the load address of the code to this register, write 0x3FF0000 to register 0x114, then resume the ARM7&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;0x114&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;quot;Code Waiting&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I don't know exactly what this register does, but I named it like this because 0x3FF0000 is written to this register when there is a load address of code to be jumped to in register 0x110&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UART==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart0 - Serial)&amp;lt;/b&amp;gt;: 0x3CC00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart1 - Bluetooth)&amp;lt;/b&amp;gt;: 0x3DB00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart2)&amp;lt;/b&amp;gt;: 0x3DC00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (uart3)&amp;lt;/b&amp;gt;: 0x3DD00000&amp;lt;br&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SPI==&lt;br /&gt;
&amp;lt;table border=1 width=100%&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=2&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi0 - NOR Flash)&amp;lt;/b&amp;gt;: 0x3C300000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi1 - NOR Flash)&amp;lt;/b&amp;gt;: 0x3CE00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi2)&amp;lt;/b&amp;gt;: 0x3D200000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi3)&amp;lt;/b&amp;gt;: 0x3DA00000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Base (spi4 - Multi Touch)&amp;lt;/b&amp;gt;: 0x3E100000&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Register&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50%&amp;gt;&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://github.com/planetbeing/iphonelinux/tree/27b57ac836053d59421a02755920b5be6b1e7805/openiboot OpeniBoot]&lt;br /&gt;
* [http://code.google.com/p/chronicdev/wiki/N72APDevTree Decoded iPod touch 2G DevTree]&lt;/div&gt;</summary>
		<author><name>Kleemajo</name></author>
		
	</entry>
</feed>