<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://freemyipod.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Farthen</id>
	<title>freemyipod - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://freemyipod.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Farthen"/>
	<link rel="alternate" type="text/html" href="https://freemyipod.org/wiki/Special:Contributions/Farthen"/>
	<updated>2026-05-16T23:47:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUiTunes&amp;diff=4167</id>
		<title>EmCORE Installation/iPodClassic/DFUiTunes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUiTunes&amp;diff=4167"/>
		<updated>2012-01-16T14:53:37Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Download [http://files.freemyipod.org/misc/bootstrap_ipodclassic_itunes.exe this] file&lt;br /&gt;
* Connect your iPod to your computer&lt;br /&gt;
* Make sure iTunes is closed&lt;br /&gt;
* Kill &amp;quot;AppleMobileDeviceService.exe&amp;quot; using the task manager&lt;br /&gt;
** Open the task manager (press CTRL + SHIFT + ESC)&lt;br /&gt;
** Click on the &amp;quot;Processes&amp;quot; tab&lt;br /&gt;
** Choose &amp;quot;AppleMobileDeviceService.exe&amp;quot;&lt;br /&gt;
** Press the &amp;quot;End Process&amp;quot; button&lt;br /&gt;
** Press &amp;quot;End Process&amp;quot; to confirm&lt;br /&gt;
* Do the same for &amp;quot;iTunesHelper.exe&amp;quot;&lt;br /&gt;
* Make sure the hold switch is not locked&lt;br /&gt;
* Press and hold the menu and select buttons for between 10 and 15 seconds (The iPod will show an apple logo after about 5 seconds, keep holding the buttons until it seems to turn off completely)&lt;br /&gt;
&lt;br /&gt;
The display of your iPod should now stay black, and a new USB device called &amp;quot;Apple Recovery (DFU) USB Driver&amp;quot; should connect to your PC.&lt;br /&gt;
&lt;br /&gt;
* Wait for the driver installation to complete&lt;br /&gt;
* Run bootstrap_ipodclassic_itunes.exe&lt;br /&gt;
&lt;br /&gt;
Your iPod should now turn on and connect a 64MB drive called &amp;quot;UMSboot&amp;quot;. If it doesn&#039;t, please ask for [[Contact|support]].&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE Installation/iPodClassic/UMSboot|Next step]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=4165</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=4165"/>
		<updated>2012-01-02T20:48:22Z</updated>

		<summary type="html">&lt;p&gt;Farthen: Delete commented out updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:EmCORE_Nano2G_Nano4G_Classic.jpg|280px|thumb|right|[[emCORE]] r779 on [[Nano 2G]], [[Nano 4G]] and [[Classic 2G]]]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Getting started with [[emCORE]]==&lt;br /&gt;
# Check if your device is supported by the installer: [[Status]]&lt;br /&gt;
# Follow the installation instructions: [[emCORE Installation]]&lt;br /&gt;
# Report any bugs you encountered to us: [[Contact]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2012-01-02}} - There have been some problems with the latest release. A hotfix release ([[EmCORE_Releases/r859|r859]]) has been published to fix some of these problems. iPod nano 2g users are advised to upgrade.  See the [[EmCORE_Releases/r859|release details page]] for more information.&lt;br /&gt;
* {{#dateformat:2012-01-01}} - A new release &amp;lt;s&amp;gt;([[EmCORE_Releases/r855|r855]])&amp;lt;/s&amp;gt; is out! It includes a couple of new features, several bugfixes and a new bootmenu theme! More information on the &amp;lt;s&amp;gt;[[EmCORE_Releases/r855|release details page]]&amp;lt;/s&amp;gt;.&lt;br /&gt;
* {{#dateformat:2011-04-25}} - The [[emCORE]] kernel now runs on the iPod Touch 2G as well, thanks to the help of kleemajo. This is of course not a fully functional port yet, but we&#039;ll see how it continues. It&#039;s about the same state as the iPod Nano 4G now. /7&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information. Check our [[ Special:Code/freemyipod|SVN activity ]] page for the latest changes to our source code.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Special:Code/freemyipod|SVN Activity ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
** [[emCORE Installation]]&lt;br /&gt;
** [[emCORE Releases]]&lt;br /&gt;
** [[emCORE Monitor Protocol]]&lt;br /&gt;
** [[emCOREFS]]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=4164</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=4164"/>
		<updated>2012-01-02T19:49:39Z</updated>

		<summary type="html">&lt;p&gt;Farthen: r859&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:EmCORE_Nano2G_Nano4G_Classic.jpg|280px|thumb|right|[[emCORE]] r779 on [[Nano 2G]], [[Nano 4G]] and [[Classic 2G]]]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Getting started with [[emCORE]]==&lt;br /&gt;
# Check if your device is supported by the installer: [[Status]]&lt;br /&gt;
# Follow the installation instructions: [[emCORE Installation]]&lt;br /&gt;
# Report any bugs you encountered to us: [[Contact]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2012-01-02}} - There have been some problems with the latest release. A hotfix release ([[EmCORE_Releases/r859|r859]]) has been published to fix some of these problems. iPod nano 2g users are advised to upgrade.  See the [[EmCORE_Releases/r859|release details page]] for more information.&lt;br /&gt;
* {{#dateformat:2012-01-01}} - A new release &amp;lt;s&amp;gt;([[EmCORE_Releases/r855|r855]])&amp;lt;/s&amp;gt; is out! It includes a couple of new features, several bugfixes and a new bootmenu theme! More information on the &amp;lt;s&amp;gt;[[EmCORE_Releases/r855|release details page]]&amp;lt;/s&amp;gt;.&lt;br /&gt;
* {{#dateformat:2011-04-25}} - The [[emCORE]] kernel now runs on the iPod Touch 2G as well, thanks to the help of kleemajo. This is of course not a fully functional port yet, but we&#039;ll see how it continues. It&#039;s about the same state as the iPod Nano 4G now. /7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information. Check our [[ Special:Code/freemyipod|SVN activity ]] page for the latest changes to our source code.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Special:Code/freemyipod|SVN Activity ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
** [[emCORE Installation]]&lt;br /&gt;
** [[emCORE Releases]]&lt;br /&gt;
** [[emCORE Monitor Protocol]]&lt;br /&gt;
** [[emCOREFS]]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4163</id>
		<title>EmCORE Releases/r855</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4163"/>
		<updated>2012-01-02T19:49:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: r859&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Template:Outdated|reason=A hotfix for this release is available: [[EmCORE Releases/r859|r859]]}}&lt;br /&gt;
[[emCORE]] r855 was released on January 1st, 2012.&lt;br /&gt;
==Release notes / Known issues==&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod Classic (thin models): Upgrading from emCORE builds before r836 will reformat the hard drive. Rockbox versions before r31455 are incompatible with the new format.&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;Please remove &amp;quot;fastboot&amp;quot; if present (/.boot/init.emcoreapp) &#039;&#039;&#039;before&#039;&#039;&#039; upgrading to this release! Otherwise you might get into very nasty trouble.&amp;lt;/span&amp;gt;&lt;br /&gt;
* iPod Classic (thick 160GB): If you&#039;re using a Rockbox version before r30908, you will need to update Rockbox by booting the fallback image (Tools =&amp;gt; Rockbox fallback image) to make the LCD work again.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There are still some Rockbox USB stability issues. In most cases, replugging/rebooting the iPod helps. This might be fixed in future Rockbox releases.&lt;br /&gt;
&lt;br /&gt;
==Fixes / Improvements==&lt;br /&gt;
* Includes Rockbox release 3.10 (iPod Nano 2G) / build r31516 (iPod Classic).&lt;br /&gt;
* Lots of internal improvements and bug fixes.&lt;br /&gt;
* iPod Classic: USB stability improvements. This release should work on devices which previously needed the &amp;quot;usbfixcandidate&amp;quot; build.&lt;br /&gt;
* &amp;quot;fastboot&amp;quot; has been integrated into the boot menu.&lt;br /&gt;
* The boot menu is now configurable (default boot option, timeouts, fastboot, backlight brightness, ...).&lt;br /&gt;
* Support for boot menu themes on the data partition has been added (winter theme included).&lt;br /&gt;
* iPod Classic: HDD data endianness has been fixed.&lt;br /&gt;
* emCORE applications can now have command line arguments.&lt;br /&gt;
* emCORE kernel memory size has been reduced.&lt;br /&gt;
* emCORE LCD driver performance has been improved&lt;br /&gt;
* iPod Classic: Use all 262144 colors of the LCD, not just 65536.&lt;br /&gt;
* iPod Nano 2G: Fix LCD not being cleared properly on shutdown in certain situations.&lt;br /&gt;
* Fix wrong maximum packet sizes in USB descriptors.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
===iPod Nano 2G===&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod nano 2g builds taken down due to some problems with booting the original firmware. Stay tuned for another update.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodnano2g-3.10-20120101.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===iPod Classic===&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/bootstrap-ipodclassic-r855-20120101.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodclassic-r855-20120101.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodclassic-r31516-20120101.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=4162</id>
		<title>EmCORE Releases</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=4162"/>
		<updated>2012-01-02T19:49:21Z</updated>

		<summary type="html">&lt;p&gt;Farthen: r859&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of all builds of [[emCORE]] that have been released into public so far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please do not use any other builds unless you really know what you&#039;re doing!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The most recent version is the topmost one in the following list. It is recommended to use that one, unless you have a specific reason to use another.&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE_Releases/r859|&#039;&#039;&#039;emCORE r859 (2012-01-02)&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;[[EmCORE_Releases/r855|emCORE r855 (2012-01-01)]]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE_Releases/r708|emCORE r708 (2011-04-24)]]&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE_Releases/r692|emCORE r692 (2011-04-06)]]&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE_Releases/r674|emCORE r674 (2011-03-25)]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases/r859&amp;diff=4161</id>
		<title>EmCORE Releases/r859</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases/r859&amp;diff=4161"/>
		<updated>2012-01-02T19:49:16Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[emCORE]] r859 was released on January 2nd, 2012.&lt;br /&gt;
==Release notes / Known issues==&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod Classic (thin models): Upgrading from emCORE builds before r836 will reformat the hard drive. Rockbox versions before r31455 are incompatible with the new format.&amp;lt;/span&amp;gt;&lt;br /&gt;
* iPod Classic (thick 160GB): If you&#039;re using a Rockbox version before r30908, you will need to update Rockbox by booting the fallback image (Tools =&amp;gt; Rockbox fallback image) to make the LCD work again.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There are still some Rockbox USB stability issues. In most cases, replugging/rebooting the iPod helps. This might be fixed in future Rockbox releases.&lt;br /&gt;
&lt;br /&gt;
==Fixes / Improvements==&lt;br /&gt;
* Includes Rockbox release 3.10 (iPod Nano 2G) / build r31516 (iPod Classic).&lt;br /&gt;
* Lots of internal improvements and bug fixes.&lt;br /&gt;
* iPod Classic: USB stability improvements. This release should work on devices which previously needed the &amp;quot;usbfixcandidate&amp;quot; build.&lt;br /&gt;
* &amp;quot;fastboot&amp;quot; has been integrated into the boot menu.&lt;br /&gt;
* The boot menu is now configurable (default boot option, timeouts, fastboot, backlight brightness, ...).&lt;br /&gt;
* Support for boot menu themes on the data partition has been added (winter theme included).&lt;br /&gt;
* iPod Classic: HDD data endianness has been fixed.&lt;br /&gt;
* emCORE applications can now have command line arguments.&lt;br /&gt;
* emCORE kernel memory size has been reduced.&lt;br /&gt;
* emCORE LCD driver performance has been improved&lt;br /&gt;
* iPod Classic: Use all 262144 colors of the LCD, not just 65536.&lt;br /&gt;
* iPod Nano 2G: Fix LCD not being cleared properly on shutdown in certain situations.&lt;br /&gt;
* Fix wrong maximum packet sizes in USB descriptors.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
===iPod Nano 2G===&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/installer-ipodnano2g-r859-20120102.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/installer-ipodnano2g-r859-20120102.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/rockbox-ipodnano2g-3.10-20120102.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
===iPod Classic===&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/bootstrap-ipodclassic-r859-20120102.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/installer-ipodclassic-r859-20120102.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/rockbox-ipodclassic-r31516-20120102.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases/r859&amp;diff=4160</id>
		<title>EmCORE Releases/r859</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases/r859&amp;diff=4160"/>
		<updated>2012-01-02T19:49:03Z</updated>

		<summary type="html">&lt;p&gt;Farthen: r859&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[emCORE]] r855 was released on January 1st, 2012.&lt;br /&gt;
==Release notes / Known issues==&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod Classic (thin models): Upgrading from emCORE builds before r836 will reformat the hard drive. Rockbox versions before r31455 are incompatible with the new format.&amp;lt;/span&amp;gt;&lt;br /&gt;
* iPod Classic (thick 160GB): If you&#039;re using a Rockbox version before r30908, you will need to update Rockbox by booting the fallback image (Tools =&amp;gt; Rockbox fallback image) to make the LCD work again.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There are still some Rockbox USB stability issues. In most cases, replugging/rebooting the iPod helps. This might be fixed in future Rockbox releases.&lt;br /&gt;
&lt;br /&gt;
==Fixes / Improvements==&lt;br /&gt;
* Includes Rockbox release 3.10 (iPod Nano 2G) / build r31516 (iPod Classic).&lt;br /&gt;
* Lots of internal improvements and bug fixes.&lt;br /&gt;
* iPod Classic: USB stability improvements. This release should work on devices which previously needed the &amp;quot;usbfixcandidate&amp;quot; build.&lt;br /&gt;
* &amp;quot;fastboot&amp;quot; has been integrated into the boot menu.&lt;br /&gt;
* The boot menu is now configurable (default boot option, timeouts, fastboot, backlight brightness, ...).&lt;br /&gt;
* Support for boot menu themes on the data partition has been added (winter theme included).&lt;br /&gt;
* iPod Classic: HDD data endianness has been fixed.&lt;br /&gt;
* emCORE applications can now have command line arguments.&lt;br /&gt;
* emCORE kernel memory size has been reduced.&lt;br /&gt;
* emCORE LCD driver performance has been improved&lt;br /&gt;
* iPod Classic: Use all 262144 colors of the LCD, not just 65536.&lt;br /&gt;
* iPod Nano 2G: Fix LCD not being cleared properly on shutdown in certain situations.&lt;br /&gt;
* Fix wrong maximum packet sizes in USB descriptors.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
===iPod Nano 2G===&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/installer-ipodnano2g-r859-20120102.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/installer-ipodnano2g-r859-20120102.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/rockbox-ipodnano2g-3.10-20120102.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
===iPod Classic===&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/bootstrap-ipodclassic-r859-20120102.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/installer-ipodclassic-r859-20120102.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120102/rockbox-ipodclassic-r31516-20120102.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4156</id>
		<title>EmCORE Releases/r855</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4156"/>
		<updated>2012-01-02T04:22:28Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* iPod Classic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[emCORE]] r855 was released on January 1st, 2012.&lt;br /&gt;
==Release notes / Known issues==&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod Classic: Upgrading from emCORE builds before r836 will reformat the hard drive. Rockbox versions before r31455 are incompatible with the new format.&amp;lt;/span&amp;gt;&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There are still some Rockbox USB stability issues. In most cases, replugging/rebooting the iPod helps. This might be fixed in future Rockbox releases.&lt;br /&gt;
&lt;br /&gt;
==Fixes / Improvements==&lt;br /&gt;
* Includes Rockbox release 3.10 (iPod Nano 2G) / build r31516 (iPod Classic).&lt;br /&gt;
* Lots of internal improvements and bug fixes.&lt;br /&gt;
* iPod Classic: USB stability improvements. This release should work on devices which previously needed the &amp;quot;usbfixcandidate&amp;quot; build.&lt;br /&gt;
* &amp;quot;fastboot&amp;quot; has been integrated into the boot menu.&lt;br /&gt;
* The boot menu is now configurable (default boot option, timeouts, fastboot, backlight brightness, ...).&lt;br /&gt;
* Support for boot menu themes on the data partition has been added (winter theme included).&lt;br /&gt;
* iPod Classic: HDD data endianness has been fixed.&lt;br /&gt;
* emCORE applications can now have command line arguments.&lt;br /&gt;
* emCORE kernel memory size has been reduced.&lt;br /&gt;
* emCORE LCD driver performance has been improved&lt;br /&gt;
* iPod Classic: Use all 262144 colors of the LCD, not just 65536.&lt;br /&gt;
* iPod Nano 2G: Fix LCD not being cleared properly on shutdown in certain situations.&lt;br /&gt;
* Fix wrong maximum packet sizes in USB descriptors.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
===iPod Nano 2G===&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod nano 2g builds taken down due to some problems with booting the original firmware. Stay tuned for another update.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodnano2g-3.10-20120101.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===iPod Classic===&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;If your hard drive didn&#039;t get wiped after updating from an official release, please get in touch with us. Weird stuff is happening here.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/bootstrap-ipodclassic-r855-20120101.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodclassic-r855-20120101.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodclassic-r31516-20120101.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4155</id>
		<title>EmCORE Releases/r855</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4155"/>
		<updated>2012-01-02T04:17:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[emCORE]] r855 was released on January 1st, 2012.&lt;br /&gt;
==Release notes / Known issues==&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod Classic: Upgrading from emCORE builds before r836 will reformat the hard drive. Rockbox versions before r31455 are incompatible with the new format.&amp;lt;/span&amp;gt;&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There are still some Rockbox USB stability issues. In most cases, replugging/rebooting the iPod helps. This might be fixed in future Rockbox releases.&lt;br /&gt;
&lt;br /&gt;
==Fixes / Improvements==&lt;br /&gt;
* Includes Rockbox release 3.10 (iPod Nano 2G) / build r31516 (iPod Classic).&lt;br /&gt;
* Lots of internal improvements and bug fixes.&lt;br /&gt;
* iPod Classic: USB stability improvements. This release should work on devices which previously needed the &amp;quot;usbfixcandidate&amp;quot; build.&lt;br /&gt;
* &amp;quot;fastboot&amp;quot; has been integrated into the boot menu.&lt;br /&gt;
* The boot menu is now configurable (default boot option, timeouts, fastboot, backlight brightness, ...).&lt;br /&gt;
* Support for boot menu themes on the data partition has been added (winter theme included).&lt;br /&gt;
* iPod Classic: HDD data endianness has been fixed.&lt;br /&gt;
* emCORE applications can now have command line arguments.&lt;br /&gt;
* emCORE kernel memory size has been reduced.&lt;br /&gt;
* emCORE LCD driver performance has been improved&lt;br /&gt;
* iPod Classic: Use all 262144 colors of the LCD, not just 65536.&lt;br /&gt;
* iPod Nano 2G: Fix LCD not being cleared properly on shutdown in certain situations.&lt;br /&gt;
* Fix wrong maximum packet sizes in USB descriptors.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
===iPod Nano 2G===&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod nano 2g builds taken down due to some problems with booting the original firmware. Stay tuned for another update.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodnano2g-3.10-20120101.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===iPod Classic===&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;If your hard drive didn&#039;t get wiped after updating from an official release, please get in touch with us. Weird stuff is happening here.&amp;lt;/span&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/bootstrap-ipodclassic-r855-20120101.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodclassic-r855-20120101.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodclassic-r31516-20120101.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4154</id>
		<title>EmCORE Releases/r855</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases/r855&amp;diff=4154"/>
		<updated>2012-01-02T01:37:47Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[emCORE]] r855 was released on January 1st, 2012.&lt;br /&gt;
==Release notes / Known issues==&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod Classic: Upgrading from emCORE builds before r836 will reformat the hard drive. Rockbox versions before r31455 are incompatible with the new format.&amp;lt;/span&amp;gt;&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There are still some Rockbox USB stability issues. In most cases, replugging/rebooting the iPod helps. This might be fixed in future Rockbox releases.&lt;br /&gt;
&lt;br /&gt;
==Fixes / Improvements==&lt;br /&gt;
* Includes Rockbox release 3.10 (iPod Nano 2G) / build r31516 (iPod Classic).&lt;br /&gt;
* Lots of internal improvements and bug fixes.&lt;br /&gt;
* iPod Classic: USB stability improvements. This release should work on devices which previously needed the &amp;quot;usbfixcandidate&amp;quot; build.&lt;br /&gt;
* &amp;quot;fastboot&amp;quot; has been integrated into the boot menu.&lt;br /&gt;
* The boot menu is now configurable (default boot option, timeouts, fastboot, backlight brightness, ...).&lt;br /&gt;
* Support for boot menu themes on the data partition has been added (winter theme included).&lt;br /&gt;
* iPod Classic: HDD data endianness has been fixed.&lt;br /&gt;
* emCORE applications can now have command line arguments.&lt;br /&gt;
* emCORE kernel memory size has been reduced.&lt;br /&gt;
* emCORE LCD driver performance has been improved&lt;br /&gt;
* iPod Classic: Use all 262144 colors of the LCD, not just 65536.&lt;br /&gt;
* iPod Nano 2G: Fix LCD not being cleared properly on shutdown in certain situations.&lt;br /&gt;
* Fix wrong maximum packet sizes in USB descriptors.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
===iPod Nano 2G===&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;iPod nano 2g builds taken down due to some problems with booting the original firmware. Stay tuned for another update.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodnano2g-r855-20120101.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodnano2g-3.10-20120101.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===iPod Classic===&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/bootstrap-ipodclassic-r855-20120101.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/installer-ipodclassic-r855-20120101.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20120101/rockbox-ipodclassic-r31516-20120101.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=4120</id>
		<title>EmCORE Releases</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=4120"/>
		<updated>2011-11-27T03:06:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of all builds of [[emCORE]] that have been released into public so far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please do not use any other builds unless you really know what you&#039;re doing!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #f00;&amp;quot;&amp;gt;&#039;&#039;&#039;Using [[Fastboot|fastboot]] is discouraged! The recent versions of emCORE have a settings menu, where you can choose the default boot option. It is recommended to uninstall the fastboot app and use a recent release instead.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==r708: April 24th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There&#039;s a small number of iPod Classic devices where USB doesn&#039;t work unless the device was booted through DFU.&lt;br /&gt;
&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Fixed several kernel bugs that affected CPU exception and panic handling and caused the device to just lock up instead of showing proper error messages.&lt;br /&gt;
* Added trivial memory protection to catch most null pointer or garbage memory address accesses.&lt;br /&gt;
* Fixed a race condition in libUI that caused the boot menu to crash occasionally.&lt;br /&gt;
* Fixed various graphics glitches in the boot menu.&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
====Common====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/fastboot-r708-20110424.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
====iPod Nano 2G====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodnano2g-r708-20110424.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodnano2g-r708-20110424.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodnano2g-r708-20110424.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/rockbox-ipodnano2g-r29777-20110424.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
====iPod Classic====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/bootstrap-ipodclassic-r708-20110424.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodclassic-r708-20110424.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/rockbox-ipodclassic-r29777-20110424.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==r692: April 6th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* The boot menu occasionally locks up due to a combination of a kernel bug and a libUI bug. Rebooting the iPod the hard way by holding the menu and select buttons for 5 seconds should help.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There&#039;s a small number of iPod Classic devices where USB doesn&#039;t work unless the device was booted through DFU.&lt;br /&gt;
&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Disabled undervolting for the iPod Classic.&lt;br /&gt;
* Fixed a kernel bug that causes lockups when injecting a firmware image while the boot menu is updating the display.&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
====Common====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/fastboot-r692-20110406.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
====iPod Nano 2G====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodnano2g-r692-20110406.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodnano2g-r692-20110406.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodnano2g-r692-20110406.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/rockbox-ipodnano2g-r29681-20110406.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
====iPod Classic====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/bootstrap-ipodclassic-r692-20110406.dfu bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodclassic-r692-20110406.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/rockbox-ipodclassic-r29681-20110406.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==r674: March 25th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* This is the first public release, so please be aware that there might be a bunch of still unknown bugs in the wild.&lt;br /&gt;
* The boot menu occasionally locks up due to a combination of a kernel bug and a libUI bug. Rebooting the iPod the hard way by holding the menu and select buttons for 5 seconds should help.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* This release reduces the CPU core voltage to conserve battery power, but apparently by a bit too much for some iPod Classic devices, causing all kinds of weird behavior. This was disabled in the r692 release, so please update if you suspect that you&#039;re affected by this.&lt;br /&gt;
* We found a kernel bug in this release that causes lockups when injecting a firmware image while the boot menu is updating the display. This should not affect normal users.&lt;br /&gt;
* There&#039;s a small number of iPod Classic devices where USB doesn&#039;t work unless the device was booted through DFU.&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Initial public [[emCORE]] release&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
====Common====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/fastboot-r674-20110325.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
====iPod Nano 2G====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/rockbox-ipodnano2g-r29644-20110325.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
====iPod Classic====&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/bootstrap-ipodclassic-r674-20110325.dfu bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodclassic-r674-20110325.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/rockbox-ipodclassic-r29644-20110325.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=4002</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=4002"/>
		<updated>2011-09-10T19:23:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Released Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;emCORE installation instructions:&#039;&#039;&#039; [[emCORE Installation]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2011-04-25}} - The [[emCORE]] kernel now runs on the iPod Touch 2G as well, thanks to the help of kleemajo. This is of course not a fully functional port yet, but we&#039;ll see how it continues. It&#039;s about the same state as the iPod Nano 4G now. /7&lt;br /&gt;
*{{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}} - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Special:Code/freemyipod|SVN Activity ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
** [[emCORE Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmBIOS_Monitor_Protocol&amp;diff=4001</id>
		<title>EmBIOS Monitor Protocol</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmBIOS_Monitor_Protocol&amp;diff=4001"/>
		<updated>2011-09-10T19:22:38Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Outdated|reason=emBIOS was discontinued on {{#dateformat:2011-03-25}} and superseded by [[emCORE]]}}&lt;br /&gt;
This article describes the USB communcation protocol of emBIOS monitor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&lt;br /&gt;
The emBIOS Monitor interface contains 4 bulk endpoints, in the following order:&lt;br /&gt;
* Command OUT Endpoint&lt;br /&gt;
* Command IN Endpoint&lt;br /&gt;
* Data OUT Endpoint&lt;br /&gt;
* Data IN Endpoint&lt;br /&gt;
&lt;br /&gt;
If not stated otherwise, everything is little endian.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General Structure ==&lt;br /&gt;
Each packet send to the Command OUT Endpoint has a 16 byte header. The first 4 bytes, interpreted as a 32bit little endian word, contain the command ID. The meaning of the other bytes depends on the command. For commands that send data to the device, it will immediately follow that header.&lt;br /&gt;
&lt;br /&gt;
After sending a packet to the Command OUT Endpoint, listen on the Command IN Endpoint for a response. The response also has a 16 byte header, followed by an optional data stage, depending on the command. The first 4 bytes of the header, interpreted as a 32bit word, is the status code, the meaning of the other bytes depends on the command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Status Codes&lt;br /&gt;
|-&lt;br /&gt;
! Status Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || Invalid response, you should bail out when receiving this&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || OK (everything went fine)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 2 || Command not supported&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 3 || Device is busy, retry later (another asynchronous command is already running)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
=== 0: Invalid ===&lt;br /&gt;
Never issue this command. It will be rejected with status code 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 1: Get device information ===&lt;br /&gt;
Use this command to figure out various device properties.&lt;br /&gt;
&lt;br /&gt;
==== Get version information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || SVN Revision Number&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 1 || Major version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 9 || style=&amp;quot;text-align:right&amp;quot; | 1 || Minor version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 10 || style=&amp;quot;text-align:right&amp;quot; | 1 || Patch version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 11 || style=&amp;quot;text-align:right&amp;quot; | 1 || Software Type ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Device Type ID&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Software Types&lt;br /&gt;
|-&lt;br /&gt;
! Software Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || emBIOS Debugger&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Hardware Types&lt;br /&gt;
|-&lt;br /&gt;
! Device Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47324e49 || iPod Nano 2G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47334e49 || iPod Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47344e49 || iPod Nano 4G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x4c435049 || iPod Classic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Get packet size information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Get user memory address range ====&lt;br /&gt;
Provides information about the range of memory not used by emBIOS itself.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Lower bound (inclusive) of the usable memory range&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Upper bound (exclusive) of the usable memory range&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2: Reset ===&lt;br /&gt;
Reboot the device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Reboot forcibly (0) / Reboot gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Graceful reboots are asynchronous commands. Forced reboots won&#039;t send a response packet before rebooting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually reboots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3: Power off ===&lt;br /&gt;
Power the device off.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Power off forcibly (0) / Shut down gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both variants are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually powers off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4: Read memory ===&lt;br /&gt;
Use this command to read small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (4)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from memory&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5: Write memory ===&lt;br /&gt;
Use this command to write small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (5)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to write&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6: Read memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data IN Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (6)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, read the requested data from the Data IN Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 7: Write memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data OUT Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (7)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, send the data to be written to the Data OUT Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 8: Read from I2C device ===&lt;br /&gt;
Use this command to read from an I2C slave. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (8)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be read (0 means 256)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from the I2C device (undefined if the status code is not 1)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 9: Write to I2C device ===&lt;br /&gt;
Use this command to write to an I2C slave. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (9)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be written (0 means 256)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written to the I2C device&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 10: Read from the USB console ===&lt;br /&gt;
Use this command to get data written to the USB console. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
As long as the console application is running, make sure to issue this request at least once a second. Otherwise the console might start dropping data and inserting an &amp;quot;\n\n[overflowed]\n\n&amp;quot; mark. If you can&#039;t receive any data but need to keep the console from dropping data, issue zero-length read requests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (10)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of valid response bytes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still waiting in the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Valid console data padded with undefined data to meet the requested size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 11: Write to the USB console ===&lt;br /&gt;
Use this command to write data to the USB console. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (11)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of bytes written (the remainder will have to be resent)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still free in the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 12: Write to device&#039;s consoles ===&lt;br /&gt;
Use this command to write data to one or more of the consoles. This is equivalent to the cwrite system call. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (12)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bitmask of consoles to be written to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 13: Read from device&#039;s consoles ===&lt;br /&gt;
Use this command to read data from one or more of the consoles. This is equivalent to the cread system call. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header). This command will &#039;&#039;&#039;not&#039;&#039;&#039; block until there is data available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (13)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bitmask of consoles to be read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes actually read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read, padded with undefined data to meet the requested size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 14: Flush device&#039;s console buffers ===&lt;br /&gt;
Use this command to flush one or more console&#039;s buffers. This is equivalent to the cflush system call.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (14)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bitmask of consoles to be flushed&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 15: Get process information ===&lt;br /&gt;
Use this command to obtain the current state of the scheduler. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (15)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Offset of first byte requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Process information struct version (incremented each time the format changes)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Total size of the process information table&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The requested data, padded with undefined data to meet the requested size, if it exceeds bounds&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 16: (Un)Freeze scheduler ===&lt;br /&gt;
Use this command to prevent execution of userspace code on the device while dumping or manipulating critical data.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (16)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Lock (1) or unlock (0) the scheduler&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Previous state: Locked (1) or unlocked (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 17: (Un)Suspend thread ===&lt;br /&gt;
Suspend or resume a thread&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (17)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Suspend (1) or resume (0) the thread&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Thread ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Previous state: Suspended (1) or running (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 18: Kill thread ===&lt;br /&gt;
Kill a thread&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (18)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Thread ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 19: Create thread ===&lt;br /&gt;
Create a new thread. This command uses an extended command size of 32 bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (19)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Pointer to thread name or NULL&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Pointer to entry point of the new thread&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Pointer to stack of the new thread&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the new thread&#039;s stack in bytes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 20 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: User thread (0) or system thread (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 24 || style=&amp;quot;text-align:right&amp;quot; | 4 || Priority of the new thread (1-255)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 28 || style=&amp;quot;text-align:right&amp;quot; | 4 || Initial state: Ready (1) or suspended (0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || ID of the created thread (positive) or error code (negative)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 20: Flush CPU caches ===&lt;br /&gt;
Flushes the CPU&#039;s instruction and data caches&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (20)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 21: Execute image ===&lt;br /&gt;
Executes an emBIOS executable image. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (21)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address where the image to be executed is located&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1, does not mean it actually succeeded)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || The return code of execimage(). Use this to check for success.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 22: Read raw boot flash ===&lt;br /&gt;
Reads raw data from the boot flash to RAM. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (22)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to copy the data to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bootflash address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be copied&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 23: Write raw boot flash ===&lt;br /&gt;
Writes raw data to the boot flash. Don&#039;t call this unless you really know what you&#039;re doing. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (23)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bootflash address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be copied (must be an integer multiple of the boot flash width)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 24: Execute firmware ===&lt;br /&gt;
Executes a firmware image at the specified address. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (24)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address where the firmware image to be booted is located&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 25: Hardware key AES ===&lt;br /&gt;
Encrypt or decrypt a buffer using a hardware key. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (25)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || Decrypt (0) / Encrypt (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 2 || Hardware key index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address of the buffer to be encrypted/decrypted&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the buffer to be encrypted/decrypted&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 26: HMAC-SHA1 ===&lt;br /&gt;
Generate a HMAC-SHA1 hash of a buffer. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (26)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address of the buffer to be hashed&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the buffer to be hashed&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Destination address where the hash is stored&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Contributing&amp;diff=3988</id>
		<title>Contributing</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Contributing&amp;diff=3988"/>
		<updated>2011-08-25T12:51:41Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The first question people generally ask about this project is, &amp;quot;How can I help out?&amp;quot;. Here are some ways someone can be useful to the project:&lt;br /&gt;
&lt;br /&gt;
==Developing==&lt;br /&gt;
This is perhaps the most valuable way one can help the project. We get many people who want to help with development but they don&#039;t have the necessary skills. If you don&#039;t, think of it as an opportunity to learn new and worthwhile skills instead of a roadblock. After all, the best way to learn is in the field doing real work. Here are some topics that developers need to know about:&lt;br /&gt;
*&#039;&#039;&#039;ARM assembly&#039;&#039;&#039; - this is probably the hardest topic for beginners to grasp. Resources:&lt;br /&gt;
**[http://simplemachines.it/doc/arm_inst.pdf an ARM primer]&lt;br /&gt;
**[http://simplemachines.it/doc/QRC0001H_rvct_v2.1_arm.pdf ARM Quick Ref]&lt;br /&gt;
**[http://www.lysator.liu.se/~kjell-e/embedded/ARM-ARM.pdf ARM ARM]&lt;br /&gt;
**http://simplemachines.it has great resources for learning ARM&lt;br /&gt;
*&#039;&#039;&#039;C&#039;&#039;&#039; - Used whenever we can avoid using ARM assembly.&lt;br /&gt;
*&#039;&#039;&#039;Python&#039;&#039;&#039; - Python is used often for various scripts we write.&lt;br /&gt;
&lt;br /&gt;
==Vulnerabilities==&lt;br /&gt;
If you&#039;ve ever found a way to get your iPod to crash by corrupting things or inputting weird things, we could use the info to see if the bug is a vulnerability. Some examples of bugs like this are the [[Notes vulnerability]] and the [[Pwnage 2.0]] vulnerability. Right now, we mostly need this for the [[Nano 5G]] since we have no means of execution on that device. If you do find such a bug, report it via private message on IRC to a main developer. DO NOT, I repeat, DO NOT, exclaim the bug to the world on a public IRC channel or mailing list. We made this mistake with the [[Notes vulnerability]]. As a result, Apple patched it on the [[Nano 4G]] and even patched the original firmware on the [[Nano 5G]] (thus making it impossible to downgrade to a vulnerable firmware).&lt;br /&gt;
&lt;br /&gt;
==Writing guides==&lt;br /&gt;
Another way to help out is writing guides like these on the Wiki. Make it easier for new users to get information.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
Testers are always good to have, and its also a good way to help out if you don&#039;t want to spend much time on the project or don&#039;t know much about development. Developers, however, will get tired of working with you if you are clueless about how everything works, so make sure you have a good understanding about the tools you&#039;re testing.&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_4G&amp;diff=3946</id>
		<title>Nano 4G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_4G&amp;diff=3946"/>
		<updated>2011-07-09T15:34:58Z</updated>

		<summary type="html">&lt;p&gt;Farthen: Add status registers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_4g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_4g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8720&lt;br /&gt;
| 339S0049 ARM, K4X56323PI-KGC4, YWE025QH 825, APL0278A00, N1B2HOP 0831&lt;br /&gt;
| ARM1176JZF-S processor. It is definitely worth knowing that this is the exact same processor used in the iTouch 2G. This could mean that some of the same exploits for that could possibly be used. [http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware) Here] is a very interesting page about the S5L8720 processor.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 32MB, probably MDDR. Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/stonline/products/families/sensors/motion_sensors/lis331dl.htm LIS331DL]&lt;br /&gt;
| 33DL, 2827&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| TH58NVG6D1DLA87, U20516, JAPAN, 0826MAE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Probably Cirrus&lt;br /&gt;
| 338S055C, 189N0824, SGP&lt;br /&gt;
| I determined this because the [[Nano 5G]] has a similar chip, which we are sure of the identity. One person lifted this chip and found that the pins connect to the LCD connector. Not much info was given, and it could just be a common ground, but the identity of this chip is still up in the air.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| D1759&lt;br /&gt;
| 338S0687-AC, 08288HBB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reverse Engineering Results==&lt;br /&gt;
Timers: These clockgates have been found to be related to timers: 37, 55, 56, 57, 58, 59, 60, 69, 70, 128, 129, 130, 131, 132, 133, 134, 150 and 151.&lt;br /&gt;
&lt;br /&gt;
==Status registers==&lt;br /&gt;
We dumped all c0 coprocessor registers:&lt;br /&gt;
&lt;br /&gt;
===c0,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x410FB764&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; ARM1176 rev. 4&lt;br /&gt;
===c0,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x1D152152&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; DCache/ICache 16KB each, 4 way associative, 32 bytes line size&lt;br /&gt;
===c0,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No TCM&lt;br /&gt;
===c0,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000800&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Unified TLB, 8 lockable entries&lt;br /&gt;
===c1,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000111&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; ARM/Thumb1/Jazelle support, no Thumb2 support&lt;br /&gt;
===c1,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000011&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Trustzone v1&lt;br /&gt;
===c1,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000033&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports debug model v6.1, both applications processor and secure&lt;br /&gt;
===c1,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No auxiliary features&lt;br /&gt;
===c1,c4===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01130003&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; FCSE, Auxiliary Control register, ARMv6 TCM/DMA, no DMA cache coherency, no multicore cache coherency, VMSA v7&lt;br /&gt;
===c1,c5===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x10030302&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Branch target buffer, Harvard architecture, various cache operations supported (see TRM)&lt;br /&gt;
===c1,c6===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01222100&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; WFI, Data synchronization barrier, Prefetch flush, Data memory barrier, various TLB/cache operations supported (see TRM), no prefetch cache range operation&lt;br /&gt;
&lt;br /&gt;
===c1,c7===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No hierarchical cache maintenance support&lt;br /&gt;
===c2,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00140011&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports BKPT, CDP, CDP2, LDC, LDC2, MCD, MCD2, MRC, MRC2, STC, STC2, MCRR, MCRR2, MRRC, MRRC2, CLZ, SWP and SWPB, doesn&#039;t support division, combined compare and branch or bitfield instructions&lt;br /&gt;
===c2,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x12002111&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports BXJ, BX, BLX, PC loads have BX behavior, supports SXTB, SXTAB, SXTB16, SXTAB16, SXTH, SXTAH, UXTB, &lt;br /&gt;
UXTAB, UXTB16, UXTAB16, UXTH, UXTAH, SRS, RFE, CPS, LDM(2), LDM(3), STM(2) and SETEND&lt;br /&gt;
===c2,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x11231121&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports REV, REV16, REVSH, MRS, MSR, UMULL, UMLAL, UMAAL, SMULL, SMLAL, SMLABB, SMLABT, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLATB, SMLATT, SMLAWB, SMLAWT, SMULBB, SMULBT, SMULTB, SMULTT, SMULWB, SMULWT, SMLAD, SMLADX, SMLALD, SMLALDX, SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR, SMMUL, SMMULR, SMUAD, SMUADX, SMUSD, SMUSDX, MLA, restartable LDM/STM, PLD, LDRD, STRD and Q bit in PSRs&lt;br /&gt;
===c2,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01102131&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports true NOP, Thumb MOV(3)/CPU, LDREX, STREX, LDREXB, LDREXH, LDREXD, STREXB, STREXH, STREXD, CLREX, SVC, PKHBT, PKHTB, QADD16, QADD8, QADDSUBX, QSUB16, QSUB8, QSUBADDX, SADD16, SADD8, SADDSUBX, SEL, SHADD16, SHADD8, SHADDSUBX, SHSUB16, SHSUB8, SHSUBADDX, SSAT, SSAT16, SSUB16, SSUB8, SSUBADDX, SXTAB16, SXTB16, UADD16, UADD8, UADDSUBX, UHADD16, UHADD8, UHADDSUBX, UHSUB16, UHSUB8, UHSUBADDX, UQADD16, UQADD8, UQADDSUBX, UQSUB16, UQSUB8, UQSUBADDX, USAD8, USADA8, USAT, USAT16, USUB16, USUB8, USUBADDX, UXTAB16, UXTB16, QADD, QDADD, QDSUB, QSUB, and the Q and GE[3:0] bits in the PSRs. Does nut support branch table and Thumb2 instructions.&lt;br /&gt;
===c2,c4===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00001141&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports SMC, writeback instructions, shift of loads and stores by 0-3 bits to the left, constant shift options, register controlled shift options, LDRBT, LDRT, STRBT and STRT. No barrier instructions support.&lt;br /&gt;
===c2,c5===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No additional implementation defined instruction set extensions&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-4th-Generation/584/1&lt;br /&gt;
Other:&lt;br /&gt;
*http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware)&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_4G&amp;diff=3943</id>
		<title>Nano 4G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_4G&amp;diff=3943"/>
		<updated>2011-07-06T11:52:04Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_4g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_4g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8720&lt;br /&gt;
| 339S0049 ARM, K4X56323PI-KGC4, YWE025QH 825, APL0278A00, N1B2HOP 0831&lt;br /&gt;
| ARM1136JZF-S processor. It is definitely worth knowing that this is the exact same processor used in the iTouch 2G. This could mean that some of the same exploits for that could possibly be used. [http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware) Here] is a very interesting page about the S5L8720 processor.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 32MB, probably MDDR. Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/stonline/products/families/sensors/motion_sensors/lis331dl.htm LIS331DL]&lt;br /&gt;
| 33DL, 2827&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| TH58NVG6D1DLA87, U20516, JAPAN, 0826MAE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Probably Cirrus&lt;br /&gt;
| 338S055C, 189N0824, SGP&lt;br /&gt;
| I determined this because the [[Nano 5G]] has a similar chip, which we are sure of the identity. One person lifted this chip and found that the pins connect to the LCD connector. Not much info was given, and it could just be a common ground, but the identity of this chip is still up in the air.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| D1759&lt;br /&gt;
| 338S0687-AC, 08288HBB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reverse Engineering Results==&lt;br /&gt;
Timers: These clockgates have been found to be related to timers: 37, 55, 56, 57, 58, 59, 60, 69, 70, 128, 129, 130, 131, 132, 133, 134, 150 and 151.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-4th-Generation/584/1&lt;br /&gt;
Other:&lt;br /&gt;
*http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware)&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Talk:EmCORE&amp;diff=3937</id>
		<title>Talk:EmCORE</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Talk:EmCORE&amp;diff=3937"/>
		<updated>2011-06-30T11:57:09Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Unable to restore Apple firmware on iPod Classic 1G */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Autoboot==&lt;br /&gt;
Is there any way to modify the config so that Rockbox boots automatically after (far example) 10 seconds? [[User:Wintermute|Wintermute]] 13:41, 5 April 2011 (UTC)&lt;br /&gt;
 &lt;br /&gt;
and where the standard software? You can make so that it too was that?[[User:Yar_Chi|Yar_Chi]] 20:30 , 5 April 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ATA error: -11 ==&lt;br /&gt;
&lt;br /&gt;
When i click on rockbox i get this error. Is there anyway to fix this? I just installed EmCORE.&lt;br /&gt;
: For others this was caused by a too old RockBox, so you might wan&#039;t to try upgrading it. --[[User:Benedikt93|Benedikt93]] 08:16, 10 April 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Unable to restore Apple firmware on iPod Classic 1G ==&lt;br /&gt;
&lt;br /&gt;
I need to revert to the Apple firmware but I am unable to enter DFU mode anymore.&lt;br /&gt;
I tried following the instructions for the Classic here: &lt;br /&gt;
http://www.freemyipod.org/wiki/EmCORE_Uninstallation &lt;br /&gt;
&lt;br /&gt;
But the iPod just endlessly resets if I hold down the Menu and Select buttons.  &lt;br /&gt;
Can a uninstall EmCORE option be put in the tools menu like the Nano 2g version? &lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
:Did you plug in your iPod to your computer? Are you sure that you&#039;ve been holding the combo for 10 seconds continuously? Adding an uninstall option in the menu wouldn&#039;t help at all BTW: You would have to restore with iTunes anyway which is only possible through DFU mode on the classic. The classic uninstallation is actually an &#039;&#039;&#039;improvement&#039;&#039;&#039; over the one used for the nano 2g. --[[User:Farthen|Farthen]] 11:57, 30 June 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Talk:EmCORE&amp;diff=3936</id>
		<title>Talk:EmCORE</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Talk:EmCORE&amp;diff=3936"/>
		<updated>2011-06-30T11:56:55Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Unable to restore Apple firmware on iPod Classic 1G */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Autoboot==&lt;br /&gt;
Is there any way to modify the config so that Rockbox boots automatically after (far example) 10 seconds? [[User:Wintermute|Wintermute]] 13:41, 5 April 2011 (UTC)&lt;br /&gt;
 &lt;br /&gt;
and where the standard software? You can make so that it too was that?[[User:Yar_Chi|Yar_Chi]] 20:30 , 5 April 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ATA error: -11 ==&lt;br /&gt;
&lt;br /&gt;
When i click on rockbox i get this error. Is there anyway to fix this? I just installed EmCORE.&lt;br /&gt;
: For others this was caused by a too old RockBox, so you might wan&#039;t to try upgrading it. --[[User:Benedikt93|Benedikt93]] 08:16, 10 April 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Unable to restore Apple firmware on iPod Classic 1G ==&lt;br /&gt;
&lt;br /&gt;
I need to revert to the Apple firmware but I am unable to enter DFU mode anymore.&lt;br /&gt;
I tried following the instructions for the Classic here: &lt;br /&gt;
http://www.freemyipod.org/wiki/EmCORE_Uninstallation &lt;br /&gt;
&lt;br /&gt;
But the iPod just endlessly resets if I hold down the Menu and Select buttons.  &lt;br /&gt;
Can a uninstall EmCORE option be put in the tools menu like the Nano 2g version? &lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
:Did you plug in your iPod to your computer? Are you sure that you&#039;ve been holding the combo for 10 seconds continuously? Adding an uninstall option in the menu wouldn&#039;t help at all BTW: You would have to restore with iTunes anyway which is only possible through DFU mode on the classic. The classic uninstallation is actually an &#039;&#039;&#039;improvement&#039;&#039;&#039; over the one used for the nano 2g.&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=IBugger&amp;diff=3920</id>
		<title>IBugger</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=IBugger&amp;diff=3920"/>
		<updated>2011-05-24T20:55:38Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated|reason=Starting August 3, 2010, development of iBugger has stopped in favor of a more useful debugger in [[emCORE]].}}&lt;br /&gt;
[[File:iBL_greeting.jpg|150px|thumb|right|iBugger Loader]]&lt;br /&gt;
The two iBugger utilities use a Python script that handles USB communication with the iPod.&lt;br /&gt;
===iBugger Loader===&lt;br /&gt;
iBugger Loader is the loader for iBugger, a debugger written by TheSeven. It is a .htm file invoked via the notes exploit. iBugger Loader allows code to be uploaded and data to be dumped through USB. The most recent released version of the iBugger package is located [http://theseven.freemyipod.org/download/snapshot-201003100612-public.7z here]. iBugger Loader can also be used to upload arbitrary unsigned code without space restrictions (besides RAM size), and it removes the hassle of having to boot to disk mode all the time to upload new code.&lt;br /&gt;
&lt;br /&gt;
You can think of iBugger Loader as a simplified version of iBugger that can fit in a notes file. While it is useful for simple operations, its main purpose is to load the iBugger Core. There are iBugger Loader releases for the 2G and 4G Nanos.&lt;br /&gt;
===iBugger (Core)===&lt;br /&gt;
[[File:iBL_logo.jpg|150px|thumb|right|iBugger]]&lt;br /&gt;
iBugger aims to be a fully-featured debugger on the iPod. It is sent to iBugger Loader via USB.&lt;br /&gt;
Current features are:&lt;br /&gt;
* Up- and downloading memory regions&lt;br /&gt;
* Executing uploaded code&lt;br /&gt;
* Dumping the processor&#039;s registers&lt;br /&gt;
* Halting the program and showing/modifying registers and/or memory contents&lt;br /&gt;
* Catching prefetch aborts, data aborts and undefined instruction exceptions, and keeping record of the register contents at the time the abort occurred&lt;br /&gt;
* Debugging console (printf and other functions available to uploaded code, which will print via USB to a console on the attached PC. The client (PC) side is still read-only, but the core would support a bidirectional console. Feel free to add this on the PC side)&lt;br /&gt;
* Very little changes needed to the code being debugged, to allow running it in iBugger&lt;br /&gt;
&lt;br /&gt;
There are iBugger Loader releases for the 2G and 4G Nanos.&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=3896</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=3896"/>
		<updated>2011-05-01T13:04:54Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;iPods have special modes that they can boot into called disk mode, DFU mode, and debug mode.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
Disk mode has existed ever since the iPod has existed. Disk mode is stored in different locations (depends on the iPod model). Disk mode basically makes the iPod behave as a massive storage device, allowing the computer to directly read and write the data flash chip. For more information on how to enter Disk mode, refer to [http://support.apple.com/kb/ht1363 this Apple support document].&lt;br /&gt;
&lt;br /&gt;
[[Image:Diskmode.jpg]] &lt;br /&gt;
&lt;br /&gt;
([http://www.ipodlinux.org/ iPodLinux project])&lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
DFU (Device Firmware Upgrade) mode is a relatively new standard for upgrading firmware that is used in many devices like the OpenMoko and the newer iPods. DFU mode (since nano 2G) is contained in the on-processor bootrom. Newer iPods have both DFU mode and disk mode, while iPod Touch and iPhones have exclusively DFU mode. It is worth noting that DFU mode was implemented at the exact time that Apple switched from PortalPlayer to Samsung processors.&lt;br /&gt;
&lt;br /&gt;
The Nano 2G also has a DFU mode, but this mode can only be entered by shorting testpoints on the circuit board or flashing the NOR with an image with a wrong signature/hash. There&#039;s a NOR DFU mode though, that can be entered by holding down BACK+PLAY right after rebooting the device.&lt;br /&gt;
&lt;br /&gt;
===Getting DFU mode on iPod Classic, Nano 3G and newer ===&lt;br /&gt;
# Make sure your iPod is turned on and connected to your computer.&lt;br /&gt;
# Press and hold the menu and select buttons for between 10 and 15 seconds (The iPod starts to reboot after about 5 seconds, keep holding the buttons until it seems to turn off completely)&lt;br /&gt;
# The display of your iPod should now stay black, and a new USB device called &amp;quot;USB DFU Device&amp;quot; should connect to your PC. &lt;br /&gt;
&lt;br /&gt;
You can use lsusb to determine if your iPod is in DFU mode. 05ac is the Vendor ID (Apple), and the number after the colon is the Product ID. The Product ID depends on whether the iPod is in DFU mode or not. Here is a table of Product IDs:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Device !! Normal !! DFU !! WTF&lt;br /&gt;
|-&lt;br /&gt;
| Nano 2G&lt;br /&gt;
| 1260&lt;br /&gt;
| 1220&lt;br /&gt;
| 1240&lt;br /&gt;
|-&lt;br /&gt;
| Nano 3G&lt;br /&gt;
| 1262&lt;br /&gt;
| 1223/1224&lt;br /&gt;
| 1242&lt;br /&gt;
|-&lt;br /&gt;
| Nano 4G&lt;br /&gt;
| 1263&lt;br /&gt;
| 1225&lt;br /&gt;
| 1243&lt;br /&gt;
|-&lt;br /&gt;
| Nano 5G&lt;br /&gt;
| 1265&lt;br /&gt;
| 1231&lt;br /&gt;
| 1246&lt;br /&gt;
|-&lt;br /&gt;
| Nano 6G&lt;br /&gt;
| 1266&lt;br /&gt;
| 1232&lt;br /&gt;
| 1248&lt;br /&gt;
|-&lt;br /&gt;
| Classic 1G&lt;br /&gt;
| 1261&lt;br /&gt;
| 1223&lt;br /&gt;
| 1241&lt;br /&gt;
|-&lt;br /&gt;
| Classic 2G&lt;br /&gt;
| 1261&lt;br /&gt;
| 1223&lt;br /&gt;
| 1245&lt;br /&gt;
|-&lt;br /&gt;
| Classic 3G&lt;br /&gt;
| 1261&lt;br /&gt;
| 1223&lt;br /&gt;
| 1247&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sources:&lt;br /&gt;
&lt;br /&gt;
http://www.linux-usb.org/usb.ids&lt;br /&gt;
&lt;br /&gt;
http://www.trejan.com/projects/ipod/phobos.html#DFURECOVERY&lt;br /&gt;
&lt;br /&gt;
===DFU utility===&lt;br /&gt;
TheSeven has written libipoddfu.py for communicating with the iPod&#039;s DFU interface. It also has a utility called ipoddfu.py for uploading files in DFU mode. These utilities can be found in [http://svn.freemyipod.org/tools/ipoddfu/ the SVN repository].&lt;br /&gt;
&lt;br /&gt;
==Debug (diagnostics) mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://www.ipodlinux.org/wiki/Key_Combinations&lt;br /&gt;
&lt;br /&gt;
http://daniel.haxx.se/blog/2008/09/03/dfu-mode-on-2nd-gen-nanos/&lt;br /&gt;
&lt;br /&gt;
http://www.usb.org/developers/devclass_docs/DFU_1.1.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.usb.org/developers/devclass_docs/usbdfu10.pdf&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=3895</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=3895"/>
		<updated>2011-05-01T13:03:13Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;iPods have special modes that they can boot into called disk mode, DFU mode, and debug mode.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
Disk mode has existed ever since the iPod has existed. Disk mode is stored in different locations (depends on the iPod model). Disk mode basically makes the iPod behave as a massive storage device, allowing the computer to directly read and write the data flash chip. For more information on how to enter Disk mode (or Reboot), refer to [http://support.apple.com/kb/ht1363 this Apple support document].&lt;br /&gt;
&lt;br /&gt;
[[Image:Diskmode.jpg]] &lt;br /&gt;
&lt;br /&gt;
([http://www.ipodlinux.org/ iPodLinux project])&lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
DFU (Device Firmware Upgrade) mode is a relatively new standard for upgrading firmware that is used in many devices like the OpenMoko and the newer iPods. DFU mode (since nano 2G) is contained in the on-processor bootrom. Newer iPods have both DFU mode and disk mode, while iPod Touch and iPhones have exclusively DFU mode. It is worth noting that DFU mode was implemented at the exact time that Apple switched from PortalPlayer to Samsung processors.&lt;br /&gt;
&lt;br /&gt;
The Nano 2G also has a DFU mode, but this mode can only be entered by shorting testpoints on the circuit board or flashing the NOR with an image with a wrong signature/hash. There&#039;s a NOR DFU mode though, that can be entered by holding down BACK+PLAY right after rebooting the device.&lt;br /&gt;
&lt;br /&gt;
===Getting DFU mode on iPod Classic, Nano 3G and newer ===&lt;br /&gt;
# Make sure your iPod is turned on and connected to your computer.&lt;br /&gt;
# Press and hold the menu and select buttons for between 10 and 15 seconds (The iPod starts to reboot after about 5 seconds, keep holding the buttons until it seems to turn off completely)&lt;br /&gt;
# The display of your iPod should now stay black, and a new USB device called &amp;quot;USB DFU Device&amp;quot; should connect to your PC. &lt;br /&gt;
&lt;br /&gt;
You can use lsusb to determine if your iPod is in DFU mode. 05ac is the Vendor ID (Apple), and the number after the colon is the Product ID. The Product ID depends on whether the iPod is in DFU mode or not. Here is a table of Product IDs:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Device !! Normal !! DFU !! WTF&lt;br /&gt;
|-&lt;br /&gt;
| Nano 2G&lt;br /&gt;
| 1260&lt;br /&gt;
| 1220&lt;br /&gt;
| 1240&lt;br /&gt;
|-&lt;br /&gt;
| Nano 3G&lt;br /&gt;
| 1262&lt;br /&gt;
| 1223/1224&lt;br /&gt;
| 1242&lt;br /&gt;
|-&lt;br /&gt;
| Nano 4G&lt;br /&gt;
| 1263&lt;br /&gt;
| 1225&lt;br /&gt;
| 1243&lt;br /&gt;
|-&lt;br /&gt;
| Nano 5G&lt;br /&gt;
| 1265&lt;br /&gt;
| 1231&lt;br /&gt;
| 1246&lt;br /&gt;
|-&lt;br /&gt;
| Nano 6G&lt;br /&gt;
| 1266&lt;br /&gt;
| 1232&lt;br /&gt;
| 1248&lt;br /&gt;
|-&lt;br /&gt;
| Classic 1G&lt;br /&gt;
| 1261&lt;br /&gt;
| 1223&lt;br /&gt;
| 1241&lt;br /&gt;
|-&lt;br /&gt;
| Classic 2G&lt;br /&gt;
| 1261&lt;br /&gt;
| 1223&lt;br /&gt;
| 1245&lt;br /&gt;
|-&lt;br /&gt;
| Classic 3G&lt;br /&gt;
| 1261&lt;br /&gt;
| 1223&lt;br /&gt;
| 1247&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sources:&lt;br /&gt;
&lt;br /&gt;
http://www.linux-usb.org/usb.ids&lt;br /&gt;
&lt;br /&gt;
http://www.trejan.com/projects/ipod/phobos.html#DFURECOVERY&lt;br /&gt;
&lt;br /&gt;
===DFU utility===&lt;br /&gt;
TheSeven has written libipoddfu.py for communicating with the iPod&#039;s DFU interface. It also has a utility called ipoddfu.py for uploading files in DFU mode. These utilities can be found in [http://svn.freemyipod.org/tools/ipoddfu/ the SVN repository].&lt;br /&gt;
&lt;br /&gt;
==Debug (diagnostics) mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://www.ipodlinux.org/wiki/Key_Combinations&lt;br /&gt;
&lt;br /&gt;
http://daniel.haxx.se/blog/2008/09/03/dfu-mode-on-2nd-gen-nanos/&lt;br /&gt;
&lt;br /&gt;
http://www.usb.org/developers/devclass_docs/DFU_1.1.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.usb.org/developers/devclass_docs/usbdfu10.pdf&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3873</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3873"/>
		<updated>2011-04-15T08:39:34Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;emCORE installation instructions:&#039;&#039;&#039; [[emCORE Installation]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
*{{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
** [[emCORE Monitor Protocol]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUNoiTunes&amp;diff=3872</id>
		<title>EmCORE Installation/iPodClassic/DFUNoiTunes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUNoiTunes&amp;diff=3872"/>
		<updated>2011-04-12T13:16:04Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Make sure that you have .NET Framework 3.5 or later installed&lt;br /&gt;
* Download [http://files.freemyipod.org/misc/winusb_driver.zip this] file and extract it somewhere&lt;br /&gt;
* Download [http://files.freemyipod.org/misc/bootstrap_ipodclassic.exe this] file as well&lt;br /&gt;
* Connect your iPod to your computer&lt;br /&gt;
* Make sure the hold switch is not locked&lt;br /&gt;
* Press and hold the menu and select buttons for between 10 and 15 seconds (The iPod starts to reboot after about 5 seconds, keep holding the buttons until it seems to turn off completely)&lt;br /&gt;
&lt;br /&gt;
The display of your iPod should now stay black, and a new USB device called &amp;quot;USB DFU Device&amp;quot; should connect to your PC.&lt;br /&gt;
&lt;br /&gt;
* Wait for Windows to ask you for a driver for this device&lt;br /&gt;
* Always choose the bottom-most option (don&#039;t search on windows update, choose everything manually) until you get to the list of available drivers&lt;br /&gt;
* Choose &amp;quot;All device types&amp;quot; and click &amp;quot;Next&amp;quot;&lt;br /&gt;
* Click &amp;quot;Have disk&amp;quot;&lt;br /&gt;
* Click &amp;quot;Browse&amp;quot;&lt;br /&gt;
* Navigate to the folder where you extracted the winusb_driver.zip file, and choose the &amp;quot;winusb.inf&amp;quot; file from it&lt;br /&gt;
* Click &amp;quot;Open&amp;quot;&lt;br /&gt;
* Click &amp;quot;OK&amp;quot;&lt;br /&gt;
* Click &amp;quot;Next&amp;quot;&lt;br /&gt;
* Wait for the driver installation to complete&lt;br /&gt;
* Run bootstrap_ipodclassic.exe&lt;br /&gt;
&lt;br /&gt;
Your iPod should now turn on and connect a 64MB drive called &amp;quot;UMSboot&amp;quot;. If it doesn&#039;t, please ask for [[Contact|support]].&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE Installation/iPodClassic/UMSboot|Next step]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUNoiTunes&amp;diff=3871</id>
		<title>EmCORE Installation/iPodClassic/DFUNoiTunes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUNoiTunes&amp;diff=3871"/>
		<updated>2011-04-12T13:14:59Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Make sure that you have .NET Framework 3.5 or later installed&lt;br /&gt;
* Download [http://files.freemyipod.org/misc/winusb_driver.zip this] file and extract it somewhere&lt;br /&gt;
* Download [http://files.freemyipod.org/misc/bootstrap_ipodclassic.exe this] file as well&lt;br /&gt;
* Connect your iPod to your computer&lt;br /&gt;
* Make sure the hold switch is not locked&lt;br /&gt;
* Press and hold the menu and select buttons for between 10 and 15 seconds (The iPod starts to reboot after about 5 seconds, keep holding the buttons until it seems to turn off completely)&lt;br /&gt;
&lt;br /&gt;
The display of your iPod should now stay black, and a new USB device called  &amp;quot;USB DFU Device&amp;quot; should connect to your PC.&lt;br /&gt;
&lt;br /&gt;
* Wait for Windows to ask you for a driver for this device&lt;br /&gt;
* Always choose the bottom-most option (don&#039;t search on windows update, choose everything manually) until you get to the list of available drivers&lt;br /&gt;
* Choose &amp;quot;All device types&amp;quot; and click &amp;quot;Next&amp;quot;&lt;br /&gt;
* Click &amp;quot;Have disk&amp;quot;&lt;br /&gt;
* Click &amp;quot;Browse&amp;quot;&lt;br /&gt;
* Navigate to the folder where you extracted the winusb_driver.zip file, and choose the &amp;quot;winusb.inf&amp;quot; file from it&lt;br /&gt;
* Click &amp;quot;Open&amp;quot;&lt;br /&gt;
* Click &amp;quot;OK&amp;quot;&lt;br /&gt;
* Click &amp;quot;Next&amp;quot;&lt;br /&gt;
* Wait for the driver installation to complete&lt;br /&gt;
* Run bootstrap_ipodclassic.exe&lt;br /&gt;
&lt;br /&gt;
Your iPod should now turn on and connect a 64MB drive called &amp;quot;UMSboot&amp;quot;. If it doesn&#039;t, please ask for [[Contact|support]].&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE Installation/iPodClassic/UMSboot|Next step]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUiTunes&amp;diff=3856</id>
		<title>EmCORE Installation/iPodClassic/DFUiTunes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/DFUiTunes&amp;diff=3856"/>
		<updated>2011-04-03T01:33:58Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Download [http://files.freemyipod.org/misc/bootstrap_ipodclassic_itunes.exe this] file&lt;br /&gt;
* Make sure iTunes is closed&lt;br /&gt;
* Kill &amp;quot;AppleMobileDeviceHelper.exe&amp;quot; using the task manager&lt;br /&gt;
** Open the task manager (press CTRL + SHIFT + ESC)&lt;br /&gt;
** Click on the &amp;quot;Processes&amp;quot; tab&lt;br /&gt;
** Choose &amp;quot;AppleMobileDeviceService.exe&amp;quot;&lt;br /&gt;
** Press the &amp;quot;End Process&amp;quot; button&lt;br /&gt;
** Press &amp;quot;End Process&amp;quot; to confirm&lt;br /&gt;
* Connect your iPod to your computer&lt;br /&gt;
* Make sure the hold switch is not locked&lt;br /&gt;
* Press and hold the menu and select buttons for between 10 and 15 seconds (The iPod will show an apple logo after about 5 seconds, keep holding the buttons until it seems to turn off completely)&lt;br /&gt;
&lt;br /&gt;
The display of your iPod should now stay black, and a new USB device called &amp;quot;Apple Recovery (DFU) USB Driver&amp;quot; should connect to your PC.&lt;br /&gt;
&lt;br /&gt;
* Wait for the driver installation to complete&lt;br /&gt;
* Run bootstrap_ipodclassic_itunes.exe&lt;br /&gt;
&lt;br /&gt;
Your iPod should now turn on and connect a 64MB drive called &amp;quot;UMSboot&amp;quot;. If it doesn&#039;t, please ask for [[Contact|support]].&lt;br /&gt;
&lt;br /&gt;
* [[EmCORE Installation/iPodClassic/UMSboot|Next step]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Contact&amp;diff=3851</id>
		<title>Contact</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Contact&amp;diff=3851"/>
		<updated>2011-03-30T22:39:58Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are various ways to contact the freemyipod team.&lt;br /&gt;
&lt;br /&gt;
Please do &#039;&#039;&#039;not&#039;&#039;&#039; contact us about any iOS device like iPod touch. We don&#039;t do anything with them nor can we help you with anything on these devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
We have some fairly active IRC channels on [http://freenode.net/ freenode].&lt;br /&gt;
Some channels are logged, please check http://logs.freemyipod.org for the logfiles.&lt;br /&gt;
&lt;br /&gt;
=== #freemyipod-support ===&lt;br /&gt;
This is our support channel. &#039;&#039;&#039;If you have questions or problems concerning our software, this is the place to ask.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you have questions about rockbox that are not iPod related, please look for support at [http://www.rockbox.org/ rockbox.org] and if you happen to have any question related to the original iPod firmware please ask elsewhere.&lt;br /&gt;
&lt;br /&gt;
* You can join it on [irc://irc.freenode.net/freemyipod-support #freemyipod-support]. (Web client [http://webchat.freenode.net/?channels=freemyipod-support here])&lt;br /&gt;
&lt;br /&gt;
=== #freemyipod ===&lt;br /&gt;
This channel is for anything else related to the project, mainly focused on development. If you want to get a better knowledge about the technical details of something or want to [[Contributing|contribute]] to the project we will be glad to help you.&lt;br /&gt;
&lt;br /&gt;
* You can join it on [irc://irc.freenode.net/freemyipod #freemyipod]. (Web client [http://webchat.freenode.net/?channels=freemyipod here])&lt;br /&gt;
&lt;br /&gt;
=== #freemyipod-chatter ===&lt;br /&gt;
This is our offtopic channel. Any stuff that is not related to the project should be discussed there.&lt;br /&gt;
&lt;br /&gt;
* You can join it on [irc://irc.freenode.net/freemyipod-chatter #freemyipod-chatter]. (Web client [http://webchat.freenode.net/?channels=freemyipod-chatter here])&lt;br /&gt;
&lt;br /&gt;
== Mailing lists ==&lt;br /&gt;
We have several mailing lists. You can find them on http://lists.freemyipod.org.&lt;br /&gt;
&lt;br /&gt;
=== freemyipod ===&lt;br /&gt;
This list is for questions on the project, development related stuff and everything else related to the project. Feel free to post here if you want to help out (also see [[Contributing]]) or just have a question on something.&lt;br /&gt;
&lt;br /&gt;
* You can register on [http://lists.freemyipod.org/listinfo/freemyipod this page]&lt;br /&gt;
&lt;br /&gt;
=== freemyipod-commits ===&lt;br /&gt;
This is a information-only list that posts a mail whenever a developer commits something into the [[SVN|Subversion repositiory]]. You can not post to this list.&lt;br /&gt;
&lt;br /&gt;
* You can subscribe to it [http://lists.freemyipod.org/listinfo/freemyipod-commits here]&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
If you want to contact one of the core members directly you can send a mail to &amp;lt;member name&amp;gt;@freemyipod.org. Please only use this if you really want to contact this specific member, if you have a general question, suggestion or request please send it to the mailing list.&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/InstalliTunes&amp;diff=3850</id>
		<title>EmCORE Installation/iPodClassic/InstalliTunes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/InstalliTunes&amp;diff=3850"/>
		<updated>2011-03-30T22:21:08Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Please install iTunes now. You can get it from http://www.apple.com/itunes/download/.&lt;br /&gt;
* [[EmCORE Installation/iPodClassic/DFUiTunes|Next step]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/InstalliTunes&amp;diff=3849</id>
		<title>EmCORE Installation/iPodClassic/InstalliTunes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Installation/iPodClassic/InstalliTunes&amp;diff=3849"/>
		<updated>2011-03-30T22:20:43Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Please install iTunes now. You can get it from http://www.apple.com/itunes/download/&lt;br /&gt;
* [[EmCORE Installation/iPodClassic/DFUiTunes|Next step]]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Contact&amp;diff=3847</id>
		<title>Contact</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Contact&amp;diff=3847"/>
		<updated>2011-03-30T22:16:15Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are various ways to contact the freemyipod team.&lt;br /&gt;
&lt;br /&gt;
Please do &#039;&#039;&#039;not&#039;&#039;&#039; contact us about any iOS device like iPod touch. We don&#039;t do anything with them nor can we help you with anything on these devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
We have some fairly active IRC channels on [http://freenode.net/ freenode].&lt;br /&gt;
Some channels are logged, please check http://logs.freemyipod.org for the logfiles.&lt;br /&gt;
&lt;br /&gt;
=== #freemyipod-support ===&lt;br /&gt;
This is our support channel. &#039;&#039;&#039;If you have questions or problems concerning our software, this is the place to ask.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can join it on [irc://irc.freenode.net/freemyipod-support #freemyipod-support]. (Web client [http://webchat.freenode.net/?channels=freemyipod-support here])&lt;br /&gt;
&lt;br /&gt;
=== #freemyipod ===&lt;br /&gt;
This channel is for anything else related to the project, mainly focused on development. If you want to get a better knowledge about the technical details of something or want to [[Contributing|contribute]] to the project we would be glad to help you.&lt;br /&gt;
&lt;br /&gt;
You can join it on [irc://irc.freenode.net/freemyipod #freemyipod]. (Web client [http://webchat.freenode.net/?channels=freemyipod here])&lt;br /&gt;
&lt;br /&gt;
=== #freemyipod-chatter ===&lt;br /&gt;
This is our offtopic channel. Any stuff that is not related to the project should be discussed there.&lt;br /&gt;
&lt;br /&gt;
You can join it on [irc://irc.freenode.net/freemyipod-chatter #freemyipod-chatter]. (Web client [http://webchat.freenode.net/?channels=freemyipod-chatter here])&lt;br /&gt;
&lt;br /&gt;
== Mailing lists ==&lt;br /&gt;
We have several mailing lists. You can find them on http://lists.freemyipod.org.&lt;br /&gt;
&lt;br /&gt;
=== freemyipod ===&lt;br /&gt;
This list is for questions on the project, development related stuff and everything else related to the project. Feel free to post here if you want to help out (also see [[Contributing]]) or just have a question on something.&lt;br /&gt;
&lt;br /&gt;
You can register on [http://lists.freemyipod.org/listinfo/freemyipod this page]&lt;br /&gt;
&lt;br /&gt;
=== freemyipod-commits ===&lt;br /&gt;
This is a information-only list that posts a mail whenever a developer commits something into the [[SVN|Subversion repositiory]]. You can not post to this list.&lt;br /&gt;
&lt;br /&gt;
You can subscribe to it [http://lists.freemyipod.org/listinfo/freemyipod-commits here]&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
If you want to contact one of the core members directly you can send a mail to &amp;lt;member name&amp;gt;@freemyipod.org. Please only use this if you really want to contact this specific member, if you have a general question, suggestion or request please send it to the mailing list.&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=3838</id>
		<title>EmCORE Releases</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=3838"/>
		<updated>2011-03-29T05:42:36Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Release notes / Known issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of all builds of [[emCORE]] that have been released into public so far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please do not use any other builds unless you really know what you&#039;re doing!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==r674: March 25th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* This is the first public release, so please be aware that there might be a bunch of still unknown bugs in the wild.&lt;br /&gt;
* The boot menu occasionally locks up for a still unknown reason. Rebooting the iPod the hard way by holding the menu and select buttons for 5 seconds should help.&lt;br /&gt;
&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Initial public [[emCORE]] release&lt;br /&gt;
===Files===&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/bootstrap-ipodclassic-r674-20110325.dfu bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/fastboot-r674-20110325.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodclassic-r674-20110325.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/rockbox-ipodclassic-r29644-20110325.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/rockbox-ipodnano2g-r29644-20110325.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Status&amp;diff=3789</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Status&amp;diff=3789"/>
		<updated>2011-03-25T17:34:30Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This status is based on the progress the freemyipod team has made so far.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  !! [[Nano 2G]] !! [[Nano 3G]] !! [[Nano 4G]] !! [[Nano 5G]] !! [[Nano 6G|&amp;quot;Nano&amp;quot; 6G]]&amp;lt;ref name=&amp;quot;nano6g&amp;quot;/&amp;gt; !! [[Classic 1G]] !! [[Classic 2G]] !! [[Classic 3G]]&lt;br /&gt;
|-&lt;br /&gt;
| Code execution&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;ref name=&amp;quot;newexploit&amp;quot;/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;ref name=&amp;quot;newexploit&amp;quot;/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[emCORE]]&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UART&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;ref name=&amp;quot;uartnotneeded&amp;quot;/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Unused&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Untested&#039;&#039;&#039;&amp;lt;ref name=&amp;quot;similar8702&amp;quot;/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Backlight&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Piezo&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clickwheel&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Untested&#039;&#039;&#039;&amp;lt;ref name=&amp;quot;similar8702&amp;quot;/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NAND/Hard Drive&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Power management&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Firmware encryption&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;Partially&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;N/A&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;N/A&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;No&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;N/A&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;N/A&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;&#039;&#039;&#039;N/A&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Annotations===&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;newexploit&amp;quot;&amp;gt;We need a new exploit to execute code on this device.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;uartnotneeded&amp;quot;&amp;gt;UART is not really needed here as we can already access the device via USB.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;nano6g&amp;quot;&amp;gt;The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;similar8702&amp;quot;&amp;gt;Should be similar to the iPod Classic 1G, but wasn&#039;t tested on this platform yet.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3788</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3788"/>
		<updated>2011-03-25T17:19:29Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Released Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
*{{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
** [[emCORE Monitor Protocol]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3787</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3787"/>
		<updated>2011-03-25T17:18:59Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
*{{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmBIOS&amp;diff=3786</id>
		<title>EmBIOS</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmBIOS&amp;diff=3786"/>
		<updated>2011-03-25T16:59:54Z</updated>

		<summary type="html">&lt;p&gt;Farthen: discontinue emBIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Outdated|reason=emBIOS was discontinued on {{#dateformat:2011-03-25}} and superseded by [[emCORE]]}}&lt;br /&gt;
[[File:Embios.jpg|115px|thumb|right|emBIOS on the 4G Nano]]&lt;br /&gt;
emBIOS (&#039;&#039;&#039;em&#039;&#039;&#039;bedded &#039;&#039;&#039;BIOS&#039;&#039;&#039;) is best described as a hardware abstraction with threading and debugging capabilities built in. It was superseded by [[emCORE]]. It simplified development immensely by integrating drivers for all the iPods. Before drivers were scattered throughout multiple tools built for multiple iPods. If there was a bug fix for a driver, it would have to be applied in many different places. emBIOS attempted to solve this problem by providing a syscall interface that is standard throughout all iPod generations. This means that a build of a tool can work across generations as long as it is run on a native emBIOS. This allows for maximum code reuse.&lt;br /&gt;
&lt;br /&gt;
emBIOS was designed with portability in mind. It should have also been able to be run on other devices like the BeagleBoard if someone would have ported the necessary drivers.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re curious about how emBIOS worked, you can browse its last SVN revision before its official death [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/&amp;amp;rev=672&amp;amp;peg=672 here].&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
If you want to try it out on your own iPod, there are automatic builds on [http://builds.freemyipod.org/ our buildserver], but you might as well just check out the [[SVN]] and compile it yourself. Here are the basic steps to compiling emBIOS for your iPod:&lt;br /&gt;
* Check out the Freemyipod [[SVN]].&lt;br /&gt;
* Build the UCL tool in the folder tools/ucl of the SVN using make and copy those tools to a place in your path.&lt;br /&gt;
* Make sure you have the arm-eabi toolchain. You can easily build this using the rockboxdev.sh script in the tools directory of the Rockbox SVN.&lt;br /&gt;
* You can compile emBIOS for all targets (&#039;make&#039;) or for only some (&#039;make target1 target2&#039;). You can find out the target names on [http://builds.freemyipod.org/ the buildserver]&lt;br /&gt;
* If your toolchain prefix is not &#039;arm-none-eabi-&#039; but something different (like &#039;arm-elf-eabi-&#039; if you compile it with a toolchain created with the rockboxdev script) you can set the CROSS variable to your prefix.&lt;br /&gt;
&lt;br /&gt;
So to compile for the iPod nano 2g with your toolchain prefixed with arm-elf-eabi- do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CROSS=arm-elf-eabi- make ipodnano2g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
To communicate with emBIOS use the embios.py python script in the [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/trunk/tools/&amp;amp;rev=672&amp;amp;peg=672 /embios/trunk/tools] folder of our SVN. You need to have libusb, python and pyusb 1.x for this to work. Simply run embios,py without any arguments to get a list of possible commands. You can upload and download from/to the memory, read the i2c bus, run emBIOS applications or complete firmware files and much more. Just try it out!&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3683</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3683"/>
		<updated>2011-02-04T18:51:15Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Released Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
* [[emCORE]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE&amp;diff=3682</id>
		<title>EmCORE</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE&amp;diff=3682"/>
		<updated>2011-02-04T12:21:23Z</updated>

		<summary type="html">&lt;p&gt;Farthen: Created page with &amp;quot;emCORE is a fork of emBIOS which aims at even more flexibility. It supports/enforces dynamic memory allocation and the apps are runtime-relocatable. It supports libraries whi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;emCORE is a fork of [[emBIOS]] which aims at even more flexibility. It supports/enforces dynamic memory allocation and the apps are runtime-relocatable. It supports libraries which can extend the functionality of shared code even more. emCORE can be seen as an experiment about how bad memory fragmentation can be on these small devices and about the other side effects of using this approach. It may or may not supersede emBIOS. (well, it probably will but not yet)&lt;br /&gt;
&lt;br /&gt;
These features make emCORE much more powerful and extendable and are a great leap forward to accomplish our goal of making a really flexible but also lightweight operating system for embedded ARM devices with debugging and threading built in.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Getting and building emCORE is pretty much the same as building [[emBIOS]]. There are automatic builds available on [http://builds.freemyipod.org/ our buildserver], too.&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Address_bruteforcing&amp;diff=3675</id>
		<title>Address bruteforcing</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Address_bruteforcing&amp;diff=3675"/>
		<updated>2011-01-27T14:33:43Z</updated>

		<summary type="html">&lt;p&gt;Farthen: Fix some broken links (they were outdated but still broken :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Outdated|reason=This process is no longer needed. Anybody left trying this is wasting their time, but we are preserving it for reference.}}&lt;br /&gt;
&lt;br /&gt;
The best way people can help us out right now is by helping find the correct address we need to jump to in order to execute code. This has already been done on the 2G Nano and the 1G Classic. But now we really need help with the other iPods. Regardless of technical experience, anyone can help us out and get Rockbox and iPodLinux ported to the Nano&#039;s quicker. If you find the correct return address, you can rightfully brag about being the first person to run non-Apple code on that iPod :-). I&#039;d also like to point out that your iPod cannot be bricked by this process and the freemyipod team will gladly help you out on IRC if you encounter any problems.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
OK, so here&#039;s how to help out: first of all download a copy of [http://freemyipod.org/w/data/sweep/sweepfreeze.7z sweepfreeze.7z]. You will also need [http://freemyipod.org/w/data/sweep/sweepcrash.7z sweepcrash.7z]. Don&#039;t be fooled by the small sizes, because uncompressed these archives are ~250MB. Each one contains every return address that can possibly be jumped to. The best way to get the files is to just extract the files you need one by one, rather than the whole thing. Also update your iPod to the latest firmware (except for the 4G Nano - update or [[Firmware_downgrading|downgrade]] to 1.0.3) because we want everyone to have the same version. Once you have these things set up, you are ready to go.&lt;br /&gt;
&lt;br /&gt;
This process involves trying out various sweep files in the .7z archives. The files in sweepfreeze.7z will freeze if code has executed and the files in sweepcrash.7z will crash if code is executed. The files are .htm format. They are prefixed with either an &#039;a&#039; or a &#039;b&#039; and then the address they jump to. You should try only the A files for right now. As you can see, there are many sweep files, and only some of them will do anything interesting. If nobody has started on your iPod yet, start trying files starting at a080a2004.htm, otherwise continue where the others have left off.&lt;br /&gt;
&lt;br /&gt;
Be sure to reserve a range for yourself to test in the table below. (we don&#039;t wont anyone doing the same files at the same time) Reserve small amounts at a time.&lt;br /&gt;
&lt;br /&gt;
== Known problems ==&lt;br /&gt;
Note: if you are using your iPod with a Mac, your note files will not do anything. You will need to reformat the iPod to FAT32, and restore using iTunes on a Windows machine.&lt;br /&gt;
&lt;br /&gt;
As stated above, this will not work with the 4G Nano with the 1.0.4 firmware or the 5G Nano. If you have 1.0.4, see [[Firmware_downgrading|firmware downgrading]].&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
# Connect your iPod to the computer if it isn&#039;t already and browse to it&#039;s Notes directory. Clear out any previous notes files and put a new one from the sweepfreeze.7z archive in there. Unmount your iPod and disconnect it.&lt;br /&gt;
# Reboot your iPod by holding the menu and center buttons for a few seconds. The apple logo will show while it is booting, and when the iPod is done booting you will see 1 of 4 scenarios:&lt;br /&gt;
## The iPod reboots automatically the instant the main menu is shown. This will lead to an endless reboot cycle until the note is taken off&lt;br /&gt;
## The iPod works completely normally. You can navigate menus, play music, etc. without any problems.&lt;br /&gt;
## The iPod seems to work normally ie. you can still navigate menus, but when you try to play a song it freezes or crashes&lt;br /&gt;
## The iPod freezes up entirely.&lt;br /&gt;
# The next step is to get into disk mode in order to remove the notes file. First, you need to reboot by holding menu+center. If your note causes a type #1 behavior, the iPod is always rebooting and you do not need to reboot manually. When the apple logo shows up, hold the play and center buttons until the disk mode screen comes up. Repeat these steps for the next file, but read the paragraph below first!&lt;br /&gt;
&lt;br /&gt;
Most sweep files will usually either crash(#1) or freeze(#4). If you have one/s that is not either of these, record it in the table. If you have one that crashes, you will need to test the same address again with the sweepcrash.7z archive. If the iPod crashes or does anything different this time, it is a good sign that we have execution. Definitely record any of these incidents in the table!&lt;br /&gt;
&lt;br /&gt;
== Table of reserved or tested files ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Username&lt;br /&gt;
! iPod generation&lt;br /&gt;
! Firmware version&lt;br /&gt;
! Windows/Mac&lt;br /&gt;
! Starting filename&lt;br /&gt;
! Ending filename&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| Farthen&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a2004.htm&lt;br /&gt;
| a080a4e04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| watto&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a4f04.htm&lt;br /&gt;
| a080b3f04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| watto&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080b4004.htm&lt;br /&gt;
| a080b7f04.htm&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| kylemsguy&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080c0104.htm&lt;br /&gt;
| a080c1004.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| clueX&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080d0a04.htm&lt;br /&gt;
| a080d0f04.htm&lt;br /&gt;
| Tested (All #1)&lt;br /&gt;
|-&lt;br /&gt;
| clueX&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080d0104.htm&lt;br /&gt;
| a080d1004.htm&lt;br /&gt;
| Tested (All #1, except a080d0304 #4)&lt;br /&gt;
|-&lt;br /&gt;
| kylemsguy&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080d1104.htm&lt;br /&gt;
| a080d2f04.htm&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08010b04.htm&lt;br /&gt;
| a08027f04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08050104.htm&lt;br /&gt;
| a08057f04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| Eosphere46&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a0a04&lt;br /&gt;
| a080a1904&lt;br /&gt;
| Tested  Results Below&lt;br /&gt;
|-&lt;br /&gt;
| Eosphere46&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a2004.htm&lt;br /&gt;
| a080a5904.htm&lt;br /&gt;
| Tested!&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a6104.htm&lt;br /&gt;
| a080c7f04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080d0104.htm&lt;br /&gt;
| a080d7f04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| BlackLotus&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080e0104.htm&lt;br /&gt;
| a080e7f04.htm&lt;br /&gt;
| Reserved&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080f0104.htm&lt;br /&gt;
| a080f7f04.htm&lt;br /&gt;
| Tested&lt;br /&gt;
|-&lt;br /&gt;
| JoeWheeler &lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08100104.htm&lt;br /&gt;
| a08100904.htm&lt;br /&gt;
| Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Table of non-#1 (or non-#4) behaviors ==&lt;br /&gt;
If you leave an entry in here and don&#039;t normally hang out on IRC, send your email address to me at (cwalker32 AT gmail DOT com). This will give us a way to contact you if necessary.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Username&lt;br /&gt;
! iPod generation&lt;br /&gt;
! Firmware version&lt;br /&gt;
! Windows/Mac&lt;br /&gt;
! Sweep filename&lt;br /&gt;
! Behavior type&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Sto&lt;br /&gt;
| 2G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08640568.htm&lt;br /&gt;
| #4&lt;br /&gt;
| Direct jump to buffer&lt;br /&gt;
|-&lt;br /&gt;
| 3mpty&lt;br /&gt;
| 1G Classic&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a2004.htm&lt;br /&gt;
| #4&lt;br /&gt;
| Indirect - an ldmia instruction in firmware portion of ram jumps to the correct buffer location&lt;br /&gt;
|-&lt;br /&gt;
| PharaohsVizier&lt;br /&gt;
| 2G Classic&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Windows&lt;br /&gt;
| a09352f04.htm a09352a04.htm a09352b04.htm&lt;br /&gt;
| #2&lt;br /&gt;
| Unknown, definitely check this out&lt;br /&gt;
|-&lt;br /&gt;
| farthen, cmwslw, kylemsguy&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.4&lt;br /&gt;
| Windows/Mac&lt;br /&gt;
| All&lt;br /&gt;
| #2&lt;br /&gt;
| Not exploitable, as the bug is fixed in 1.0.4&lt;br /&gt;
|-&lt;br /&gt;
| farthen&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Mac&lt;br /&gt;
| All&lt;br /&gt;
| #2&lt;br /&gt;
| Not exploitable because it&#039;s a macpod&lt;br /&gt;
|-&lt;br /&gt;
| Superandy&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08010c04&lt;br /&gt;
| Freezes when I play a song - Please try a08010c04 from http://tinyurl.com/sweepdelay and post behavior :)&lt;br /&gt;
Ok, done that. It does the same thing, freezes. The 1st boot it froze stright away as soon as it loaded the album artwork for the menu. The second time it took about 10 seconds to freeze.&lt;br /&gt;
| Pretty cool&lt;br /&gt;
|-&lt;br /&gt;
| Jwnordquist&lt;br /&gt;
| 2G Nano&lt;br /&gt;
| latest&lt;br /&gt;
| Windows&lt;br /&gt;
| a08010404.htm a08010504.htm a08010d04.htm a08010e04.htm a08010f04.htm a08011204.htm a08011304.htm a08011404.htm a08011904.htm&lt;br /&gt;
| #4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Farthen&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a2104.htm, a080a3b04.htm, a080a3e04.htm, a080a4604.htm, a080a4d04.htm&lt;br /&gt;
| #4&lt;br /&gt;
| I don&#039;t know why I record this, *maybe* it can help. Should be of no interest but who knows... Crasher files have same result as freezer.&lt;br /&gt;
|-&lt;br /&gt;
| Farthen&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a2f04.htm, a080a3a04.htm, &lt;br /&gt;
| #2&lt;br /&gt;
| I don&#039;t know why I record this, *maybe* it can help. Should be of no interest but who knows... Crasher files have same result as freezer.&lt;br /&gt;
|-&lt;br /&gt;
| watto&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a4f04.htm, a080a6c04 to a080a7504 inc.&lt;br /&gt;
| #4&lt;br /&gt;
| Same result with crash and freeze files.&lt;br /&gt;
|-&lt;br /&gt;
| watto&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a5c04.htm&lt;br /&gt;
| #2&lt;br /&gt;
| Same result with crash and freeze files.&lt;br /&gt;
|-&lt;br /&gt;
| kylemsguy&lt;br /&gt;
| 4G Nano&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080c0304.htm&lt;br /&gt;
| #4&lt;br /&gt;
| The results for the sweep files were the same&lt;br /&gt;
|-&lt;br /&gt;
| Eosphere46&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a080a3504.htm a080a0104.htm a080a0204.htm a080a0304.htm a080a0404.htm a080a0504.htm a080a0604.htm a080a0704.htm a080a0804.htm a080a0904.htm&lt;br /&gt;
| #4&lt;br /&gt;
| Same result with crash and freeze files,  they both froze.&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08012f04.htm a08013a04.htm a08015c04.htm a08022f04.htm a08023a04.htm a08025c04.htm&lt;br /&gt;
| #2&lt;br /&gt;
| Same result for both freeze &amp;amp; crash files&lt;br /&gt;
|-&lt;br /&gt;
| tucenaber&lt;br /&gt;
| 3G Nano&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Windows&lt;br /&gt;
| a08012b04.htm a08026104.htm&lt;br /&gt;
| #4 for sweepfreeze #1 for sweepcrash!&lt;br /&gt;
| Seems interesting to me but these are low addresses (below a080a2004)&lt;br /&gt;
|-&lt;br /&gt;
|Eosphere46&lt;br /&gt;
|3G Nano&lt;br /&gt;
|1.1.3&lt;br /&gt;
|Windows&lt;br /&gt;
|a080a2f04.htm a080a3a04.htm a080a5c04.htm&lt;br /&gt;
|#2 for sweepfreeze #2 for sweepcrash&lt;br /&gt;
|Probably nothing much, but check it out.&lt;br /&gt;
|-&lt;br /&gt;
|Eosphere46&lt;br /&gt;
|3G Nano&lt;br /&gt;
|1.1.3&lt;br /&gt;
|Windows&lt;br /&gt;
|a080a4b04.htm&lt;br /&gt;
|VERY Strange..hard to describe &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; &lt;br /&gt;
|Check this out..  Same for the sweepcrash..&lt;br /&gt;
|-&lt;br /&gt;
|Eosphere46&lt;br /&gt;
|3G Nano&lt;br /&gt;
|1.1.3&lt;br /&gt;
|Windows&lt;br /&gt;
|a080a1004.htm&lt;br /&gt;
|#3&lt;br /&gt;
|Freezes when I play a song.  Sweepcrash is #3 too.  Sweepdelay is #3...&lt;br /&gt;
|-&lt;br /&gt;
|KAB123&lt;br /&gt;
|2G Classic&lt;br /&gt;
|2.0.1&lt;br /&gt;
|Windows&lt;br /&gt;
|09196804.htm 08334d04.htm&lt;br /&gt;
|#4 for sweepfreeze, #4 for sweepcrash.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; - I have added video demonstration, d00p3k: [http://www.youtube.com/watch?v=qPNLKXXpmMM]&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Monitor_Protocol&amp;diff=3597</id>
		<title>EmCORE Monitor Protocol</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Monitor_Protocol&amp;diff=3597"/>
		<updated>2011-01-16T20:36:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: Created page with &amp;quot;This article describes the USB communcation protocol of emCORE monitor.   == Endpoints ==  The emCORE Monitor interface contains 4 bulk endpoints, in the following order: * Comma...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes the USB communcation protocol of emCORE monitor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&lt;br /&gt;
The emCORE Monitor interface contains 4 bulk endpoints, in the following order:&lt;br /&gt;
* Command OUT Endpoint&lt;br /&gt;
* Command IN Endpoint&lt;br /&gt;
* Data OUT Endpoint&lt;br /&gt;
* Data IN Endpoint&lt;br /&gt;
&lt;br /&gt;
If not stated otherwise, everything is little endian.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General Structure ==&lt;br /&gt;
Each packet send to the Command OUT Endpoint has a 16 byte header. The first 4 bytes, interpreted as a 32bit little endian word, contain the command ID. The meaning of the other bytes depends on the command. For commands that send data to the device, it will immediately follow that header.&lt;br /&gt;
&lt;br /&gt;
After sending a packet to the Command OUT Endpoint, listen on the Command IN Endpoint for a response. The response also has a 16 byte header, followed by an optional data stage, depending on the command. The first 4 bytes of the header, interpreted as a 32bit word, is the status code, the meaning of the other bytes depends on the command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Status Codes&lt;br /&gt;
|-&lt;br /&gt;
! Status Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || Invalid response, you should bail out when receiving this&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || OK (everything went fine)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 2 || Command not supported&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 3 || Device is busy, retry later (another asynchronous command is already running)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
=== 0: Invalid ===&lt;br /&gt;
Never issue this command. It will be rejected with status code 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 1: Get device information ===&lt;br /&gt;
Use this command to figure out various device properties.&lt;br /&gt;
&lt;br /&gt;
==== Get version information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || SVN Revision Number&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 1 || Major version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 9 || style=&amp;quot;text-align:right&amp;quot; | 1 || Minor version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 10 || style=&amp;quot;text-align:right&amp;quot; | 1 || Patch version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 11 || style=&amp;quot;text-align:right&amp;quot; | 1 || Software Type ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Device Type ID&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Software Types&lt;br /&gt;
|-&lt;br /&gt;
! Software Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 2 || emCORE Debugger&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Hardware Types&lt;br /&gt;
|-&lt;br /&gt;
! Device Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47324e49 || iPod Nano 2G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47334e49 || iPod Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47344e49 || iPod Nano 4G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x4c435049 || iPod Classic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Get packet size information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Get user memory address range ====&lt;br /&gt;
Provides information about the range of memory not used by emCORE itself.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Lower bound (inclusive) of the usable memory range&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Upper bound (exclusive) of the usable memory range&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2: Reset ===&lt;br /&gt;
Reboot the device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Reboot forcibly (0) / Reboot gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Graceful reboots are asynchronous commands. Forced reboots won&#039;t send a response packet before rebooting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually reboots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3: Power off ===&lt;br /&gt;
Power the device off.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Power off forcibly (0) / Shut down gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both variants are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually powers off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4: Read memory ===&lt;br /&gt;
Use this command to read small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (4)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from memory&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5: Write memory ===&lt;br /&gt;
Use this command to write small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (5)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to write&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6: Read memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data IN Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (6)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, read the requested data from the Data IN Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 7: Write memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data OUT Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (7)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, send the data to be written to the Data OUT Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 8: Read from I2C device ===&lt;br /&gt;
Use this command to read from an I2C slave. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (8)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be read (0 means 256)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from the I2C device (undefined if the status code is not 1)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 9: Write to I2C device ===&lt;br /&gt;
Use this command to write to an I2C slave. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (9)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be written (0 means 256)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written to the I2C device&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 10: Read from the USB console ===&lt;br /&gt;
Use this command to get data written to the USB console. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
As long as the console application is running, make sure to issue this request at least once a second. Otherwise the console might start dropping data and inserting an &amp;quot;\n\n[overflowed]\n\n&amp;quot; mark. If you can&#039;t receive any data but need to keep the console from dropping data, issue zero-length read requests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (10)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of valid response bytes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still waiting in the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Valid console data padded with undefined data to meet the requested size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 11: Write to the USB console ===&lt;br /&gt;
Use this command to write data to the USB console. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (11)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of bytes written (the remainder will have to be resent)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still free in the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 12: Write to device&#039;s consoles ===&lt;br /&gt;
Use this command to write data to one or more of the consoles. This is equivalent to the cwrite system call. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (12)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bitmask of consoles to be written to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 13: Read from device&#039;s consoles ===&lt;br /&gt;
Use this command to read data from one or more of the consoles. This is equivalent to the cread system call. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header). This command will &#039;&#039;&#039;not&#039;&#039;&#039; block until there is data available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (13)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bitmask of consoles to be read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes actually read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read, padded with undefined data to meet the requested size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 14: Flush device&#039;s console buffers ===&lt;br /&gt;
Use this command to flush one or more console&#039;s buffers. This is equivalent to the cflush system call.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (14)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bitmask of consoles to be flushed&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 15: Get process information ===&lt;br /&gt;
Use this command to obtain the current state of the scheduler. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (15)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Offset of first byte requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Process information struct version (incremented each time the format changes)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Total size of the process information table&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The requested data, padded with undefined data to meet the requested size, if it exceeds bounds&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 16: (Un)Freeze scheduler ===&lt;br /&gt;
Use this command to prevent execution of userspace code on the device while dumping or manipulating critical data.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (16)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Lock (1) or unlock (0) the scheduler&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Previous state: Locked (1) or unlocked (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 17: (Un)Suspend thread ===&lt;br /&gt;
Suspend or resume a thread&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (17)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Suspend (1) or resume (0) the thread&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Thread ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Previous state: Suspended (1) or running (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 18: Kill thread ===&lt;br /&gt;
Kill a thread&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (18)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Thread ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 19: Create thread ===&lt;br /&gt;
Create a new thread. This command uses an extended command size of 32 bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (19)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Pointer to thread name or NULL&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Pointer to entry point of the new thread&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Pointer to stack of the new thread&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the new thread&#039;s stack in bytes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 20 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: User thread (0) or system thread (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 24 || style=&amp;quot;text-align:right&amp;quot; | 4 || Priority of the new thread (1-255)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 28 || style=&amp;quot;text-align:right&amp;quot; | 4 || Initial state: Ready (1) or suspended (0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || ID of the created thread (positive) or error code (negative)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 20: Flush CPU caches ===&lt;br /&gt;
Flushes the CPU&#039;s instruction and data caches&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (20)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 21: Execute image ===&lt;br /&gt;
Executes an emCORE executable image. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (21)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address where the image to be executed is located&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1, does not mean it actually succeeded)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || The return code of execimage(). Use this to check for success.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 22: Read raw boot flash ===&lt;br /&gt;
Reads raw data from the boot flash to RAM. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (22)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to copy the data to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bootflash address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be copied&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 23: Write raw boot flash ===&lt;br /&gt;
Writes raw data to the boot flash. Don&#039;t call this unless you really know what you&#039;re doing. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (23)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Bootflash address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be copied (must be an integer multiple of the boot flash width)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 24: Execute firmware ===&lt;br /&gt;
Executes a firmware image at the specified address. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (24)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address where the firmware image to be booted is located&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 25: Hardware key AES ===&lt;br /&gt;
Encrypt or decrypt a buffer using a hardware key. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (25)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || Decrypt (0) / Encrypt (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 2 || Hardware key index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address of the buffer to be encrypted/decrypted&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the buffer to be encrypted/decrypted&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 26: HMAC-SHA1 ===&lt;br /&gt;
Generate a HMAC-SHA1 hash of a buffer. This is an asynchronous command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (26)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address of the buffer to be hashed&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the buffer to be hashed&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Destination address where the hash is stored&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3590</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3590"/>
		<updated>2011-01-14T14:47:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Basic skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_4G&amp;diff=3548</id>
		<title>Nano 4G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_4G&amp;diff=3548"/>
		<updated>2011-01-10T16:33:05Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_4g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_4g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8720&lt;br /&gt;
| 339S0049 ARM, K4X56323PI-KGC4, YWE025QH 825, APL0278A00, N1B2HOP 0831&lt;br /&gt;
| ARM1136JZF-S processor. It is definitely worth knowing that this is the exact same processor used in the iTouch 2G. This could mean that some of the same exploits for that could possibly be used. [http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware) Here] is a very interesting page about the S5L8720 processor.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 32MB, probably MDDR. Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/stonline/products/families/sensors/motion_sensors/lis331dl.htm LIS331DL]&lt;br /&gt;
| 33DL, 2827&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| TH58NVG6D1DLA87, U20516, JAPAN, 0826MAE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Probably Cirrus&lt;br /&gt;
| 338S055C, 189N0824, SGP&lt;br /&gt;
| I determined this because the [[Nano 5G]] has a similar chip, which we are sure of the identity. One person lifted this chip and found that the pins connect to the LCD connector. Not much info was given, and it could just be a common ground, but the identity of this chip is still up in the air.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| D1759&lt;br /&gt;
| 338S0687-AC, 08288HBB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Executing Code==&lt;br /&gt;
As of now the only way to execute code on the nano 4g is through the [[Notes vulnerability]] and with [[Pwnage 2.0]]. As we don&#039;t know yet how to initialize the SDRAM on the nano 4g the only useful method is by using the Notes vulnerability. The only working note at the moment is an [[IBugger | iBugger loader]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention&#039;&#039;&#039;: The Notes vulnerability was patched in the v1.0.4 firmware update of the nano 4g. You need to [[Firmware_downgrading | downgrade to v1.0.3]] to still use the Notes vulnerability.&lt;br /&gt;
&lt;br /&gt;
To run iBugger loader download the [http://files.freemyipod.org/targets/iPod%20nano%204g/n4g_ibugger_libusb1.zip nano 4g iBugger package]. To use the scripts in there you need a working [[Toolchain#Python_Scripts | Python Toolchain]]&lt;br /&gt;
&lt;br /&gt;
Simply put the &amp;quot;n4g-ibugger.bootnote&amp;quot; in the &amp;quot;Notes&amp;quot; directory of your iPod and safely remove it. A Mandelbrot set should be displayed on the screen with some text stating it is Unified iBugger loader v0.1.1 running on Nano 4G.&lt;br /&gt;
&lt;br /&gt;
To run [[emBIOS]] (which is most certainly what you want) run these commands:&lt;br /&gt;
 python ibugger.py upload 08000000 embios-ipodnano4g-rXYZ.bin&lt;br /&gt;
 python ibugger.py execute 08000000 0a000000&lt;br /&gt;
You can then use the emBIOS tools to communicate with emBIOS&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-4th-Generation/584/1&lt;br /&gt;
Other:&lt;br /&gt;
*http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware)&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3547</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3547"/>
		<updated>2011-01-10T16:25:43Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Basic skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Bootstrapping sequence]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3546</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3546"/>
		<updated>2011-01-10T16:16:00Z</updated>

		<summary type="html">&lt;p&gt;Farthen: /* Project info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2011-01-08}}  - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
** [[ Toolchain ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Bootstrapping sequence]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Toolchain&amp;diff=3545</id>
		<title>Toolchain</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Toolchain&amp;diff=3545"/>
		<updated>2011-01-10T16:04:59Z</updated>

		<summary type="html">&lt;p&gt;Farthen: First draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To compile our code and to use our Python scripts that communicate with software running on the target like emBIOS you need some tools:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Compiler toolchain for ARM cross compiling --&amp;gt;&lt;br /&gt;
== Python Scripts ==&lt;br /&gt;
To use our Python scripts that communicate with the target via USB you need the following tools:&lt;br /&gt;
* [http://www.libusb.org/wiki/libusb-1.0 LibUSB v1.x]&lt;br /&gt;
* [http://www.python.org/download/ A Python version of 2.6 or higher]. Python 3 is &#039;&#039;&#039;not&#039;&#039;&#039; tested yet and will probably not work.&lt;br /&gt;
* [http://sourceforge.net/projects/pyusb/files/PyUSB%201.0/ PyUSB v1.x]&lt;br /&gt;
&amp;lt;!-- TODO: Installation instructions --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_3G&amp;diff=3358</id>
		<title>Classic 3G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_3G&amp;diff=3358"/>
		<updated>2010-12-27T20:37:18Z</updated>

		<summary type="html">&lt;p&gt;Farthen: cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Front_3g.jpg|500px]]&lt;br /&gt;
[[Image:Back_3g.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
iPod classic MC293, 160GB, silver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No better teardown pictures of the Classic 3G have been found or made by us yet. There is, however, [http://www.ilounge.com/index.php/news/comments/ipod-classic-160gb-changes-new-firmware-engraving/ a basic guide of the non-electronic differences] by iLounge. Since the model number is the same as the [[Classic 2G]], there probably aren&#039;t any worthwhile (if any) in the hardware.&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
By iPod classic 3g we mean the re-introduced 160GB version of the classic which was announced on September 9 2009. It is the same size as the [[Classic 2G]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
|337S3526 8702 N26P9U4 1011 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Cirrus&lt;br /&gt;
| APPLE 338S0394 AICK0952 MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE 338S0445 78030 82 D780113&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|4066T 84453&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3345</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3345"/>
		<updated>2010-12-20T19:28:27Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] alpha on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Bootstrapping sequence]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=3344</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=3344"/>
		<updated>2010-12-20T19:28:04Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Iloader_ipc.jpg|115px|thumb|right|[[iLoader]] on the iPod classic]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project for reverse-engineering iPods with clickwheel (&#039;&#039;&#039;no&#039;&#039;&#039; iOS devices) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox]. Freemyipod is a relaunch of [[Linux4nano]]&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
*{{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
*{{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
*{{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
*{{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
* [[ SVN ]]&lt;br /&gt;
* [[ Todo list ]]&lt;br /&gt;
* [[ Project summary ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[iLoader]]&lt;br /&gt;
* [[iBugger]]&lt;br /&gt;
* [[emBIOS]]&lt;br /&gt;
** [[emBIOS Monitor Protocol]]&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Bootstrapping sequence]]&lt;br /&gt;
* [[Firmware decryption]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G FTL]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
*** [[Nano2G HW analysis]]&lt;br /&gt;
*** [[S5L8701 analysis]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[MPEG movies]]&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:Iloader_ipc.jpg&amp;diff=3343</id>
		<title>File:Iloader ipc.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:Iloader_ipc.jpg&amp;diff=3343"/>
		<updated>2010-12-20T19:27:19Z</updated>

		<summary type="html">&lt;p&gt;Farthen: iLoader on iPod classic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;iLoader on iPod classic&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmBIOS&amp;diff=3336</id>
		<title>EmBIOS</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmBIOS&amp;diff=3336"/>
		<updated>2010-12-09T16:36:23Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Embios.jpg|115px|thumb|right|emBIOS on the 4G Nano]]&lt;br /&gt;
emBIOS (&#039;&#039;&#039;em&#039;&#039;&#039;bedded &#039;&#039;&#039;BIOS&#039;&#039;&#039;) is best described as a hardware abstraction with threading and debugging capabilities built in. It simplifies development immensely by integrating drivers for all the iPods. Before drivers were scattered throughout multiple tools built for multiple iPods. If there was a bug fix for a driver, it would have to be applied in many different places. emBIOS attempts to solve this problem by providing a syscall interface that is standard throughout all iPod generations. This means that a build of a tool can work across generations as long as it is run on a native emBIOS. This allows for maximum code reuse.&lt;br /&gt;
&lt;br /&gt;
emBIOS is designed with portability in mind. It should also be able to run on other devices like the BeagleBoard if someone would port the necessary drivers.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re curious about how emBIOS works, you can browse it&#039;s SVN [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here].&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
If you want to try it out on your own iPod, there are automatic builds on [http://builds.freemyipod.org/ our buildserver], but you might as well just check out the [[SVN]] and compile it yourself. Here are the basic steps to compiling emBIOS for your iPod:&lt;br /&gt;
* Check out the Freemyipod [[SVN]].&lt;br /&gt;
* Build the UCL tool in the folder tools/ucl of the SVN using make and copy those tools to a place in your path.&lt;br /&gt;
* Make sure you have the arm-eabi toolchain. You can easily build this using the rockboxdev.sh script in the tools directory of the Rockbox SVN.&lt;br /&gt;
* You can compile emBIOS for all targets (&#039;make&#039;) or for only some (&#039;make target1 target2&#039;). You can find out the target names on [http://builds.freemyipod.org/ the buildserver]&lt;br /&gt;
* If your toolchain prefix is not &#039;arm-none-eabi-&#039; but something different (like &#039;arm-elf-eabi-&#039; if you compile it with a toolchain created with the rockboxdev script) you can set the CROSS variable to your prefix.&lt;br /&gt;
&lt;br /&gt;
So to compile for the iPod nano 2g with your toolchain prefixed with arm-elf-eabi- do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CROSS=arm-elf-eabi- make ipodnano2g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using==&lt;br /&gt;
To communicate with emBIOS use the embios.py python script in the [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/trunk/tools/ /embios/trunk/tools] folder of our SVN. You need to have libusb, python and pyusb 1.x for this to work. Simply run embios,py without any arguments to get a list of possible commands. You can upload and download from/to the memory, read the i2c bus, run emBIOS applications or complete firmware files and much more. Just try it out!&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Hardware&amp;diff=3335</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Hardware&amp;diff=3335"/>
		<updated>2010-12-07T17:46:55Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a basic comparison of each generation&#039;s main components. For a detailed hardware analysis of a generation, click on it&#039;s link.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Generation !! CPU !! RAM !! size !! Utility flash !! size&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 1G]]&lt;br /&gt;
|PP5021C-TDF&lt;br /&gt;
|[http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG K4M56163PG]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41856 SST39WF400A]&lt;br /&gt;
|512kB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 2G]]&lt;br /&gt;
|S5L8701&lt;br /&gt;
|[http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG K4M56163PG]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41422 SST39WF800A]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 3G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 4G]]&lt;br /&gt;
|S5L8720&lt;br /&gt;
|Integrated&lt;br /&gt;
|32MB&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 5G]]&lt;br /&gt;
|S5L8730&lt;br /&gt;
|Integrated&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|[[Nano 6G|&amp;quot;Nano&amp;quot; 6G]]&lt;br /&gt;
|S5L8723&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 1G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|64MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 2G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|64MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 3G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|64MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Concerning the detailed generation pages: If you can prove or disprove any of these chip names, please let us know: [[Contact]]&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPod_Touch-whatsinside-57.aspx&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPhone-whatsinside-4.aspx&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Dumping_firmware&amp;diff=3334</id>
		<title>Dumping firmware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Dumping_firmware&amp;diff=3334"/>
		<updated>2010-12-07T17:24:24Z</updated>

		<summary type="html">&lt;p&gt;Farthen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The first step to examining iPod&#039;s firmware is getting an image of it. You can retrieve either retrieve an image from the iPod or from the internet.&lt;br /&gt;
&lt;br /&gt;
==From the iPod==&lt;br /&gt;
Getting a firmware dump of a nano 2g is very easy in Linux. Just:&lt;br /&gt;
&lt;br /&gt;
# Make sure the iPod is plugged in.&lt;br /&gt;
# Type &amp;quot;dd if=/dev/sdX1 of=dump.img&amp;quot; in the terminal, but make sure you edit the drive to match your configuration.&lt;br /&gt;
# A dump.img file should be created after a while. If you have a lot of data on your iPod, it can take a very long time.&lt;br /&gt;
&lt;br /&gt;
To dump the firmware of any iPod classic or iPod nano from version 3 on you need to run own code on the device to be able to dump the flash with the firmware code on it.&lt;br /&gt;
&lt;br /&gt;
==From the internet==&lt;br /&gt;
You can download pretty much every firmware version from http://www.felixbruns.de/iPod/firmware/. These files are called .ipsw files, but they are really .zip files in disguise. Open the .ipsw file as a .zip file, and you can view it&#039;s contents:&lt;br /&gt;
&lt;br /&gt;
===1G-3G Nano firmware structure===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Filename !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Firmware-XX.X.X.X || The actual firmware file&lt;br /&gt;
|-&lt;br /&gt;
| manifest.plist || An XML file that gives basic info about the Firmware. Probably for iTunes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===4G Nano firmware structure===&lt;br /&gt;
The 4G Nanos seem to have a different structure with an interesting new file:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Filename !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Firmware.MSE || The actual firmware file&lt;br /&gt;
|-&lt;br /&gt;
| manifest.plist || An XML file that gives basic info about the Firmware. Probably for iTunes.&lt;br /&gt;
|-&lt;br /&gt;
| N58s.bootloader.release.rb3 || This is a very interesting new file that should be checked out! At the end there are clusters of strings that mention things like &amp;quot;Apple iPod Certification Authority&amp;quot;, &amp;quot;S5L8720&amp;quot;, and &amp;quot;Secure Boot&amp;quot;. This means that the 4G uses the S5L8720 processor, the exact same as the iPod Touch 2G. It is also likely that the 4G Nano uses the same Secure Boot technology as iPhone&#039;s and iPod Touch&#039;s.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You can copy over the firmware file and that is the same as extracting a dump.img file from the iPod.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://home.gna.org/linux4nano/download/crypto_synth-1.0.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.ipodlinux.org/wiki/Firmware&lt;br /&gt;
&lt;br /&gt;
http://www.trejan.com/projects/ipod/phobos.html#REGFIRMWARE&lt;/div&gt;</summary>
		<author><name>Farthen</name></author>
	</entry>
</feed>