<?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=Sto</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=Sto"/>
	<link rel="alternate" type="text/html" href="https://freemyipod.org/wiki/Special:Contributions/Sto"/>
	<updated>2026-04-22T01:30:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano2G_HW_analysis&amp;diff=1721</id>
		<title>Nano2G HW analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano2G_HW_analysis&amp;diff=1721"/>
		<updated>2009-07-12T05:02:47Z</updated>

		<summary type="html">&lt;p&gt;Sto: /* getting code execution ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Top_annote.jpg|200px|thumb|Top layer, including JTAG]]&lt;br /&gt;
[[File:Bot_annote.jpg|200px|thumb|Bottom layer]]&lt;br /&gt;
[[File:2G_frt_annotation.png|300px]]&lt;br /&gt;
[[File:2G_bck_annotation.png|300px]]&lt;br /&gt;
== previous work ==&lt;br /&gt;
&lt;br /&gt;
See [[Hardware#2G_Nano_2]].&lt;br /&gt;
&lt;br /&gt;
== SOC analysis ==&lt;br /&gt;
&lt;br /&gt;
[[S5L8701_analysis]]&lt;br /&gt;
&lt;br /&gt;
== Circuit analysis ==&lt;br /&gt;
&lt;br /&gt;
After desoldering all components, the circuit was analyzed with a continuity tester.&lt;br /&gt;
&lt;br /&gt;
Small test needles (nailbed needles are great) were used for contacting.&lt;br /&gt;
&lt;br /&gt;
For easing the search, a more coarse search was first performed by a novel method : soldering a coil wire to one end, and moving a iron wool pad over the rest of the PCB until the tester beeps. After finding a spot, the needle allows to find the exact pad.&lt;br /&gt;
&lt;br /&gt;
Not all connection were routed, mainly the connections to the S5L8701 SOC.&lt;br /&gt;
&lt;br /&gt;
Results are a [http://f4eru.free.fr/8701/ detailed pinout of the 8701]&lt;br /&gt;
&lt;br /&gt;
See also [[S5L8701_analysis]].&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
&lt;br /&gt;
The jtag was found after searching with a jtag bruteforce scanner i wrote.(to be published later)&lt;br /&gt;
There were a lot of problems, including the scanner not working properly, and a nTRST pin. (still cannot understand why).&lt;br /&gt;
&lt;br /&gt;
But now we have the locations of the pins : see picture [[Image:Top_annote.jpg|40px|thumb|pin locations]].&lt;br /&gt;
&lt;br /&gt;
The pins are basically available on the DOCK connector after putting in place some jumpers (2 for nTRST, 1 for other pins).&lt;br /&gt;
&lt;br /&gt;
After connecting a xilinx paralell cable, and installing openwince, we can try to connect to the JTAG :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The screen freezes directly when we use the JTAG.&#039;&#039;&#039; This seems to be a protection against hackers, but it could also be an issue with openocd.&lt;br /&gt;
In fact, the ARM 940T processor is still fully functionnal, but it gets disconnected from the main bus, all memories are not reachable any more. The only memory preserved are the Data and instruction caches.&lt;br /&gt;
&lt;br /&gt;
== JTAG cache dumps ==&lt;br /&gt;
&lt;br /&gt;
As the caches are mainly alive, we focused first on dumping whatever the cache contained. As the caches are mostly not activated through the boot cycle, we made a lot of cache dumps (Dcache only can be dumped, the Icache can only give the indexes).&lt;br /&gt;
&lt;br /&gt;
We used some [http://f4eru.free.fr/8701/openocd_config.zip openocd and bash scripts]. The command &amp;quot;dc&amp;quot; dumps the Dcache, &amp;quot;ic&amp;quot; shows the icache indexes. Be careful, these values can be corrupt due to the mem bus disconnection. We used statistics on many dumps to have helpful dumps (look at [http://f4eru.free.fr/8701/openocd_config.zip dumpsoorter.py]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the DLC5 cable was modified to include a nSRST pin, and openocd was recompiled for this. It is a desirable feature to have a reset. nTrst was simply tied to the 3.0V power supply, it is just not necessary.&lt;br /&gt;
Also, one important thing is to cut the power supply during reset, with a MOSFET, for example. If this is not done, the ipod can often go to a &amp;quot;broken battery&amp;quot; state, where the processor thinks the successive resets are due to a defective battery.&lt;br /&gt;
&lt;br /&gt;
[http://f4eru.free.fr/8701/dump_example.txt Dump example]&lt;br /&gt;
&lt;br /&gt;
== getting code execution ? ==&lt;br /&gt;
&lt;br /&gt;
[[Nano2G getting exec]]&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=1720</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=1720"/>
		<updated>2009-07-12T05:02:05Z</updated>

		<summary type="html">&lt;p&gt;Sto: /* iPod Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the wiki page for the Linux4nano project. [http://home.gna.org/linux4nano/ Here] is the project homepage, and [http://mail.gna.org/public/linux4nano-dev/ here] is a link to the project&#039;s mailing list. Linux4nano also has a fairly active IRC channel, #linux4nano-dev @ irc.freenode.net. IRC logs are located [http://logs.clustur.com/%23linux4nano-dev/ here]. [http://theiphonewiki.com/wiki/index.php?title=Main_Page The iPhone Wiki] is an excellent resource to use when researching, because much of the hardware and software aspects are similar to that of the iPod. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feel free to add information and make changes!&#039;&#039;&#039; This is a wiki after all. Just make sure you are logged in before you try to edit.&lt;br /&gt;
&lt;br /&gt;
==This wiki==&lt;br /&gt;
[[About]]&lt;br /&gt;
==iPod Firmware==&lt;br /&gt;
===Obtaining===&lt;br /&gt;
[[Dumping firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Extracting firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Disassembling bootrom]]&lt;br /&gt;
&lt;br /&gt;
[[Disassembling firmware]]&lt;br /&gt;
===Analysis===&lt;br /&gt;
[[Bootrom]]&lt;br /&gt;
&lt;br /&gt;
[[Firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Bootstrapping sequence]]&lt;br /&gt;
&lt;br /&gt;
[[Firmware encryption]]&lt;br /&gt;
&lt;br /&gt;
=== 2G hacking and unencrypted firmware analysis ===&lt;br /&gt;
[[Nano2G getting exec]]&lt;br /&gt;
&lt;br /&gt;
==iPod Hardware==&lt;br /&gt;
[[Hardware]]&lt;br /&gt;
&lt;br /&gt;
[[Hardware annotation]]&lt;br /&gt;
&lt;br /&gt;
[[Nano2G%2BHW%2Banalysis]] and [[S5L8701 analysis]]&lt;br /&gt;
&lt;br /&gt;
[[Modes]]&lt;br /&gt;
&lt;br /&gt;
[[Chronology]]&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Notes_vulnerability&amp;diff=1719</id>
		<title>Notes vulnerability</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Notes_vulnerability&amp;diff=1719"/>
		<updated>2009-07-12T04:59:29Z</updated>

		<summary type="html">&lt;p&gt;Sto: Created page with &amp;#039;== Notes vulnerability == === Basics ===  The notes functionnality is basically a htm browser included in the ipod. Some doc can be found [http://developer.apple.com/ipod/iPodNot...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Notes vulnerability ==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
&lt;br /&gt;
The notes functionnality is basically a htm browser included in the ipod.&lt;br /&gt;
Some doc can be found [http://developer.apple.com/ipod/iPodNotesFeatureGuideCB.pdf here].&lt;br /&gt;
&lt;br /&gt;
Basic rules are : &lt;br /&gt;
*64kB files are loaded just after the boot of the nano&lt;br /&gt;
*each file is limited to 4kB&lt;br /&gt;
*the links point to other files, or to other notes, or to media files.&lt;br /&gt;
*the link is limited to 256 chars. apple documents this limit, but they don&#039;t say it can cause a buffer overflow ;)&lt;br /&gt;
&lt;br /&gt;
There seem to be 2 buffers : one which is a perfect copy of the disc file, including BOM, etc..., and one conteining many files, but after UTF16 processing&lt;br /&gt;
&lt;br /&gt;
=== File loading ===&lt;br /&gt;
&lt;br /&gt;
The htm file is converted to UTF-16 first. This limits the possible char sequences.&lt;br /&gt;
The best thing to to have most charset possibilities is  encode the exploit directly to [http://unicode.org/faq/utf_bom.html#utf16-2 UTF16].&lt;br /&gt;
&lt;br /&gt;
forbidden values are :&lt;br /&gt;
*FE FF : UTF16 BOM&lt;br /&gt;
*D8 00 up to DF FF : not checked what happens if inserting them&lt;br /&gt;
*00 00 : would stop string processing&lt;br /&gt;
&lt;br /&gt;
The opcodes to execute will be placed in the body of the htm file.&lt;br /&gt;
&lt;br /&gt;
=== Link overflow ===&lt;br /&gt;
&lt;br /&gt;
After loading the file, the links are then checked against the file system.&lt;br /&gt;
Many modified copiues of this string are present on the stack.&lt;br /&gt;
We could identify the most important steps of this process, until the string overflow in the stack (order could be a little different):&lt;br /&gt;
&lt;br /&gt;
*Fist, the link is extracted from the file, and copied to some heap or fixed buffers&lt;br /&gt;
*The link is converted to UTF8. Every char &amp;gt;7F is encoded in many bytes&lt;br /&gt;
*Then it is passed through an uppercase function&lt;br /&gt;
*The URL encoding is decoded : %xx values are converted to their equivalent (limited to valid UTF8 or the like)&lt;br /&gt;
*Finally, this link is copied in a limited buffer which is located on the stack. By putting a return adress repetitively in the link, the processor will jump to this adress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For conveninece, the return adress is always encoded using %xx URL encodings. This avoids problems with some special chars and with lowercase chars. Possible values are 00 &amp;lt; xx &amp;lt;= 7F.&lt;br /&gt;
&lt;br /&gt;
== Exploiting, getting execution ==&lt;br /&gt;
&lt;br /&gt;
To exploit, we used [[Nano2G%2BHW%2Banalysis|JTAG]] to determine the correct paddings and return adresses of the buffers.&lt;br /&gt;
&lt;br /&gt;
In my case, i had to put a second file to influence the buffer&#039;s location, in order to have a return adress which fits an UTF8 (no byte of the return adress &amp;gt;7F).&lt;br /&gt;
&lt;br /&gt;
An example of a working overflow file set [http://f4eru.free.fr/8701/Notes_overflow_example.zip here].&lt;br /&gt;
the file &amp;quot;Brokenlink.htm&amp;quot; contains first an UTF16 BOM, then &amp;quot;AA&amp;quot; as padding, then the overflowing link (return addr is 08640D60), then a NOP (opcode E1A01001) landing zone, and finlly a &amp;quot;while(1);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This while(1) does not freeze or reset the ipod, but instead just crashes the background task. You can still scroll the menus, but hte ipod will freeze as soon as you press &amp;quot;play&amp;quot; or if you enter the notes menu, etc...&lt;br /&gt;
&lt;br /&gt;
The processor arrives to the notes in supervisor state, with interrupts activated (menu scrolling), etc.&lt;br /&gt;
Caches are activated, recommendation is to disable them if making complex IO &amp;amp; DMA stuff, else they can interfere.&lt;br /&gt;
&lt;br /&gt;
== Dumping memories ==&lt;br /&gt;
&lt;br /&gt;
For dumping, first the cache was used (JTAG dumps), but very soon it turned out that the UART is more flexible.&lt;br /&gt;
The UART is exactly the same than described in the datasheet.&lt;br /&gt;
&lt;br /&gt;
See [http://pargon.nl/?p=6 here] how to build an UART cable.&lt;br /&gt;
&lt;br /&gt;
my complete setup is a little bit more complex : [[File:Nanofighter.jpg|200px|thumb|left|nanofighter]]&lt;br /&gt;
*left board : DLC5 jtag interface, modified for reset and USB switching&lt;br /&gt;
*right board : some programmer board, only the ST232 is used&lt;br /&gt;
*upper board : this was the jtag scanner, now only the power supply and 5V regulator are used&lt;br /&gt;
*middle board : all the switching stuff&lt;br /&gt;
&lt;br /&gt;
To automatically enter DFU mode, i wired transistors to the USB 5V line, and to the &amp;quot;play&amp;quot; and &amp;quot;enter&amp;quot; buttons of the clickwheel.&lt;br /&gt;
&lt;br /&gt;
== USB ==&lt;br /&gt;
Because UART needs HW, USB will be used to debug in the future&lt;br /&gt;
&lt;br /&gt;
== Analysis of the dumps ==&lt;br /&gt;
&lt;br /&gt;
to be documented&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:Nanofighter.jpg&amp;diff=1718</id>
		<title>File:Nanofighter.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:Nanofighter.jpg&amp;diff=1718"/>
		<updated>2009-07-12T04:51:02Z</updated>

		<summary type="html">&lt;p&gt;Sto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano2G_HW_analysis&amp;diff=1717</id>
		<title>Nano2G HW analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano2G_HW_analysis&amp;diff=1717"/>
		<updated>2009-07-12T03:44:08Z</updated>

		<summary type="html">&lt;p&gt;Sto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Top_annote.jpg|200px|thumb|Top layer, including JTAG]]&lt;br /&gt;
[[File:Bot_annote.jpg|200px|thumb|Bottom layer]]&lt;br /&gt;
[[File:2G_frt_annotation.png|300px]]&lt;br /&gt;
[[File:2G_bck_annotation.png|300px]]&lt;br /&gt;
== previous work ==&lt;br /&gt;
&lt;br /&gt;
See [[Hardware#2G_Nano_2]].&lt;br /&gt;
&lt;br /&gt;
== SOC analysis ==&lt;br /&gt;
&lt;br /&gt;
[[S5L8701_analysis]]&lt;br /&gt;
&lt;br /&gt;
== Circuit analysis ==&lt;br /&gt;
&lt;br /&gt;
After desoldering all components, the circuit was analyzed with a continuity tester.&lt;br /&gt;
&lt;br /&gt;
Small test needles (nailbed needles are great) were used for contacting.&lt;br /&gt;
&lt;br /&gt;
For easing the search, a more coarse search was first performed by a novel method : soldering a coil wire to one end, and moving a iron wool pad over the rest of the PCB until the tester beeps. After finding a spot, the needle allows to find the exact pad.&lt;br /&gt;
&lt;br /&gt;
Not all connection were routed, mainly the connections to the S5L8701 SOC.&lt;br /&gt;
&lt;br /&gt;
Results are a [http://f4eru.free.fr/8701/ detailed pinout of the 8701]&lt;br /&gt;
&lt;br /&gt;
See also [[S5L8701_analysis]].&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
&lt;br /&gt;
The jtag was found after searching with a jtag bruteforce scanner i wrote.(to be published later)&lt;br /&gt;
There were a lot of problems, including the scanner not working properly, and a nTRST pin. (still cannot understand why).&lt;br /&gt;
&lt;br /&gt;
But now we have the locations of the pins : see picture [[Image:Top_annote.jpg|40px|thumb|pin locations]].&lt;br /&gt;
&lt;br /&gt;
The pins are basically available on the DOCK connector after putting in place some jumpers (2 for nTRST, 1 for other pins).&lt;br /&gt;
&lt;br /&gt;
After connecting a xilinx paralell cable, and installing openwince, we can try to connect to the JTAG :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The screen freezes directly when we use the JTAG.&#039;&#039;&#039; This seems to be a protection against hackers, but it could also be an issue with openocd.&lt;br /&gt;
In fact, the ARM 940T processor is still fully functionnal, but it gets disconnected from the main bus, all memories are not reachable any more. The only memory preserved are the Data and instruction caches.&lt;br /&gt;
&lt;br /&gt;
== JTAG cache dumps ==&lt;br /&gt;
&lt;br /&gt;
As the caches are mainly alive, we focused first on dumping whatever the cache contained. As the caches are mostly not activated through the boot cycle, we made a lot of cache dumps (Dcache only can be dumped, the Icache can only give the indexes).&lt;br /&gt;
&lt;br /&gt;
We used some [http://f4eru.free.fr/8701/openocd_config.zip openocd and bash scripts]. The command &amp;quot;dc&amp;quot; dumps the Dcache, &amp;quot;ic&amp;quot; shows the icache indexes. Be careful, these values can be corrupt due to the mem bus disconnection. We used statistics on many dumps to have helpful dumps (look at [http://f4eru.free.fr/8701/openocd_config.zip dumpsoorter.py]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the DLC5 cable was modified to include a nSRST pin, and openocd was recompiled for this. It is a desirable feature to have a reset. nTrst was simply tied to the 3.0V power supply, it is just not necessary.&lt;br /&gt;
Also, one important thing is to cut the power supply during reset, with a MOSFET, for example. If this is not done, the ipod can often go to a &amp;quot;broken battery&amp;quot; state, where the processor thinks the successive resets are due to a defective battery.&lt;br /&gt;
&lt;br /&gt;
[http://f4eru.free.fr/8701/dump_example.txt Dump example]&lt;br /&gt;
&lt;br /&gt;
== getting code execution ? ==&lt;br /&gt;
&lt;br /&gt;
[[]]&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Hardware&amp;diff=1698</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Hardware&amp;diff=1698"/>
		<updated>2009-06-14T09:04:55Z</updated>

		<summary type="html">&lt;p&gt;Sto: /* 2G Nano */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Although iPods have many other components, here we are only listing the components that might be relavent to cracking firmware encryption. If you have any suggestions for any other components to add, just post on the talk page or IRC. Links to datasheets are important if they can be found. For a visual hardware reference, visit the [[Hardware annotation]] page.&lt;br /&gt;
&lt;br /&gt;
For information about the S5L8700 datasheet, see the [[S5L8700 datasheet]] page.&lt;br /&gt;
==1G Nano==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Component !! Details&lt;br /&gt;
|-&lt;br /&gt;
| CPU &lt;br /&gt;
| Portal Player PP5021C-TDF. This is the last Nano that used a PortalPlayer processor before Apple started using Samsung. If anybody knows of a datasheet for this, please add a link to it.&lt;br /&gt;
|-&lt;br /&gt;
| RAM&lt;br /&gt;
| [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=136&amp;amp;partnum=K4M56163PG Samsung K4M56163PG] - A datasheet for this Mobile SDRAM chip can be found [http://pdf1.alldatasheet.net/datasheet-pdf/view/168204/SAMSUNG/K4M56163PG.html here].&lt;br /&gt;
|-&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products.xhtml/parallel_flash/39/x16/SST39WF400A SST39WF400A]. This chip is documented very well as is a similar chip on the 2G Nano.&lt;br /&gt;
|}&lt;br /&gt;
==2G Nano==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Component !! Details&lt;br /&gt;
|-&lt;br /&gt;
| CPU&lt;br /&gt;
| [[S5L8700 datasheet|Samsung S5L8701]] System On Chip (SoC), includes ARM940T(SAM44X?) central processor, advanced DSP, 50kb boot ROM, 256kb SRAM, external RAM, flash and LCD controllers, USB(1.1-host; 2.0-function) and some other parts. Package: [http://www.samsung.com/global/business/semiconductor/support/PackageInformation/downloads/SystemLSI/FBGA/232_FBGA_1010_12_05.pdf 232-pin FBGA 10x10mm] or 224/226-pin 9x9mm. Similar chips: [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=212&amp;amp;partnum=SA58700 SA58700X07].  Some documentation available for the S5L series can be found [[S5L8700 datasheet|here]]. The processor itself is Apple-branded and marked 337S3291 8701. &lt;br /&gt;
|-&lt;br /&gt;
| RAM&lt;br /&gt;
| [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=136&amp;amp;partnum=K4M56163PG Samsung K4M56163PG] - [http://pdf1.alldatasheet.net/datasheet-pdf/view/168204/SAMSUNG/K4M56163PG.html here] is the datasheet. This is the same chip used in the iPod 1G Nano. Sometimes the Qimonda [http://www.alldatasheet.com/datasheet-pdf/pdf/207179/QIMONDA/HYE18L256169BFX-7.5.html HYE18L256] chip is used instead.&lt;br /&gt;
|-&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products.xhtml/parallel_flash/39/x16/SST39WF800A SST SST39WF800A],stores Disk Mode, Diagnostic Mode and the code to flash this chip. Tof has [http://home.gna.org/linux4nano/dumping_SST39WF800A.html managed to extract] this data and the dump can be obtained by emailing Emmanuel Fleury. All of the contents in the utility flash chip are encrypted from now on.&lt;br /&gt;
|-&lt;br /&gt;
| DSP &lt;br /&gt;
| Combination of Samsung 16-bit CalmRisc16 and Samsung 24-bit CalmMAC2424. Performance - up to 40MIPS (24x24 operation per cycle). During boot performs [[Bootstrapping sequence|data verification and decryption]].&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==3G Nano==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Component !! Details&lt;br /&gt;
|-&lt;br /&gt;
| CPU &lt;br /&gt;
| [[S5L8700 datasheet|Samsung S5L8701]] ARM940T processor. The package itself is Apple-branded and marked 337S3473 8702.&lt;br /&gt;
|-&lt;br /&gt;
| RAM&lt;br /&gt;
| Like the flash chip, the memory also varies. The most popular chip seems to be the [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=137&amp;amp;partnum=K4X56163PG&amp;amp;&amp;amp;ppmi=1209 K4X56163PI]. Another similar one that is sometimes used is the [http://www.qimonda.com/mobile-ram/ddr-18/index.html Qimonda HYE18M169CX75].&lt;br /&gt;
|-&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products.xhtml/serial_flash/25/3.0V/SST25VF080B SST25VF080B]. Like the other SST chips, this one is also extremely well documented.&lt;br /&gt;
|}&lt;br /&gt;
==4G Nano==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Component !! Details&lt;br /&gt;
|-&lt;br /&gt;
| CPU &lt;br /&gt;
| [[S5L8700 datasheet|Samsung S5L8701]] ARM940T 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;
| RAM&lt;br /&gt;
| Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| Possibly the chip on the lower part of the 4G board? See [[Hardware annotation]].&lt;br /&gt;
|}&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware)&lt;br /&gt;
&lt;br /&gt;
http://www.ipodlinux.org/wiki/Generations (Be careful! This is extremely inaccurate.)&lt;br /&gt;
&lt;br /&gt;
http://www.rockbox.org/twiki/bin/view/Main/SamsungSA58#SA58700_codename_Blues&lt;br /&gt;
===1G Nano===&lt;br /&gt;
http://www2.electronicproducts.com/Apple_iPod_nano-whatsinside-2.aspx&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/apple/reviews/2005/09/nano.ars/4&lt;br /&gt;
&lt;br /&gt;
[http://pc.watch.impress.co.jp/docs/2005/0908/nano21.jpg Image of the 1G Nano board]&lt;br /&gt;
&lt;br /&gt;
[http://www.ipodlinux.org/wiki/Generations#iPod_Nano_.28Nano1G.29] - The pictures listed&lt;br /&gt;
===2G Nano===&lt;br /&gt;
[[Nano2G%2BHW%2Banalysis]]&lt;br /&gt;
&lt;br /&gt;
[[S5L8701 analysis]]&lt;br /&gt;
&lt;br /&gt;
http://home.gna.org/linux4nano/download/hardware_synth-1.0.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.ifixit.com/Guide/First-Look/iPod-Nano-2nd-Generation/592/1&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/apple/reviews/2006/09/ipod-2g.ars/4&lt;br /&gt;
&lt;br /&gt;
===3G Nano===&lt;br /&gt;
http://www2.electronicproducts.com/Applie_iPod_Nano_(4GB)_3rd_Generation-whatsinside-16.aspx#&lt;br /&gt;
&lt;br /&gt;
http://content.techrepublic.com.com/2346-13636_11-170826-1.html&lt;br /&gt;
&lt;br /&gt;
http://www.ifixit.com/Guide/First-Look/iPod-Nano-3rd-Generation/594/1&lt;br /&gt;
&lt;br /&gt;
http://insidetronics.blogspot.com/2007/09/teardown-ipod-nano-3g.html&lt;br /&gt;
&lt;br /&gt;
[http://www.combert-elec.com/www/bookpic/200810916515460624.jpg Image of 3G Nano board]&lt;br /&gt;
===4G Nano===&lt;br /&gt;
http://www.ifixit.com/Guide/First-Look/iPod-Nano-4th-Generation/584/1&lt;br /&gt;
===Other (for comparison)===&lt;br /&gt;
http://www2.electronicproducts.com/Apple_iPod_Touch-whatsinside-57.aspx&lt;br /&gt;
&lt;br /&gt;
http://www2.electronicproducts.com/Apple_iPhone-whatsinside-4.aspx&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1697</id>
		<title>S5L8701 analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1697"/>
		<updated>2009-06-14T08:51:45Z</updated>

		<summary type="html">&lt;p&gt;Sto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg|200px|thumb|View of the bonding via X-ray]]&lt;br /&gt;
[[File:S5L8701_top_layer_bottom_view_2.jpg|200px|thumb|View of the top layer]]&lt;br /&gt;
[[File:S5L8701 bottom layer bot view 2.jpg|200px|thumb|View of the bottom layer]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The samsung S5L8701 is the SOC of the IN2G. This chip is supposed to be close to the 8700 used on some concurrent MP3 players.&lt;br /&gt;
&lt;br /&gt;
We currently know nearly nothing about the differences of both chips, and the further evolutions. There is probably a small unencrypted boot ROM inside, which would be very useful for integrating user SW. Probably containing crypto information.&lt;br /&gt;
Knowing the location of some JTAG pins could be very helpful.&lt;br /&gt;
&lt;br /&gt;
There is an OpenOffice Calc document describing possible pinouts [http://f4eru.free.fr/8701/ here]. There is also [https://mail.gna.org/public/linux4nano-dev/2009-05/msg00003.html tof&#039;s mailing list post].&lt;br /&gt;
&lt;br /&gt;
== Structure of the packaging ==&lt;br /&gt;
&lt;br /&gt;
The chip is a 226-pin TFBGA with a pitch of 0.5mm.&lt;br /&gt;
This is the structure of a BGA package : [http://www.freepatentsonline.com/6569694-0-display.jpg BGA package]&lt;br /&gt;
&lt;br /&gt;
The chip is glued to a small double side PCB substrate.&lt;br /&gt;
the electrical current passes through :&lt;br /&gt;
 -a pad of the chip die&lt;br /&gt;
 -a bonding wire&lt;br /&gt;
 -the top layer of the substrate&lt;br /&gt;
 -a via&lt;br /&gt;
 -the bottom layer&lt;br /&gt;
 -finally, the BGA ball&lt;br /&gt;
&lt;br /&gt;
The [[S5L8700 datasheet|known datasheet]] shows die pad numbers that need to be correlated to ball numbers (the specified package has a different ball layout).&lt;br /&gt;
In order to do this, we make an analysis of the bonding and PCB.&lt;br /&gt;
&lt;br /&gt;
== Packaging analysis ==&lt;br /&gt;
&lt;br /&gt;
Following steps were made : &lt;br /&gt;
 -desoldering of the IC&lt;br /&gt;
 -removing of the balls and filler glue&lt;br /&gt;
 -X-ray picture&lt;br /&gt;
 -microscope picture of the bottom layer&lt;br /&gt;
 -removing the bottom layer and most of the substrate (by careful manual grinding)&lt;br /&gt;
 -microscope picture of the top layer&lt;br /&gt;
 -superposition of these views, and path finding from the die to the ball&lt;br /&gt;
&lt;br /&gt;
== Guessed pinout table ==&lt;br /&gt;
&lt;br /&gt;
the pinout is currently under study. See [http://f4eru.free.fr/8701/ here] for the actual status.&lt;br /&gt;
This is not an easy part of the work, each pad has to be tested for connections all over the board (most IC&#039;s removed). See [[Nano2G%2BHW%2Banalysis]] for further PCB analysis.&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=1696</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=1696"/>
		<updated>2009-06-14T08:50:32Z</updated>

		<summary type="html">&lt;p&gt;Sto: /* iPod Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the wiki page for the Linux4nano project. [http://home.gna.org/linux4nano/ Here] is the project homepage, and [http://mail.gna.org/public/linux4nano-dev/ here] is a link to the project&#039;s mailing list. Linux4nano also has a fairly active IRC channel, #linux4nano-dev @ irc.freenode.net. [http://theiphonewiki.com/wiki/index.php?title=Main_Page The iPhone Wiki] is an excellent resource to use when researching, because much of the hardware and software aspects are similar to that of the iPod. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feel free to add information and make changes!&#039;&#039;&#039; This is a wiki after all. Just make sure you are logged in before you try to edit.&lt;br /&gt;
&lt;br /&gt;
==This wiki==&lt;br /&gt;
[[About]]&lt;br /&gt;
==iPod Firmware==&lt;br /&gt;
===Obtaining===&lt;br /&gt;
[[Dumping firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Extracting firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Disassembling firmware]]&lt;br /&gt;
===Analysis===&lt;br /&gt;
[[Firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Bootstrapping sequence]]&lt;br /&gt;
&lt;br /&gt;
[[Firmware encryption]]&lt;br /&gt;
==iPod Hardware==&lt;br /&gt;
[[Hardware]]&lt;br /&gt;
&lt;br /&gt;
[[Hardware annotation]]&lt;br /&gt;
&lt;br /&gt;
[[Nano2G%2BHW%2Banalysis]] and [[S5L8701 analysis]]&lt;br /&gt;
&lt;br /&gt;
[[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
[[Modes]]&lt;br /&gt;
&lt;br /&gt;
[[Chronology]]&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano2G_HW_analysis&amp;diff=1695</id>
		<title>Nano2G HW analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano2G_HW_analysis&amp;diff=1695"/>
		<updated>2009-06-14T08:48:15Z</updated>

		<summary type="html">&lt;p&gt;Sto: Created page with &amp;#039;Top layer, including JTAG Bottom layer 300px [[File:2G_bck_annotation.png|3...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Top_annote.jpg|200px|thumb|Top layer, including JTAG]]&lt;br /&gt;
[[File:Bot_annote.jpg|200px|thumb|Bottom layer]]&lt;br /&gt;
[[File:2G_frt_annotation.png|300px]]&lt;br /&gt;
[[File:2G_bck_annotation.png|300px]]&lt;br /&gt;
== previous work ==&lt;br /&gt;
&lt;br /&gt;
See [[Hardware#2G_Nano_2]].&lt;br /&gt;
&lt;br /&gt;
== SOC analysis ==&lt;br /&gt;
&lt;br /&gt;
[[S5L8701_analysis]]&lt;br /&gt;
&lt;br /&gt;
== Circuit analysis ==&lt;br /&gt;
&lt;br /&gt;
After desoldering all components, the circuit was analyzed with a continuity tester.&lt;br /&gt;
&lt;br /&gt;
Small test needles (nailbed needles are great) were used for contacting.&lt;br /&gt;
&lt;br /&gt;
For easing the search, a more coarse search was first performed by a novel method : soldering a coil wire to one end, and moving a iron wool pad over the rest of the PCB until the tester beeps. After finding a spot, the needle allows to find the exact pad.&lt;br /&gt;
&lt;br /&gt;
Not all connection were routed, mainly the connections to the S5L8701 SOC.&lt;br /&gt;
&lt;br /&gt;
Results are a [http://f4eru.free.fr/8701/ detailed pinout of the 8701]&lt;br /&gt;
&lt;br /&gt;
See also [[S5L8701_analysis]].&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
&lt;br /&gt;
The jtag was found after searching with a jtag bruteforce scanner i wrote.(to be published later)&lt;br /&gt;
There were a lot of problems, including the scanner not working properly, and a nTRST pin. (still cannot understand why).&lt;br /&gt;
&lt;br /&gt;
But now we have the locations of the pins : see picture [[Image:Top_annote.jpg|40px|thumb|pin locations]].&lt;br /&gt;
&lt;br /&gt;
The pins are basically available on the DOCK connector after putting in place some jumpers (2 for nTRST, 1 for other pins).&lt;br /&gt;
&lt;br /&gt;
After connecting a xilinx paralell cable, and installing openwince, we can try to connect to the JTAG :&lt;br /&gt;
&lt;br /&gt;
 $ sudo jtag&lt;br /&gt;
 JTAG Tools 0.5.1&lt;br /&gt;
 Copyright (C) 2002, 2003 ETC s.r.o.&lt;br /&gt;
 JTAG Tools is free software, covered by the GNU General Public License, and you are&lt;br /&gt;
 welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;
 There is absolutely no warranty for JTAG Tools.&lt;br /&gt;
 &lt;br /&gt;
 Warning: JTAG Tools may damage your hardware! Type &amp;quot;quit&amp;quot; to exit!&lt;br /&gt;
 &lt;br /&gt;
 Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;
 &lt;br /&gt;
 jtag&amp;gt; cable ppdev /dev/parport0 DLC5&lt;br /&gt;
 Initializing Xilinx DLC5 JTAG Parallel Cable III on ppdev port /dev/parport0&lt;br /&gt;
 Error: Cable initialization failed!&lt;br /&gt;
 jtag&amp;gt; cable parallel 0x378 DLC5&lt;br /&gt;
 Initializing Xilinx DLC5 JTAG Parallel Cable III on parallel port at 0x378&lt;br /&gt;
 jtag&amp;gt; detect&lt;br /&gt;
 IR length: 4&lt;br /&gt;
 Chain length: 1&lt;br /&gt;
 Device Id: 0&lt;br /&gt;
 chain.c(110) Part 0 without active instruction&lt;br /&gt;
 chain.c(133) Part 0 without active instruction&lt;br /&gt;
 chain.c(110) Part 0 without active instruction&lt;br /&gt;
 jtag&amp;gt; discovery&lt;br /&gt;
 Detecting IR length ... 4&lt;br /&gt;
 Detecting DR length for IR 1111 ... 1&lt;br /&gt;
 Detecting DR length for IR 0000 ... -1&lt;br /&gt;
 Detecting DR length for IR 0001 ... 1&lt;br /&gt;
 Detecting DR length for IR 0010 ... 5&lt;br /&gt;
 Detecting DR length for IR 0011 ... -1&lt;br /&gt;
 Detecting DR length for IR 0100 ... 1&lt;br /&gt;
 Detecting DR length for IR 0101 ... 1&lt;br /&gt;
 Detecting DR length for IR 0110 ... 1&lt;br /&gt;
 Detecting DR length for IR 0111 ... 1&lt;br /&gt;
 Detecting DR length for IR 1000 ... 1&lt;br /&gt;
 Detecting DR length for IR 1001 ... 1&lt;br /&gt;
 Detecting DR length for IR 1010 ... 1&lt;br /&gt;
 Detecting DR length for IR 1011 ... 1&lt;br /&gt;
 Detecting DR length for IR 1100 ... -1&lt;br /&gt;
 Detecting DR length for IR 1101 ... 1&lt;br /&gt;
 Detecting DR length for IR 1110 ... 32&lt;br /&gt;
 jtag&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can see the instruction length is 4 bits. the screen freezes directly when we use the JTAG.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We currently do not know if this interface is the JTAG of the ARM or the CALM processor. In the 8700 doc, there seems to be a switch pin. However, here, the switch pin (P10) is an output at H level. Even by forcing it to GND. there seems to be no change in the JTAG structure.&lt;br /&gt;
Other pins were tried, no jtag commutation was found.&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
 -find which processor is connected&lt;br /&gt;
 -check the doc of the ARM and the CALM for JTAG info&lt;br /&gt;
 -try to use an ARM debugging program ?&lt;br /&gt;
 -find a commutation pin&lt;br /&gt;
 -if the JTAG does not help, we can probably make a SDRAM sniffing (clock frequency was only about 12 MHZ !)&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:Bot_annote.jpg&amp;diff=1694</id>
		<title>File:Bot annote.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:Bot_annote.jpg&amp;diff=1694"/>
		<updated>2009-06-14T07:58:24Z</updated>

		<summary type="html">&lt;p&gt;Sto: bot layer of the ipod nano 2G pcb. some signals and testpoints noted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;bot layer of the ipod nano 2G pcb. some signals and testpoints noted&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:Top_annote.jpg&amp;diff=1693</id>
		<title>File:Top annote.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:Top_annote.jpg&amp;diff=1693"/>
		<updated>2009-06-14T07:57:23Z</updated>

		<summary type="html">&lt;p&gt;Sto: top layer of the ipod nano 2G pcb. some signals noted, including JTAG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;top layer of the ipod nano 2G pcb. some signals noted, including JTAG&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1689</id>
		<title>S5L8701 analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1689"/>
		<updated>2009-05-31T13:38:17Z</updated>

		<summary type="html">&lt;p&gt;Sto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The samsung S5L8701 is the SOC of the IN2G. This chip is supposed to be close to the 8700 used on some concurrent MP3 players.&lt;br /&gt;
&lt;br /&gt;
We currently know nearly nothing about the differences of both chips, and the further evolutions. There is probably a small unencrypted boot ROM inside, which would be very useful for integrating user SW. Probably containing crypto information.&lt;br /&gt;
Knowing the location of some JTAG pins could be very helpful.&lt;br /&gt;
&lt;br /&gt;
There is an OpenOffice Calc document describing possible pinouts [http://f4eru.free.fr/8701/ here]. There is also [https://mail.gna.org/public/linux4nano-dev/2009-05/msg00003.html tof&#039;s mailing list post].&lt;br /&gt;
&lt;br /&gt;
== Structure of the packaging ==&lt;br /&gt;
&lt;br /&gt;
The chip is a 226-pin TFBGA with a pitch of 0.5mm.&lt;br /&gt;
This is the structure of a BGA package : [http://www.freepatentsonline.com/6569694-0-display.jpg BGA package]&lt;br /&gt;
&lt;br /&gt;
The chip is glued to a small double side PCB substrate.&lt;br /&gt;
the electrical current passes through :&lt;br /&gt;
 -a pad of the chip die&lt;br /&gt;
 -a bonding wire&lt;br /&gt;
 -the top layer of the substrate&lt;br /&gt;
 -a via&lt;br /&gt;
 -the bottom layer&lt;br /&gt;
 -finally, the BGA ball&lt;br /&gt;
&lt;br /&gt;
The [[S5L8700 datasheet|known datasheet]] shows die pad numbers that need to be correlated to ball numbers (the specified package has a different ball layout).&lt;br /&gt;
In order to do this, we make an analysis of the bonding and PCB.&lt;br /&gt;
&lt;br /&gt;
== Packaging analysis ==&lt;br /&gt;
&lt;br /&gt;
Following steps were made : &lt;br /&gt;
 -desoldering of the IC&lt;br /&gt;
 -removing of the balls and filler glue&lt;br /&gt;
 -X-ray picture&lt;br /&gt;
 -microscope picture of the bottom layer&lt;br /&gt;
 -removing the bottom layer and most of the substrate (by careful manual grinding)&lt;br /&gt;
 -microscope picture of the top layer&lt;br /&gt;
 -superposition of these views, and path finding from the die to the ball&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg|200px|thumb|left|View of the bonding via X-ray]]&lt;br /&gt;
[[File:S5L8701_top_layer_bottom_view_2.jpg|200px|thumb|left|View of the top layer]]&lt;br /&gt;
[[File:S5L8701 bottom layer bot view 2.jpg|200px|thumb|left|View of the bottom layer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guessed pinout table ==&lt;br /&gt;
&lt;br /&gt;
the pinout is currently under study. See [http://f4eru.free.fr/8701/ here] for the actual status.&lt;br /&gt;
This is not an easy part of the work, each pad has to be tested for connections all over the board (most IC&#039;s removed)&lt;br /&gt;
&lt;br /&gt;
unfortunately, the board suffered from the unsoldering, some fragile pads are gone, so one more broken nano 2G is wanted.&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1688</id>
		<title>S5L8701 analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1688"/>
		<updated>2009-05-31T13:33:25Z</updated>

		<summary type="html">&lt;p&gt;Sto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The samsung S5L8701 is the SOC of the IN2G. This chip is supposed to be close to the 8700 used on some concurrent MP3 players.&lt;br /&gt;
&lt;br /&gt;
We currently know nearly nothing about the differences of both chips, and the further evolutions. There is probably a small unencrypted boot ROM inside, which would be very useful for integrating user SW. Probably containing crypto information.&lt;br /&gt;
Knowing the location of some JTAG pins could be very helpful.&lt;br /&gt;
&lt;br /&gt;
There is an OpenOffice Calc document describing possible pinouts [http://f4eru.free.fr/8701/ here]. There is also [https://mail.gna.org/public/linux4nano-dev/2009-05/msg00003.html tof&#039;s mailing list post].&lt;br /&gt;
&lt;br /&gt;
== Structure of the packaging ==&lt;br /&gt;
&lt;br /&gt;
The chip is a 226-pin TFBGA with a pitch of 0.5mm.&lt;br /&gt;
This is the structure of a BGA package : [http://www.freepatentsonline.com/6569694-0-display.jpg BGA package]&lt;br /&gt;
&lt;br /&gt;
The chip is glued to a small double side PCB substrate.&lt;br /&gt;
the electrical current passes through :&lt;br /&gt;
 -a pad of the chip die&lt;br /&gt;
 -a bonding wire&lt;br /&gt;
 -the top layer of the substrate&lt;br /&gt;
 -a via&lt;br /&gt;
 -the bottom layer&lt;br /&gt;
 -finally, the BGA ball&lt;br /&gt;
&lt;br /&gt;
The [[S5L8700 datasheet|known datasheet]] shows die pad numbers that need to be correlated to ball numbers (the specified package has a different ball layout).&lt;br /&gt;
In order to do this, we make an analysis of the bonding and PCB.&lt;br /&gt;
&lt;br /&gt;
== Packaging analysis ==&lt;br /&gt;
&lt;br /&gt;
Following steps were made : &lt;br /&gt;
 -desoldering of the IC&lt;br /&gt;
 -removing of the balls and filler glue&lt;br /&gt;
 -X-ray picture&lt;br /&gt;
 -microscope picture of the bottom layer&lt;br /&gt;
 -removing the bottom layer and most of the substrate (by careful manual grinding)&lt;br /&gt;
 -microscope picture of the top layer&lt;br /&gt;
 -superposition of these views, and path finding from the die to the ball&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg|200px|thumb|left|View of the bonding via X-ray]]&lt;br /&gt;
[[File:S5L8701_top_layer_bottom_view_2.jpg|200px|thumb|left|View of the top layer]]&lt;br /&gt;
[[File:S5L8701 bottom layer bot view 2.jpg|200px|thumb|left|View of the bottom layer]]&lt;br /&gt;
&lt;br /&gt;
== Guessed pinout table ==&lt;br /&gt;
&lt;br /&gt;
the pinout is currently under study. See [http://f4eru.free.fr/8701/ here]&lt;br /&gt;
&lt;br /&gt;
one more broken nano 2G wanted.&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1676</id>
		<title>S5L8701 analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1676"/>
		<updated>2009-05-12T16:04:41Z</updated>

		<summary type="html">&lt;p&gt;Sto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The samsung S5L8701 is the SOC of the IN2G. This chip is supposed to be close to the 8700 used on some concurrent MP3 players.&lt;br /&gt;
&lt;br /&gt;
We currently know nearly nothing about the differences of both chips, and the further evolutions. There is probably a small unencrypted boot ROM inside, which would be very usefull for integrating user SW. Probably containing crypto information.&lt;br /&gt;
Knowing the location of some JTAG pins could be very helpfull.&lt;br /&gt;
&lt;br /&gt;
== Structure of the packaging ==&lt;br /&gt;
&lt;br /&gt;
The chip is a 226-pin TFBGA with a pitch of 0.5mm.&lt;br /&gt;
This is the structure of a BGA package : [http://www.freepatentsonline.com/6569694-0-display.jpg BGA package]&lt;br /&gt;
&lt;br /&gt;
The chip is glued to a small double side PCB substrat.&lt;br /&gt;
the electrical current passes through :&lt;br /&gt;
 -a pad of the chip die&lt;br /&gt;
 -a bonding wire&lt;br /&gt;
 -the top layer of the substrate&lt;br /&gt;
 -a via&lt;br /&gt;
 -the bottom layer&lt;br /&gt;
 -finally, the BGA ball&lt;br /&gt;
&lt;br /&gt;
The [[known datasheet]S5L8700_datasheet] shows die pad numbers that need to be correlated to ball numbers (the specified package has a different ball layout).&lt;br /&gt;
In order to do this, we make an analysis of the bonding and PCB.&lt;br /&gt;
&lt;br /&gt;
== Packaging analysis ==&lt;br /&gt;
&lt;br /&gt;
Following steps were made : &lt;br /&gt;
 -desoldering of the IC&lt;br /&gt;
 -removing of the balls and filler glue&lt;br /&gt;
 -X-ray picture&lt;br /&gt;
 -microscope picture ot the bottom layer&lt;br /&gt;
 -removing the bottom layer and most of the substrate (by careful manual grinding)&lt;br /&gt;
 -microscope picture of the top layer&lt;br /&gt;
 -superposition of these views, and path finding from the die to the ball&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg|200px|thumb|left|View of the bonding via X-ray]]&lt;br /&gt;
[[File:S5L8701_top_layer_bottom_view_2.jpg|200px|thumb|left|View of the top layer]]&lt;br /&gt;
[[File:S5L8701 bottom layer bot view 2.jpg|200px|thumb|left|View of the bottom layer]]&lt;br /&gt;
&lt;br /&gt;
== Guessed pinout table ==&lt;br /&gt;
&lt;br /&gt;
to come soon...&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1675</id>
		<title>S5L8701 analysis</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=S5L8701_analysis&amp;diff=1675"/>
		<updated>2009-05-12T15:49:32Z</updated>

		<summary type="html">&lt;p&gt;Sto: Created page with &amp;#039;== Introduction ==  The samsung S5L8701 is the SOC of the IN2G. This chip is supposed to be close to the 8700 used on some concurrent MP3 players.  We currently know nearly nothi...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The samsung S5L8701 is the SOC of the IN2G. This chip is supposed to be close to the 8700 used on some concurrent MP3 players.&lt;br /&gt;
&lt;br /&gt;
We currently know nearly nothing about the differences of both chips, and the further evolutions. There is probably a small unencrypted boot ROM inside, which would be very usefull for integrating user SW. Probably containing crypto information.&lt;br /&gt;
Knowing the location of some JTAG pins could be very helpfull.&lt;br /&gt;
&lt;br /&gt;
== Structure of the packaging ==&lt;br /&gt;
&lt;br /&gt;
The chip is a 226-pin TFBGA with a pitch of 0.5mm.&lt;br /&gt;
This is the structure of a BGA package : [http://www.freepatentsonline.com/6569694-0-display.jpg BGA package]&lt;br /&gt;
&lt;br /&gt;
The chip is glued to a small double side PCB substrat.&lt;br /&gt;
the electrical current passes through :&lt;br /&gt;
 -a pad of the chip die&lt;br /&gt;
 -a bonding wire&lt;br /&gt;
 -the top layer of the substrate&lt;br /&gt;
 -a via&lt;br /&gt;
 -the bottom layer&lt;br /&gt;
 -finally, the BGA ball&lt;br /&gt;
&lt;br /&gt;
The [[known datasheet]S5L8700_datasheet] shows die pad numbers that need to be correlated to ball numbers (the specified package has a different ball layout).&lt;br /&gt;
In order to do this, we make an analysis of the bonding and PCB.&lt;br /&gt;
&lt;br /&gt;
== Packaging analysis ==&lt;br /&gt;
&lt;br /&gt;
Following steps were made : &lt;br /&gt;
 -desoldering of the IC&lt;br /&gt;
 -removing of the balls and filler glue&lt;br /&gt;
 -X-ray picture&lt;br /&gt;
 -microscope picture ot the bottom layer&lt;br /&gt;
 -removing the bottom layer and most of the substrate (by careful manual grinding)&lt;br /&gt;
 -microscope picture of the top layer&lt;br /&gt;
 -superposition of these views, and path finding from the die to the ball&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg|200px|thumb|left|View of the bonding via X-ray]]&lt;br /&gt;
[[File:S5L8701_top_layer_bottom_view_2.jpg|200px|thumb|left|View of the top layer]]&lt;br /&gt;
[[File:S5L8701 bottom layer bot view 2.jpg|200px|thumb|left|View of the bottom layer]]&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:S5L8701_bottom_layer_bot_view_2.jpg&amp;diff=1674</id>
		<title>File:S5L8701 bottom layer bot view 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:S5L8701_bottom_layer_bot_view_2.jpg&amp;diff=1674"/>
		<updated>2009-05-12T15:32:53Z</updated>

		<summary type="html">&lt;p&gt;Sto: top layer of the 8701 substrate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;top layer of the 8701 substrate&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:S5L8701_top_layer_bottom_view_2.jpg&amp;diff=1673</id>
		<title>File:S5L8701 top layer bottom view 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:S5L8701_top_layer_bottom_view_2.jpg&amp;diff=1673"/>
		<updated>2009-05-12T15:31:24Z</updated>

		<summary type="html">&lt;p&gt;Sto: bottom layer of the 8701 substrate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;bottom layer of the 8701 substrate&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg&amp;diff=1672</id>
		<title>File:S5L8701 bonding wires via x-ray bottom view 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:S5L8701_bonding_wires_via_x-ray_bottom_view_2.jpg&amp;diff=1672"/>
		<updated>2009-05-12T15:12:10Z</updated>

		<summary type="html">&lt;p&gt;Sto: x ray of the 8701 showing the bonding wires&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;x ray of the 8701 showing the bonding wires&lt;/div&gt;</summary>
		<author><name>Sto</name></author>
	</entry>
</feed>