Editing SC EEPROM
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
Most of the information we have about the | Most of the information we have about the sc eeprom comes from graf_chokolo reverse engineering of the HV see [[Hypervisor Reverse Engineering]] | ||
Here is where system flags, tokens and hashes are stored. | |||
Right now | Right now most of the communication we have with the sc eeprom is through Linux using graf_chokolo ps3dm-utils and/or using his payloads. | ||
See also {{talk}} page and [[User_talk:Zer0Tolerance|Zer0Tolerance]] | See also {{talk}} page and [[User_talk:Zer0Tolerance|Zer0Tolerance]] | ||
= | = SC EEPROM Info = | ||
SC EEPROM from fat consoles is a custom/proprietary EEPROM chip that uses a special non standard commands to read/write from EEPROM. | |||
We are so lucky that Sony had exposed EEROM chip legs out of Syscon, so we have a physical access to it and we could attach devices like "'''Logic Analyzer'''", "'''Protocol Analyzer'''", "'''Custom made MCU boards'''" to capture traffic between console and Syscon EEPROM. | |||
For FAT console Syscon EEPROM consists of: 0x4000 blocks, and every block is consists of 2 bytes of data. | |||
So the total EEPROM size is: 0x8000 byte length. | |||
And since the pin-out of Syscon chip for Slim & Super Slim consoles is not known till now, we can not be sure if the Syscon EEPROM pins are exposed outside or not so we can access it like in FAT console without handling Syscon it self. | |||
== | == SC EEPROM Commands == | ||
FAT console's SC EEPROM used a standard SPI protocol with a proprietary commands as flow: | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 26: | Line 26: | ||
| Unlock Command || 0xA3 0x00 0x00 || This command must be send first before write command. | | Unlock Command || 0xA3 0x00 0x00 || This command must be send first before write command. | ||
|- | |- | ||
| Write Command || 0xA4 0xXX 0xXX || XX XX is a block to be written ( | | Write Command || 0xA4 0xXX 0xXX || XX XX is a block id to be written (value 0x0000 to 0x3FFF), the maximum data to be written in one command cycle is 32 byte length (16 blocks). | ||
|- | |- | ||
| Read Command || 0xA8 0xXX 0xXX || XX XX is a block to be read ( | | Read Command || 0xA8 0xXX 0xXX || XX XX is a block id to be read (value 0x0000 to 0x3FFF), there is no maximum limit for read command so we can send it once with block id 0x00 0x00 then read the full EEPROM at once without sending read command again. | ||
|- | |- | ||
| Check Status Command || 0xA9 0x00 0x00 0x00 || The response of this command is 0xFFFFFFFF if there is no error, or any other value if there is error happened or | | Check Status Command || 0xA9 0x00 0x00 0x00 || The response of this command is 0xFFFFFFFF if there is no error, or any other value if there is error happened or EEPROM still busy doing something. | ||
|} | |} | ||
= | = SC EEPROM dumps = | ||
* https://mega.co.nz/#!Bt8klAhQ!-t5YVetoL9gz6iZucpqQB9Vl9chCkbhFiMfqjbmotoc {{MD5|B0E0551116B718A4921757B2B074693F}} | * https://mega.co.nz/#!Bt8klAhQ!-t5YVetoL9gz6iZucpqQB9Vl9chCkbhFiMfqjbmotoc {{MD5|B0E0551116B718A4921757B2B074693F}} | ||
* https://mega.co.nz/#!B51wWJYA!zg8O-vCvRBOgK5mpzTQ1H2hgBZmykglmbksB5w1Mlfg {{MD5|3E0E73DACF7E10F2369624EA439C661B}} (partial: {{MD5|7E2BAD4DFDEE485494C8749B1C3E5676}} / {{MD5|05D9ED4B545C709C9C4564F047028DE8}}) | * https://mega.co.nz/#!B51wWJYA!zg8O-vCvRBOgK5mpzTQ1H2hgBZmykglmbksB5w1Mlfg {{MD5|3E0E73DACF7E10F2369624EA439C661B}} (partial: {{MD5|7E2BAD4DFDEE485494C8749B1C3E5676}} / {{MD5|05D9ED4B545C709C9C4564F047028DE8}}) | ||
Line 42: | Line 41: | ||
* https://mega.nz/#!iV0nGY4I!94ByAd-sourgK8_l_4s-6BX_V7iVOrysQd55bI0N6ws {{MD5|1DB1CAA8E3D54256A59D08B6AF2B9BC5}} (Dumped by Syscon EEPROM Flasher done by me "'''Abkarino'''" using Arduino Mega). | * https://mega.nz/#!iV0nGY4I!94ByAd-sourgK8_l_4s-6BX_V7iVOrysQd55bI0N6ws {{MD5|1DB1CAA8E3D54256A59D08B6AF2B9BC5}} (Dumped by Syscon EEPROM Flasher done by me "'''Abkarino'''" using Arduino Mega). | ||
* https://mega.nz/#!AwF1jIaB!5qei9JOCzisgUHARcjARCw0zvQENkkvtAdd_O0dRUfI DECR | * https://mega.nz/#!AwF1jIaB!5qei9JOCzisgUHARcjARCw0zvQENkkvtAdd_O0dRUfI DECR eeprom dump from lv2 um_manager, needs documentation. | ||
different consoles, same initial 16 bytes. maybe key/iv? | |||
= Important | =Important Offsets= | ||
== | == EEPROM Offset Table - Flags and Tokens == | ||
Here is the table of | Here is the table of EEPROM offsets that can be accessed through Update Manager (3.15): | ||
{| class="wikitable FCK__ShowTableBorders" | {| class="wikitable FCK__ShowTableBorders" | ||
Line 56: | Line 55: | ||
! Offset !! Size !! Description | ! Offset !! Size !! Description | ||
|- | |- | ||
| 0x02F00 || 8 || | | 0x02F00 || 8 || Downgrade Minimum Version String | ||
|- | |- | ||
| 0x02F08 || | | 0x02F08 || 0x10 || Downgrade Minimum Version Build + Date Build String | ||
|- | |- | ||
| 0x02F20 || 8 || | | 0x02F20 || 8 || [[Target ID]]? (HV bible lists the Target ID as 85 Europe, not 83 Japan) | ||
|- | |- | ||
| 0x02F28 || 0xD0 || Padding/undocumented | | 0x02F28 || 0xD0 || Padding/undocumented | ||
<pre> | <pre>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FF FF FF FF FF FF FF FF FF FF FF FF xx xx | ||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF | xx xx xx FF FF xx xx xx xx xx xx xx xx xx xx xx | ||
xx xx 00 00 00 00 FF xx 00 xx xx FF FF FF FF FF | |||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | |||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FF FF FF FF FF FF FF FF FF xx xx xx 00 00 | ||
FF FF FF FF FF FF FF FF FF FF FF | xx xx xx xx xx FF FF FF xx xx xx FF FF FF xx 00 </pre> | ||
</pre> | |||
|- | |- | ||
| 0x02FF8 || 1 || Factory Bit (0 = ?, 1 = reset, 2 = ?, 3 = (on retails)) | | 0x02FF8 || 1 || Factory Bit (0 = ?, 1 = reset, 2 = ?, 3 = (on retails)) | ||
|- | |- | ||
| 0x02FF9 || 0x7 || Padding/undocumented | | 0x02FF9 || 0x7 || Padding/undocumented | ||
<pre>00 00 00 | <pre>00 00 00 00 xx xx xx </pre> | ||
|- | |- | ||
|} | |} | ||
Line 91: | Line 88: | ||
|- | |- | ||
! colspan="2" | Offset !! Size !! Description | ! colspan="2" | Offset !! Size !! Description | ||
|- | |- | ||
| colspan="2" | 0x48000 || 0x13 || (lv0 NVS region 0 start) | | colspan="2" | 0x48000 || 0x13 || (lv0 NVS region 0 start) | ||
|- | |- | ||
| <abbr title="lv0 NVS region 0: 0x48000-0x48012"><small>0</small></abbr> || 0x48000 || 0x13 || (lv0 NVS region 0) | | <abbr title="lv0 NVS region 0: 0x48000-0x48012"><small>0</small></abbr> || 0x48000 || 0x13 || (lv0 NVS region 0) | ||
|- | |- | ||
| colspan="2" | 0x48012 || - || (lv0 NVS region 0 end) | | colspan="2" | 0x48012 || - || (lv0 NVS region 0 end) | ||
|- | |- | ||
Line 101: | Line 98: | ||
| colspan="2" | 0x48013 || 0x2A || QA Token ECDSA Signature (=> 3.60 firmwares) | | colspan="2" | 0x48013 || 0x2A || QA Token ECDSA Signature (=> 3.60 firmwares) | ||
|- | |- | ||
| colspan="2" | 0x48800 || | | colspan="2" | 0x48800 || 0x0C || (lv0 NVS region 1 start) | ||
|- | |- | ||
| 0x48801 || | | rowspan="4" | <abbr title="lv0 NVS region 1: 0x48800-0x4880B"><small>1</small></abbr> || 0x48801 || 0xFF || - hv log settings/infos? - | ||
|- | |- | ||
| 0x48802 || | | 0x48802 || 1 || | ||
|- | |- | ||
| 0x48804 || 4 || bootrom failure code | | 0x48804 || 4 || bootrom failure code | ||
Line 116: | Line 111: | ||
| 0x48808 || 4 || bootrom failure timestamp | | 0x48808 || 4 || bootrom failure timestamp | ||
|- | |- | ||
| colspan="2" | 0x4880B || - || (lv0 NVS region 1 end) | | colspan="2" | 0x4880B || - || (lv0 NVS region 1 end) | ||
|- | |- | ||
| colspan="2" | 0x48C00 || 0x20 || (lv0 NVS region 2 start) | | colspan="2" | 0x48C00 || 0x20 || (lv0 NVS region 2 start) | ||
|- | |- | ||
| rowspan=" | | rowspan="19" | <abbr title="lv0 NVS region 2: 0x48C00-0x48C1F"><small>2</small></abbr> || 0x48C00 || 1 || load_image_in_rom flag (os_boot_order_flag) | ||
|- | |- | ||
| 0x48C01 || 1 || | | 0x48C01 || 1 || (force standalone mode related) | ||
|- | |- | ||
| 0x48C02 || 1 || | | 0x48C02 || 1 || debug interface (select_net_device) | ||
|- | |- | ||
| 0x48C03 || 1 || sys.dbgcard.dgbe.index (select_dgbe_device) | | 0x48C03 || 1 || sys.dbgcard.dgbe.index (select_dgbe_device) | ||
|- | |- | ||
| 0x48C05 || 1 || update_flag for CEB | |||
| 0x48C05 || 1 || | |||
|- | |- | ||
| 0x48C06 || 1 || FSELF Control Flag / toggles release mode (fself_ctrl | | 0x48C06 || 1 || FSELF Control Flag / toggles release mode (fself_ctrl) | ||
|- | |- | ||
| 0x48C07 || 1 || | | 0x48C07 || 1 || Product Mode (UM allows to read this offset, it can be also written but only when already in product mode) | ||
|- | |- | ||
| 0x48C08 || 1 || | | 0x48C08 || 1 || (UNKNOWN {{unkn|debug}})) | ||
|- | |- | ||
| 0x48C0A || 1 || QA Flag | |||
| 0x48C0A || 1 || QA Flag | |||
|- | |- | ||
| 0x48C0B || 1 || mode_auth_flag / gx enable | | 0x48C0B || 1 || mode_auth_flag / gx enable | ||
|- | |- | ||
| 0x48C0C || 1 || | | 0x48C0C || 1 || bootrom diagnostic mode and parameter | ||
|- | |- | ||
| 0x48C0D || 1 || | | 0x48C0D || 1 || | ||
|- | |- | ||
| | | 0x48C0F || 2 || | ||
|- | |- | ||
| | | 0x48C11 || 1 || bootrom trace level (0x00: fatal errors, 0x01: errors, 0x02: information messages, 0x03: debug messages) | ||
|- | |- | ||
| | | 0x48C12 || 1 || | ||
|- | |- | ||
| | | 0x48C13 || 1 || Device Type (flash_ext_format) | ||
|- | |- | ||
| | | 0x48C14 || ? || cellos_spu_configure | ||
|- | |- | ||
| | | 0x48C18 || 4 || System Language [[XRegistry.sys#Settings]] ( /setting/system/language ) | ||
|- | |- | ||
| | | 0x48C1C || 4 || VSH Target (seems it can be 0xFFFFFFFE, 0xFFFFFFFF, 0x00000001 default: 0x00000000 /maybe QA,Debug,Retail,Kiosk?) | ||
|- | |- | ||
| colspan="2" | 0x48C1F || - || (lv0 NVS region 2 end) | | colspan="2" | 0x48C1F || - || (lv0 NVS region 2 end) | ||
|- | |- | ||
Line 196: | Line 165: | ||
| 0x48C23 || 1 || be ref clk (be_nclck_flag2) | | 0x48C23 || 1 || be ref clk (be_nclck_flag2) | ||
|- | |- | ||
| 0x48C24 || 1 || Bank #0 OS-Flag (ros0 if 0xFF else ros1 | | 0x48C24 || 1 || Bank #0 OS-Flag (ros0 if 0xFF else ros1) (os_bank_indicator) | ||
|- | |- | ||
| colspan="2" | 0x48C24 || - || (lv0 NVS region 3 end) | | colspan="2" | 0x48C24 || - || (lv0 NVS region 3 end) | ||
|- | |- | ||
Line 211: | Line 180: | ||
|- | |- | ||
| colspan="2" | 0x48C29 || 1 || Bank #1 rvkpkg-Flag | | colspan="2" | 0x48C29 || 1 || Bank #1 rvkpkg-Flag | ||
|- | |- | ||
| colspan="2" | 0x48C30 || 0x0D || (lv0 NVS region 4 start) | | colspan="2" | 0x48C30 || 0x0D || (lv0 NVS region 4 start) | ||
|- | |- | ||
| rowspan="3" | <abbr title="lv0 NVS region 4: 0x48C30-0x48C3C"><small>4</small></abbr> || 0x48C30 || 1 || | | rowspan="3" | <abbr title="lv0 NVS region 4: 0x48C30-0x48C3C"><small>4</small></abbr> || 0x48C30 || 1 || SPE number Usally 0x06, can be set to 0x07 to enable the 8 SPE (restrict_spu) | ||
|- | |- | ||
| 0x48C31 || 4 || | | 0x48C31 || 4 || sata_param | ||
|- | |||
| 0x48C35 || 8 || spr_tbuw_value (cellos_spu_configure) | |||
|- | |- | ||
| colspan="2" | 0x48C3C || - || (lv0 NVS region 4 end) | | colspan="2" | 0x48C3C || - || (lv0 NVS region 4 end) | ||
|- | |- | ||
Line 230: | Line 199: | ||
| rowspan="8" | <abbr title="lv0 NVS region 5: 0x48C40-0x48C4F"><small>5</small></abbr> || 0x48C42 || 1 || HDD Copy Mode | | rowspan="8" | <abbr title="lv0 NVS region 5: 0x48C40-0x48C4F"><small>5</small></abbr> || 0x48C42 || 1 || HDD Copy Mode | ||
|- | |- | ||
| 0x48C43 || 4 || | | 0x48C43 || 4 || | ||
|- | |- | ||
| 0x48C47 || 1 || Analog Sunset Flag, will disable AACS video output without [[HDMI]] cable soon | | 0x48C47 || 1 || Analog Sunset Flag, will disable AACS video output without [[HDMI]] cable soon | ||
Line 240: | Line 209: | ||
| 0x48C61 || 1 || Recover Mode Flag | | 0x48C61 || 1 || Recover Mode Flag | ||
|- | |- | ||
| 0x48C62 || 8 || boot param | | 0x48C62 || 8 || boot param | ||
|- | |||
| 0x48C6A || 2 || factory process completion % | |||
|- | |- | ||
| colspan="2" | 0x48C4F || - || (lv0 NVS region 5 end) | | colspan="2" | 0x48C4F || - || (lv0 NVS region 5 end) | ||
|- | |- | ||
Line 265: | Line 222: | ||
|- | |- | ||
| 0x48C88 || 8 || (rsx.rdcy.1) | | 0x48C88 || 8 || (rsx.rdcy.1) | ||
|- | |- | ||
| colspan="2" | 0x48C8F || - || (lv0 NVS region 6 end) | | colspan="2" | 0x48C8F || - || (lv0 NVS region 6 end) | ||
|- | |- | ||
Line 283: | Line 240: | ||
|- | |- | ||
| 0x48CB8 || 8 || (rsx.rdcy.7) / game_board_storage_read | | 0x48CB8 || 8 || (rsx.rdcy.7) / game_board_storage_read | ||
|- | |- | ||
| colspan="2" | 0x48CBF || - || (lv0 NVS region 7 end) | | colspan="2" | 0x48CBF || - || (lv0 NVS region 7 end) | ||
|- | |- | ||
Line 289: | Line 246: | ||
| colspan="2" | 0x48CCE || 1 || 0xFF / 0xFE / 0x00 (?) | | colspan="2" | 0x48CCE || 1 || 0xFF / 0xFE / 0x00 (?) | ||
|- | |- | ||
| colspan="2" | 0x48CCF || 1 || pme_user debug printf flag ( & 0x03 | | colspan="2" | 0x48CCF || 1 || pme_user debug printf flag ( & 0x03 ) | ||
|- | |- | ||
| colspan="2" | 0x48CF0 || 0x10 || (NVS region start) | | colspan="2" | 0x48CF0 || 0x10 || (NVS region start) | ||
Line 296: | Line 253: | ||
| rowspan="16" | <abbr title="NVS region: 0x48CF0-0x48CFF"><small></small></abbr> || 0x48CF0 || 1 || ss.common.printf.enabled | | rowspan="16" | <abbr title="NVS region: 0x48CF0-0x48CFF"><small></small></abbr> || 0x48CF0 || 1 || ss.common.printf.enabled | ||
|- | |- | ||
| 0x48CF1 || | | 0x48CF1 || || | ||
|- | |- | ||
| 0x48CF2 || | | 0x48CF2 || || | ||
|- | |- | ||
| 0x48CF3 || | | 0x48CF3 || || | ||
|- | |- | ||
| 0x48CF4 || | | 0x48CF4 || || | ||
|- | |- | ||
| 0x48CF5 || | | 0x48CF5 || || | ||
|- | |- | ||
| 0x48CF6 || | | 0x48CF6 || || | ||
|- | |- | ||
| 0x48CF7 || | | 0x48CF7 || || | ||
|- | |- | ||
| 0x48CF8 || | | 0x48CF8 || || | ||
|- | |- | ||
| 0x48CF9 || | | 0x48CF9 || || | ||
|- | |- | ||
| 0x48CFA || | | 0x48CFA || || | ||
|- | |- | ||
| 0x48CFB || | | 0x48CFB || || | ||
|- | |- | ||
| 0x48CFC || | | 0x48CFC || || | ||
|- | |- | ||
| 0x48CFD || | | 0x48CFD || || | ||
|- | |- | ||
| 0x48CFE || | | 0x48CFE || || | ||
|- | |||
| 0x48CFF || || | |||
|- | |- | ||
| colspan="2" | 0x48CFF || - || (NVS region end) | | colspan="2" | 0x48CFF || - || (NVS region end) | ||
|- | |- | ||
Line 337: | Line 294: | ||
|- | |- | ||
| 0x48D08 || 4 || ip_gateway | | 0x48D08 || 4 || ip_gateway | ||
|- | |- | ||
| colspan="2" | 0x48D0B || - || (lv0 NVS region 8 end) | | colspan="2" | 0x48D0B || - || (lv0 NVS region 8 end) | ||
|- | |- | ||
Line 346: | Line 303: | ||
|- | |- | ||
| <abbr title="lv0 NVS region 9: 0x48D20-0x48D27"><small>9</small></abbr> || 0x48D20 || 8 || spider.gbe0.macaddr.0 (<code>0xFFFFFFFFFFFFFFFF</code> if unused/nonpresent) | | <abbr title="lv0 NVS region 9: 0x48D20-0x48D27"><small>9</small></abbr> || 0x48D20 || 8 || spider.gbe0.macaddr.0 (<code>0xFFFFFFFFFFFFFFFF</code> if unused/nonpresent) | ||
|- | |- | ||
| colspan="2" | 0x48D27 || - || (lv0 NVS region 9 end) | | colspan="2" | 0x48D27 || - || (lv0 NVS region 9 end) | ||
|- | |- | ||
Line 358: | Line 315: | ||
|- | |- | ||
| 0x48D38 || 8 || spider.gbe0.macaddr.3 (<code>FFFFFFFFFFFFFFFF</code> if unused/nonpresent) | | 0x48D38 || 8 || spider.gbe0.macaddr.3 (<code>FFFFFFFFFFFFFFFF</code> if unused/nonpresent) | ||
|- | |- | ||
| colspan="2" | 0x48D3F || - || (lv0 NVS region B end) | | colspan="2" | 0x48D3F || - || (lv0 NVS region B end) | ||
|- | |- | ||
Line 367: | Line 324: | ||
|- | |- | ||
| <abbr title="lv0 NVS region A: 0x48D3E-0x48D8D"><small>A</small></abbr> || 0x48D3E || 0x50 || QA Token - UM doesn't allow access to this offset but SC Manager can read/write it (qa_token) | | <abbr title="lv0 NVS region A: 0x48D3E-0x48D8D"><small>A</small></abbr> || 0x48D3E || 0x50 || QA Token - UM doesn't allow access to this offset but SC Manager can read/write it (qa_token) | ||
|- | |- | ||
| colspan="2" | 0x48D8D || - || (lv0 NVS region A end) | | colspan="2" | 0x48D8D || - || (lv0 NVS region A end) | ||
|- | |- | ||
| colspan="2" | 0x48D8E || 0x50 || mode_auth_data (read/cleared by ss_sc_init_pu, checked by spu_mode_auth | | colspan="2" | 0x48D8E || 0x50 || mode_auth_data (read/cleared by ss_sc_init_pu, checked by spu_mode_auth) | ||
|- | |- | ||
|} | |} | ||
Line 386: | Line 343: | ||
QA Token ECDSA Signature is stored in 0x48013 offset (starting from 3.60 firmwares) | QA Token ECDSA Signature is stored in 0x48013 offset (starting from 3.60 firmwares) | ||
== Undocumented | == Undocumented config == | ||
There is an unknown syscon response of 0x100 bytes when using NVS service with such params: BlockID=1, Offset=0, Size=0. | There is an unknown syscon response of 0x100 bytes when using NVS service with such params: BlockID=1, Offset=0, Size=0. | ||
<pre> | <pre> | ||
0000h: FF 02 FF FE FF 02 FF FF 19 FB E1 16 00 00 00 00 ÿ.ÿþÿ.ÿÿ.ûá..... | 0000h: FF 02 FF FE FF 02 FF FF 19 FB E1 16 00 00 00 00 ÿ.ÿþÿ.ÿÿ.ûá..... | ||
Line 439: | Line 365: | ||
</pre> | </pre> | ||
This is 0x48800 on EEPROM | |||
cech-c (NO BD Drive): http://pastie.org/private/grl0dc0dxajisa36chgm7w | |||
== lv0 SC EEPROM usage == | == lv0 SC EEPROM usage == | ||
<pre> | <pre> | ||
[*] lv0 NVS regions: | [*] lv0 NVS regions: | ||
Line 536: | Line 401: | ||
[*] lv0 SC EEPROM usage: | [*] lv0 SC EEPROM usage: | ||
name addr size structure | name addr size structure | ||
dgbe_config 0x48D00 0x0C [0x04 ip_addr, 0x04 ip_netmask, 0x04 ip_gateway] | |||
restrict_spu 0x48C30 0x01 [0x01 flag] | restrict_spu 0x48C30 0x01 [0x01 flag] | ||
sata_param 0x48C31 0x04 [0x04 flag] | sata_param 0x48C31 0x04 [0x04 flag] | ||
os_bank_indicator 0x48C24 0x01 [0x01 flag] | |||
cellos_spu_configure 0x48C33 0x04 [0x04 config] | cellos_spu_configure 0x48C33 0x04 [0x04 config] | ||
flash_ext_format 0x48C13 0x01 [0x01 flag] | |||
cellos_flags 0x48C0F 0x02 [0x02 flags] | |||
qaf_enable 0x48C0A 0x01 [0x01 flag] | |||
UNKNOWN (debug?) 0x48C08 0x01 [0x01 flag] | |||
fself_ctrl 0x48C06 0x01 [0x01 flag] | |||
select_dgbe_device 0x48C03 0x01 [0x01 index] | |||
os_boot_order_flag 0x48C00 0x01 [0x01 flag] | |||
qa_token 0x48D3E 0x50 [0x50 token] | |||
UNKNOWN 0x48804 0x04 [0x04 value] | |||
UNKNOWN 0x48D20 0x08 [0x08 value] | |||
rsx.rdcy.7 0x48CB8 0x08 [0x08 value] | |||
rsx.rdcy.6 0x48CB0 0x08 [0x08 value] | |||
rsx.rdcy.5 0x48CA8 0x08 [0x08 value] | |||
rsx.rdcy.4 0x48CA0 0x08 [0x08 value] | |||
rsx.rdcy.3 0x48C98 0x08 [0x08 value] | |||
rsx.rdcy.2 0x48C90 0x08 [0x08 value] | |||
rsx.rdcy.1 0x48C88 0x08 [0x08 value] | |||
rsx.rdcy.0 0x48C80 0x08 [0x08 value] | |||
be_nclck_flag2 0x48C23 0x01 [0x01 flag] | |||
be_nclck_flag1 0x48C22 0x01 [0x01 flag] | |||
select_net_device 0x48C02 0x01 [0x01 index] | |||
spr_tbuw_value 0x48C35 0x08 [0x08 value] | spr_tbuw_value 0x48C35 0x08 [0x08 value] | ||
bootrom_trace_level 0x48C11 0x01 [0x01 level] | |||
</pre> | </pre> | ||
== System Data | == System Data From EEPROM == | ||
Here is the list of possible | Here is the list of possible EEPROM offsets: | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
! Index !! SC EEPROM | ! Index !! SC EEPROM Offset !! Size Of Data !! Description | ||
|- | |- | ||
| 0 || 0x48D20 || 6 ||? | | 0 || 0x48D20 || 6 ||? | ||
Line 587: | Line 446: | ||
|- | |- | ||
| 3 || 0x48D38 || 6 ||? | | 3 || 0x48D38 || 6 ||? | ||
|- | |||
| 4 || 0x48D00 || 4 ||? | |||
|- | |||
| 5 || 0x48D04 || 4 ||? | |||
|- | |||
| 6 || 0x48D08 || 4 ||? | |||
|} | |} | ||
== Dumpable | == Dumpable EEPROM Offset - Block ID and Block Offset Mapping Table (NVS Service) == | ||
Right now we only have read access to some portions of the | Right now we only have read access to some portions of the eeprom to have access to this regions DM needs to be patched, see section dumping eeprom | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
! | ! EEPROM Offset !! Block ID !! Block Offset !! Description !! Physical Offset | ||
|- | |- | ||
| - || | | 0x48000 - 0x480FF || 0x00 || 0x48000 - 0x480FF || ? || 0x7000 | ||
|- | |- | ||
| | | 0x48800 - 0x488FF || 0x01 || 0x48800 - 0x488FF || Bluray Drive Area || 0x7100 | ||
|- | |- | ||
| | | 0x48C00 - 0x48CFF || 0x02 || 0x48C00 - 0x48CFF || Contains flags and tokens/ see above || 0x7200 | ||
|- | |- | ||
| | | 0x48D00 - 0x48DFF || 0x03 || 0x48D00 - 0x48DFF || System Data Region || 0x7300 | ||
|- | |- | ||
| | | 0x2F00 - 0x2FFF || 0x10 || 0x2F00 - 0x2FFF || "Industry Area" aka OS Version Area || 0x2F00 | ||
|- | |- | ||
| | | 0x3000 - 0x30FF || 0x20 || 0x3000 - 0x30FF || "CS Area" || 0x3000 | ||
|- | |- | ||
| All other offsets || Invalid || Invalid || ? || | |||
| All other offsets || Invalid || Invalid || ? || | |||
|} | |} | ||
== Dumpable only with HW flasher | == Dumpable only with HW flasher EEPROM Offsets - Full Mapping Table (NAND Only) == | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
! Physical Offset !! Description | ! Physical Offset !! Description | ||
|- | |- | ||
| | | 0x0-0xF || magic1? (static bytes) | ||
|- | |- | ||
| | | 0x10-0x29F || eEID1? (probably encrypted) | ||
|- | |- | ||
| | | 0x560-0x95F || Authenticated Data Region 0 | ||
|- | |- | ||
| | | 0x960-0xD5F || Authenticated Data Region 1 | ||
|- | |- | ||
| | | 0xD60-0x115F || Authenticated Data Region 2 | ||
|- | |- | ||
| | | 0x1160-0x155F || Authenticated Data Region 3 | ||
|- | |- | ||
| | | 0x1560-0x195F || Authenticated Data Region 4 | ||
|- | |- | ||
| | | 0x1960-0x1D5F || Authenticated Data Region 5 | ||
|- | |- | ||
| | | 0x1D60-0x215F || Authenticated Data Region 6 | ||
|- | |- | ||
| | | 0x2160-0x255F || Authenticated Data Region 7 | ||
|- | |- | ||
| | | 0x2700 - 0x270F || magic2? (static bytes) | ||
|- | |- | ||
| | | 0x2800 - 0x2BFF || Syscon Patch Content Top-Half | ||
|- | |- | ||
| 0x7400-0x7FFF | | 0x4400 - 0x4FFF OR 0x7400 - 0x7FFF || Syscon Patch Content Bottom-Half | ||
|- | |- | ||
| All other offsets || Unknown | |||
|} | |} | ||
Line 709: | Line 516: | ||
=== Tests === | === Tests === | ||
* | * http://i.imgur.com/A8g00bD.png <- aes 128 cbc with fixed key and incremented iv (by 1 each time) | ||
* | * http://i.imgur.com/HZDWGSk.png <- results | ||
* | * http://i.imgur.com/2mtrtdm.png region 0 encrypted vs http://i.imgur.com/7bSdQni.png decrypted | ||
* | * http://i.imgur.com/FGJKkuz.png region 7 encrypted vs http://i.imgur.com/7TSeHWK.png decrypted | ||
=== Conclusion === | === Conclusion === | ||
* different key for a different authenticated region. | * different key for a different authenticated region. | ||
* | * sony uses either aes 128-cbc or aes 256-cbc (most likely 128-cbc) | ||
* | * sony does this weird cbc crypto in which they only decrypt portions of 0x10 bytes of the region, then increment or decrement (most likely increment) iv, and then decrypt again. i've decided to call it ctr-cbc | ||
* most likely the keys used are <strike>session</strike> perconsole keys. | * most likely the keys used are <strike>session</strike> perconsole keys. | ||
* most likely the iv used starts with 00, then gets incremented by 1 for each 0x10 bytes | * most likely the iv used starts with 00, then gets incremented by 1 for each 0x10 bytes | ||
Line 725: | Line 532: | ||
* Zer0Tolerance for the crypto findings | * Zer0Tolerance for the crypto findings | ||
* flatz for his awesome | * flatz for his awesome syscon tool | ||
= Dumping SC EEPROM = | =Dumping your SC EEPROM= | ||
== Linux == | ==Linux== | ||
First you need graf_chokolo kernel ps3dm-utils and linux_hv_scripts. | First you need graf_chokolo kernel ps3dm-utils and linux_hv_scripts. | ||
Patch DM using linux_hv_scripts | If you are ready. | ||
Patch DM using linux_hv_scripts | |||
<pre> | <pre> | ||
Line 739: | Line 548: | ||
</pre> | </pre> | ||
Read the data from the region you want for example (see tables above) | Read the data from the region you want for example (see tables above) | ||
<pre> | <pre> | ||
Line 745: | Line 554: | ||
</pre> | </pre> | ||
You can see some coolstuff containing dumps | You can see some coolstuff that containing dumps | ||
= Hashes = | =Hashes= | ||
Where exactly the hashes are stored is still a secret | Where exactly the hashes are stored is still a secret, it is said that those hashes are stored in SC EEPROM | ||
To retrieve the information about the packages you have installed you can also use ps3d_utils | To retrieve the information about the packages you have installed you can also use ps3d_utils | ||
== Linux == | ==Linux== | ||
=== Installed Package info === | ===Installed Package info=== | ||
<pre> | <pre> | ||
Line 769: | Line 578: | ||
0003004100000000 | 0003004100000000 | ||
</pre> | </pre> | ||
get_pkg_info 2 - Revoke List for program | get_pkg_info 2 - Revoke List for program | ||
Line 775: | Line 584: | ||
0003004100000000 | 0003004100000000 | ||
</pre> | </pre> | ||
get_pkg_info 3 - Revoke list for package | get_pkg_info 3 - Revoke list for package | ||
<pre> | <pre> | ||
0002003000000000 | 0002003000000000 | ||
</pre> | </pre> | ||
get_pkg_info 4 | get_pkg_info 4 | ||
<pre> | <pre> | ||
deadbeaffacebabe | deadbeaffacebabe | ||
</pre> | </pre> | ||
get_pkg_info 5 | get_pkg_info 5 | ||
<pre> | <pre> | ||
deadbeaffacebabe | deadbeaffacebabe | ||
Line 795: | Line 604: | ||
get_pkg_info 6 - Firmware Package | get_pkg_info 6 - Firmware Package | ||
<pre> | <pre> | ||
0003005000000000 | 0003005000000000 | ||
</pre> | </pre> | ||
=== Hashes === | You can find more information about this in [[Hypervisor Reverse Engineering]] | ||
===Hashes=== | |||
What algorithm is used and what exactly is hashed is still unknown | What algorithm is used and what exactly is hashed is still unknown (seems that the content of files is hashed by the SHA-1). | ||
<pre> | <pre> | ||
Line 816: | Line 627: | ||
region_data 0 - | region_data 0 - Core OS package | ||
<pre> | <pre> | ||
00 03 00 41 00 00 00 00 00 c3 eb 01 96 24 d0 1c 26 14 f3 1c a4 a2 ff ce 81 77 3a 4c f8 42 86 04 ee 34 bb db be 1c a7 51 e5 59 f1 95 61 07 a5 eb | 00 03 00 41 00 00 00 00 00 c3 eb 01 96 24 d0 1c 26 14 f3 1c a4 a2 ff ce 81 77 3a 4c f8 42 86 04 ee 34 bb db be 1c a7 51 e5 59 f1 95 61 07 a5 eb | ||
</pre> | </pre> | ||
region_data 1 | region_data 1 | ||
<pre> | <pre> | ||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ||
</pre> | </pre> | ||
region_data 2 | region_data 2 | ||
<pre> | <pre> | ||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ||
</pre> | </pre> | ||
region_data 3 | region_data 3 //Revoke List for program? | ||
<pre> | <pre> | ||
00 03 00 41 00 00 00 00 80 41 f6 b8 f2 d5 30 60 59 35 49 d7 f0 3d 58 57 87 00 88 11 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | 00 03 00 41 00 00 00 00 80 41 f6 b8 f2 d5 30 60 59 35 49 d7 f0 3d 58 57 87 00 88 11 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ||
</pre> | </pre> | ||
region_data 4 | region_data 4 | ||
<pre> | <pre> | ||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff | ||
</pre> | </pre> | ||
region_data 5 | region_data 5 //Revoke List for package? | ||
<pre> | <pre> | ||
00 02 00 30 00 00 00 00 ba 6e 1c d5 5f 48 5b 8b 3f cc c8 60 75 ce f6 83 b2 20 dc f4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00 02 00 30 00 00 00 00 ba 6e 1c d5 5f 48 5b 8b 3f cc c8 60 75 ce f6 83 b2 20 dc f4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
</pre> | </pre> | ||
Line 880: | Line 667: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 890: | Line 673: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 899: | Line 678: | ||
<pre> | <pre> | ||
00 03 00 50 | 00 03 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
</pre> | </pre> | ||
Line 910: | Line 685: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 920: | Line 691: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 930: | Line 697: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 940: | Line 703: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 950: | Line 709: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 960: | Line 715: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
Line 970: | Line 721: | ||
<pre> | <pre> | ||
de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be de ad be af fa ce ba be | ||
</pre> | </pre> | ||
region_data 16 - 47? | region_data 16 - 47? | ||
= Dumped data = | =Dumped data(SLIM)= | ||
Here is an example of data (partition 1) from syscon which stores VTRM block key, SRK/SRH, region data, etc. | |||
Here is an example of data (partition 1) from syscon | |||
<pre> | <pre> | ||
0x0000: 00 00 00 03 C0 00 00 FF 00 00 00 00 00 00 00 00 ................ | 0x0000: 00 00 00 03 C0 00 00 FF 00 00 00 00 00 00 00 00 ................ | ||
0x0010: 01 A2 F6 6C 26 54 1A 54 CE A3 F9 71 50 2B A8 20 ...l&T.T...qP+. | 0x0010: 01 A2 F6 6C 26 54 1A 54 CE A3 F9 71 50 2B A8 20 ...l&T.T...qP+. | ||
0x0020: 33 0E F4 5F 77 19 96 A6 7A 84 5D C9 AE B9 50 73 3.._w...z.]...Ps | 0x0020: 33 0E F4 5F 77 19 96 A6 7A 84 5D C9 AE B9 50 73 3.._w...z.]...Ps | ||
0x0030: AE 45 5D 8E 6C BB 80 4D 7E C5 BF A4 AC 8E E1 E5 .E].l..M~....... | 0x0030: AE 45 5D 8E 6C BB 80 4D 7E C5 BF A4 AC 8E E1 E5 .E].l..M~....... | ||
0x0040: 82 9B 0A 57 9A 40 D9 0C 00 00 00 00 00 00 00 00 ...W.@.......... | 0x0040: 82 9B 0A 57 9A 40 D9 0C 00 00 00 00 00 00 00 00 ...W.@.......... | ||
0x0050: 7F 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C | 0x0050: 7F 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C ....|.PQ..0MQw| | ||
0x0060: 7C 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C |....|.PQ..0MQw| | 0x0060: 7C 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C |....|.PQ..0MQw| | ||
0x0070: 7D 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C }....|.PQ..0MQw| | 0x0070: 7D 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C }....|.PQ..0MQw| | ||
0x0080: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | 0x0080: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
0x0090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | 0x0090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
0x00A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | 0x00A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
0x00B0: 00 03 00 55 00 00 00 00 50 12 F0 AD 3A 4F 9F 1B ...U....P...:O.. | 0x00B0: 00 03 00 55 00 00 00 00 50 12 F0 AD 3A 4F 9F 1B ...U....P...:O.. | ||
0x00C0: F9 F1 E1 D3 64 85 D4 01 19 9D 76 9E 5C 33 8D FE ....d.....v.\3.. | 0x00C0: F9 F1 E1 D3 64 85 D4 01 19 9D 76 9E 5C 33 8D FE ....d.....v.\3.. | ||
0x00D0: 39 75 10 9B 73 43 69 89 2B F6 EE 53 15 4A 3B 06 9u..sCi.+..S.J;. | 0x00D0: 39 75 10 9B 73 43 69 89 2B F6 EE 53 15 4A 3B 06 9u..sCi.+..S.J;. | ||
0x00E0: 00 03 00 55 00 00 00 00 7B C9 65 97 CF 0D 20 4B ...U....{.e... K | 0x00E0: 00 03 00 55 00 00 00 00 7B C9 65 97 CF 0D 20 4B ...U....{.e... K | ||
0x00F0: BB 6A B1 B9 B0 71 83 27 79 6F 16 08 FF FF FF FF .j...q.'yo...... | 0x00F0: BB 6A B1 B9 B0 71 83 27 79 6F 16 08 FF FF FF FF .j...q.'yo...... | ||
------------------------------------------------------------------------- | |||
0x0100: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0110: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0120: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0130: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0140: 00 01 00 00 00 00 00 00 B0 64 53 92 7F 5E 29 47 .........dS.^)G | |||
0x0150: 9C BC 84 58 4A F2 ED 0B 50 E1 BE F3 FF FF FF FF ...XJ...P....... | |||
0x0160: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0170: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0180: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x0190: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | |||
0x01A0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x01B0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x01C0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x01D0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x01E0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x01F0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
------------------------------------------------------------------------- | |||
0x0200: 00 03 00 50 00 00 00 00 00 00 00 00 00 00 00 00 ...P............ | |||
0x0210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ | |||
0x0220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ | |||
0x0230: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0240: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0250: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0260: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0270: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0280: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0290: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x02A0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x02B0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x02C0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x02D0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0300: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x02E0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0310: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x02F0: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0320: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ------------------------------------------------------------------------- | ||
0x0330: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x0300: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0340: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x0310: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0350: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x0320: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0360: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x0330: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0370: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | 0x0340: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | ||
0x0350: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0360: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0370: DE AD BE AF FA CE BA BE DE AD BE AF FA CE BA BE ................ | |||
0x0380: 42 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C B....|.PQ..0MQw| | 0x0380: 42 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C B....|.PQ..0MQw| | ||
0x0390: 43 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C C....|.PQ..0MQw| | 0x0390: 43 03 00 94 B4 7C B6 50 51 E5 84 30 4D 51 77 7C C....|.PQ..0MQw| | ||
Line 1,415: | Line 799: | ||
</pre> | </pre> | ||
<br> | |||
= Dumped data (DECR) =´ | |||
<pre> | <pre> | ||
0000000 0000 0200 00c0 ff00 0000 0000 0000 0000 | |||
0000010 49eb 4a35 26c3 7a51 881e 5dc9 0352 54f1 | |||
0000020 d07c 8877 1bd1 a213 dd43 24c7 79a4 d15c | |||
0000030 b93f c1f3 0ae9 4328 d830 82e0 6e20 2906 | |||
0000040 aaee d04c 44ac 7edd 0000 0000 0000 0000 | |||
0000050 579d 03cf ebe0 7a89 828f d63b f583 1dfb | |||
0000060 b6f5 d336 d548 2056 b987 fd3a 493b 71ab | |||
0000070 4008 b533 0740 b884 3f73 91d1 3e04 e81b | |||
0000080 0300 1500 0000 0000 8f39 3b56 c3d3 2719 | |||
0000090 f542 2a0b 0d06 6431 f318 8ae3 ab0a bed0 | |||
00000a0 d7f0 7a47 f4a7 5ba7 092d 4878 46e9 6240 | |||
00000b0 0400 7800 0000 0000 009f b7c1 85ba f09b | |||
00000c0 2f54 07b8 2e3a c4b7 d048 6d4b 10c8 994b | |||
00000d0 1eec 9db0 a3e9 04b4 9def b07d 2483 7369 | |||
00000e0 0300 5500 0000 0000 02e9 49a0 20ca 495d | |||
00000f0 6546 86fe b4cf 1e3b 0045 046e ffff ffff | |||
0000100 ffff ffff ffff ffff ffff ffff ffff ffff | |||
0000110 0300 1500 0000 0000 c204 3714 9009 3bc3 | |||
0000120 e024 2c8c 93d8 a514 5879 5190 ffff ffff | |||
0000130 ffff ffff ffff ffff ffff ffff ffff ffff | |||
0000140 0100 0000 0000 0000 020f f032 094c bc59 | |||
0000150 c101 761c 2e77 a4e0 c180 2feb ffff ffff | |||
0000160 ffff ffff ffff ffff ffff ffff ffff ffff | |||
0000170 0100 0000 0000 0000 b233 a494 e16b 7449 | |||
0000180 5fcc 48ee ae19 763c d2cd db7d ffff ffff | |||
0000190 ffff ffff ffff ffff ffff ffff ffff ffff | |||
00001a0 adde afbe cefa beba 0000 0000 0000 0000 | |||
00001b0 b01f f2c8 e555 441a eb3a 5177 f415 252f | |||
00001c0 b091 2b3a 7943 cac8 5e59 8c3c f5b9 5495 | |||
00001d0 0100 0000 0106 0000 0000 0000 0000 0000 | |||
00001e0 0000 0000 0000 0000 0000 0000 0000 0000 | |||
* | |||
0000200 0300 1000 0000 0000 0000 0000 0000 0000 | |||
0000210 0000 0000 0000 0000 0000 0000 0000 0000 | |||
* | |||
0000230 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000240 5bd5 81f0 fa49 0b71 5899 edd3 3ed5 9630 | |||
0000250 9759 bfb2 6229 86e7 6fde 1c67 198e 87e1 | |||
0000260 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000270 2bc7 313f 3b5d b760 c6a0 38f5 d740 04a0 | |||
0000280 562c 01df ad6f 2635 9eac 52b1 4e97 e84d | |||
0000290 adde afbe cefa beba 0000 0000 0000 0000 | |||
00002a0 84f0 e07f de42 af21 b958 11a4 d003 a8ff | |||
00002b0 9de3 2554 dd28 467d 2420 ef43 a33a aa9e | |||
00002c0 adde afbe cefa beba 0000 0000 0000 0000 | |||
00002d0 6eff 37f8 2f55 e07a 5362 bed4 d0d1 38e1 | |||
00002e0 8235 de2d d7a6 d4ed f6a7 957d b84f a641 | |||
00002f0 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000300 017f 783c 9a0b df98 137d efce c4ef e934 | |||
0000310 137c e3d5 85ff a90b b81d 0eb3 63f4 48d9 | |||
0000320 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000330 4f8e e7c0 a9c9 14da 2d2b 2dad 484e 5bf5 | |||
0000340 ca06 e65a 457b 45e1 c6a5 a6b1 8ea5 49d5 | |||
0000350 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000360 e9c4 9aa3 7cec 9736 4f25 3de4 73ea 6398 | |||
0000370 177c 570a 44ed 0870 b06a 3a9e f2c4 b5cc | |||
0000380 7c49 745c 7545 c566 7407 664b 8458 d842 | |||
0000390 71cb a8a4 557e 64e7 24b3 474f 61aa 3231 | |||
00003a0 f850 edc1 7a64 0a3b f640 a190 538e 7165 | |||
00003b0 8714 9574 14ef 4048 28e7 7451 d242 8237 | |||
00003c0 f278 9ed8 6406 4971 6520 f968 79e0 38f7 | |||
00003d0 1b6f 6d9e 58bc aeeb 433f 4983 0bb0 f413 | |||
00003e0 7b1d 9a48 a3f1 22fb 006e 757a e3d8 47c7 | |||
00003f0 0e0e ec8a 5343 654a 8b19 4985 9be0 fe15 | |||
</pre> | </pre> | ||
<br> | |||
<pre> | <pre> | ||
0000000 0000 0200 00c0 ff00 0000 0000 0000 0000 | |||
0000010 68b4 7f3b 57ad 0f3f a223 e8a1 4911 f5f4 | |||
0000020 c928 9f3e f814 f92e 49c1 46cd a06c af0e | |||
0000030 1974 b2b8 9211 f6d0 0c69 5aa6 36e0 1815 | |||
0000040 5227 5f89 59cf 2842 0000 0000 0000 0000 | |||
0000050 9d14 1e2f 07c8 77f8 e992 cee4 1200 9aa0 | |||
0000060 cfad 9941 d3f9 83ec 8f2c 8026 c0d4 0efb | |||
0000070 a3b3 ea61 419a cf17 50e8 d215 a359 dc51 | |||
0000080 0300 1500 0000 0000 8f39 3b56 c3d3 2719 | |||
0000090 f542 2a0b 0d06 6431 f318 8ae3 ab0a bed0 | |||
00000a0 d7f0 7a47 f4a7 5ba7 092d 4878 46e9 6240 | |||
00000b0 0300 1500 0000 0000 8f39 3b56 c3d3 2719 | |||
00000c0 f542 2a0b 0d06 6431 f318 8ae3 d405 7915 | |||
00000d0 68f7 df8a 9ead 34cd c7b4 a89f 99c6 ee82 | |||
00000e0 0300 1500 0000 0000 c204 3714 9009 3bc3 | |||
00000f0 e024 2c8c 93d8 a514 5879 5190 ffff ffff | |||
0000100 ffff ffff ffff ffff ffff ffff ffff ffff | |||
0000110 0300 1500 0000 0000 c204 3714 9009 3bc3 | |||
0000120 e024 2c8c 93d8 a514 5879 5190 ffff ffff | |||
0000130 ffff ffff ffff ffff ffff ffff ffff ffff | |||
0000140 0100 0000 0000 0000 b233 a494 e16b 7449 | |||
0000150 5fcc 48ee ae19 763c d2cd db7d ffff ffff | |||
0000160 ffff ffff ffff ffff ffff ffff ffff ffff | |||
0000170 0100 0000 0000 0000 b233 a494 e16b 7449 | |||
0000180 5fcc 48ee ae19 763c d2cd db7d ffff ffff | |||
0000190 ffff ffff ffff ffff ffff ffff ffff ffff | |||
00001a0 adde afbe cefa beba 0000 0000 0000 0000 | |||
00001b0 3819 8f98 c393 a92f 51c6 cf23 ca12 3669 | |||
00001c0 593e 417e 561f 03d4 c3f4 6bd2 515d f4e4 | |||
00001d0 0100 0000 0106 0000 0000 0000 0000 0000 | |||
00001e0 0000 0000 0000 0000 0000 0000 0000 0000 | |||
* | |||
0000200 0300 1000 0000 0000 0000 0000 0000 0000 | |||
0000210 0000 0000 0000 0000 0000 0000 0000 0000 | |||
* | |||
0000230 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000240 fb5f 0b4e ffa7 f463 0af7 d422 3d1b 7df4 | |||
0000250 3224 b171 84f9 cdb0 42d7 ff7e 770c 06c7 | |||
0000260 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000270 f1b9 9fda a001 a3ba ce3f 46ee f641 f440 | |||
0000280 1079 1cf6 3ec8 55f3 2c8d 4dd0 fa7e 8127 | |||
0000290 adde afbe cefa beba 0000 0000 0000 0000 | |||
00002a0 5aa9 ea92 a664 c564 06a2 3893 39b0 ad45 | |||
00002b0 adf3 ff9d 1790 2688 d3b1 d66a a520 2d73 | |||
00002c0 adde afbe cefa beba 0000 0000 0000 0000 | |||
00002d0 d931 8471 bc3d b044 7a2c f364 c2c6 d18c | |||
00002e0 704d f08e 8f58 2a96 9082 d2ea 1ff4 a9e6 | |||
00002f0 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000300 0b40 1d6d 4ffb d2ce 8cda e2b2 2127 2796 | |||
0000310 5176 c8cf a31e edad 8d7a 9e9e 82a7 b3c1 | |||
0000320 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000330 9bd1 dadb 3269 5e00 2f09 8ed4 0922 0397 | |||
0000340 ab01 d61b 190e 3c41 b600 402c e407 45ff | |||
0000350 adde afbe cefa beba 0000 0000 0000 0000 | |||
0000360 7106 1509 7e89 fa7d 38b9 e01a cb99 3302 | |||
0000370 9b44 40d6 af90 b901 b489 1dc0 af25 844f | |||
0000380 9181 e21f 59fc fbb4 dd43 0f31 9600 4eb6 | |||
0000390 5e41 7891 4fd2 045c 7113 095d 952f af4f | |||
00003a0 fe43 1cb6 6c0b 1c4d 0b13 42a0 47a9 bc2d | |||
00003b0 f454 80f5 57b2 a25b 3e34 0b76 3fa0 41a8 | |||
00003c0 9fc9 8f96 b19b bcf8 5d3b a044 006a 2338 | |||
00003d0 b8a0 2453 fdf8 5e34 64b9 aff0 286e 234e | |||
00003e0 eb6b db86 72b2 ad80 cdbc d59d 42bc d29d | |||
00003f0 77af ab6c 0806 c9d8 2f91 8df3 fd45 39df | |||
</pre> | </pre> | ||
== More samples == | == More samples == | ||
* | * https://dl.dropboxusercontent.com/u/35197530/bin/eeprom.bin | ||
= Tokens = | =Tokens= | ||
Here | Here we will document the different types off tokens known in the PS3 | ||
All tokens are tied? encrypted? using EID0. | |||
All tokens are tied | They enable additional repository nodes. | ||
==List== | |||
{| class="wikitable FCK__ShowTableBorders" | {| class="wikitable FCK__ShowTableBorders" | ||
|- | |- | ||
Line 1,640: | Line 954: | ||
| qa_token || sc_eeprom - 0x48D3E || 0x50 || spu_token_processor.self || | | qa_token || sc_eeprom - 0x48D3E || 0x50 || spu_token_processor.self || | ||
|- | |- | ||
| user_token || | | user_token || ? || ? || spu_utoken_processor.self || Encrypted/Signed | ||
|- | |- | ||
| token_seed || | | token_seed || ? || ? || ? || This is used to create the token with EID0 | ||
|} | |} | ||
== | ==Token Seed== | ||
? | |||
==Structure== | |||
This section has to be corrected, is only based on debug strings, we need to decrypt the tokens | |||
===Token Seed=== | |||
=== Token Seed === | |||
? | ? | ||
=== QA Token === | ===QA Token=== | ||
===User Token=== | |||
{| class="wikitable FCK__ShowTableBorders" | {| class="wikitable FCK__ShowTableBorders" | ||
|- | |- | ||
! | ! Address !! Size !! Description | ||
|- | |- | ||
| ? || ? || m_magic | | ? || ? || m_magic | ||
Line 1,704: | Line 987: | ||
| ? || ? || m_size | | ? || ? || m_size | ||
|- | |- | ||
| ? || ? || | | ? || ? || m_capability | ||
|- | |- | ||
| ? || ? || m_expire_date | | ? || ? || m_expire_date | ||
|- | |- | ||
| ? || ? || | | ? || ? || m_idps? | ||
|- | |- | ||
| ? || ? || m_attribute | | ? || ? || m_attribute | ||
Line 1,715: | Line 998: | ||
|} | |} | ||
For every | For every atribute in the token | ||
{| class="wikitable FCK__ShowTableBorders" | {| class="wikitable FCK__ShowTableBorders" | ||
|- | |- | ||
! | ! Address !! Size !! Description | ||
|- | |- | ||
| ? || ? || attr:m_type | | ? || ? || attr:m_type | ||
Line 1,732: | Line 1,015: | ||
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;" | {| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;" | ||
|- | |- | ||
! style="background-color:red | ! style="background-color:red;" | <span style="background-color:lightred; color:white; font-size:200%; ">Warning</span> | ||
|- | |- | ||
| <span style="white; color:red | | style="background-color:white;" | <span style="white; color:red; font-size:150%; text-align:center; ">You can use this method at your own risk. Author is not responsible for any hardware damages and failures. | ||
|} | |} | ||
== Bus Pirate 3 Solderless method == | == Bus Pirate 3 Solderless method == | ||
=== | === You need === | ||
1) PS3 motherboard with BGA syscon chip (COK001, COK002, SEM001, DIA001, etc) | 1) PS3 motherboard with BGA syscon chip (COK001, COK002, SEM001, DIA001, etc) | ||
Line 1,755: | Line 1,036: | ||
=== Hardware Part === | === Hardware Part === | ||
Find the | Find the syscon on your PS3 motherboard. | ||
[[File:CXR713120 on SEM-001.JPG|thumbnail|none]] | [[File:CXR713120 on SEM-001.JPG|thumbnail|none]] | ||
Look at the | Look at the EEPROM Pins location and Draw serifs on the upper surface of the chip, strictly on these pins using pencil. | ||
[[File:CXR713120_EEPROM_PINS.JPG||thumbnail|none]] | [[File:CXR713120_EEPROM_PINS.JPG||thumbnail|none]] | ||
Line 1,767: | Line 1,048: | ||
[[File:Bus-Pirate-3 with Wires.jpg|thumbnail|none]] | [[File:Bus-Pirate-3 with Wires.jpg|thumbnail|none]] | ||
Connect Bus-Pirate to the | Connect Bus-Pirate to the EEPROM Pins using the folowing table: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Bus Pirate pin !! | ! Bus Pirate pin !! EEPROM pin | ||
|- | |- | ||
| CLK || SKB | | CLK || SKB | ||
Line 1,784: | Line 1,065: | ||
| GND || Any Ground Point | | GND || Any Ground Point | ||
|} | |} | ||
Use 1 finger to hold the wires. The wires should be well connected with the eeprom pins. | |||
Use | |||
[[File:CXR713120 EEPROM FingerTrick.JPG|thumbnail|none]] | [[File:CXR713120 EEPROM FingerTrick.JPG|thumbnail|none]] | ||
Connect Bus-Pirate to you PC with Windows7 by USB. | |||
Connect Bus-Pirate to | |||
=== Software Part === | === Software Part === | ||
Line 1,803: | Line 1,082: | ||
Download and Run Syscon Flasher.exe | Download and Run Syscon Flasher.exe | ||
Download link: https:// | Download link: https://mega.co.nz/#!clljxQgQ!vE93p35DJ9-FMKuxpev3zZvPBnxP_IQscPSXK9ocmH8 | ||
MD5=D59A8AA9E7BB1AEB753D7C6391CE17B1 | MD5=D59A8AA9E7BB1AEB753D7C6391CE17B1 | ||
Line 1,817: | Line 1,096: | ||
3) Press "Power on" button. If done correctly, then "VREG" Led on the Bus Pirate will be Red. | 3) Press "Power on" button. If done correctly, then "VREG" Led on the Bus Pirate will be Red. | ||
4) Press "Browse" button and specify location and file name for your | 4) Press "Browse" button and specify location and file name for your syscon eeprom dump. | ||
5) Specify Offset and Length. Offset=0 Length=0x8000 for full dump | 5) Specify Offset and Length. Offset=0 Length=0x8000 for full dump the eeprom. | ||
6) Press "Fast Read" button and wait about 15sec. | 6) Press "Fast Read" button and wait about 15sec. | ||
Enjoy: | |||
My dump, for example: | My dump, for example: | ||
https://mega.co.nz/#!E1kHgSZJ!4e7TdNLdkQQzinwlnRO2KmaBd0GeBliHuHFe2tkmBgQ | |||
== Bus Pirate 3 method by: ([[User_talk:Zer0Tolerance|Zer0Tolerance]]) == | == Bus Pirate 3 method by: ([[User_talk:Zer0Tolerance|Zer0Tolerance]]) == | ||
=== | === You need === | ||
1) PS3 motherboard. I am using '''DIA-001'''. may be we can dump it from another boards, but it is unknown yet. | |||
1) PS3 motherboard. I am using '''DIA-001'''. | |||
2) Device that can work with SPI interface and send any commands. I am using a Bus Pirate v3.6 with connectors. | 2) Device that can work with SPI interface and send any commands. I am using a Bus Pirate v3.6 with connectors. | ||
Line 1,845: | Line 1,125: | ||
=== Preparation === | === Preparation === | ||
Find the test points on the motherboard using | Find the test points on the motherboard using this picture. | ||
[[File:DIA-001 SysCon EPROM Interface.png|thumbnail|none]] | [[File:DIA-001 SysCon EPROM Interface.png|thumbnail|none]] | ||
All points are covered with varnish. You need to carefully remove the varnish to the copper and solder the wires to it. | All points are covered with varnish. You need to carefully remove the varnish to the copper and solder the wires to it. | ||
Line 1,869: | Line 1,144: | ||
| MISO || DO | | MISO || DO | ||
|- | |- | ||
| 3V3 || RBB | | 3V3 || WCB, RBB | ||
|- | |- | ||
| GND || | | GND || Any Ground Point | ||
|} | |} | ||
Make sure that the battery is attached to the motherboard. | Make sure that the battery is attached to the motherboard. | ||
Plug your Bus | Plug your Bus pirate to the USB port on your PC using mini_USB_to_USB cable. (I am using the cable from the ps3 gamepad) | ||
It should be done like this, see the following picture: | |||
[[File:Dumping SC EEPROM using Bus Pirate v3.6.JPG|thumbnail|none]] | [[File:Dumping SC EEPROM using Bus Pirate v3.6.JPG|thumbnail|none]] | ||
=== Setup software === | === Setup software === | ||
1) Install the driver for the Bus Pirate and setup your virtual COM port for it using | 1) Install the driver for the Bus Pirate and setup your virtual COM port for it using following table: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,917: | Line 1,192: | ||
Now click Open button and setup mode for bus pirate using following commands: | Now click Open button and setup mode for bus pirate using following commands: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,951: | Line 1,225: | ||
You can use Notepad++ and Hex Editor like HxD to convert the dump to binary format. | You can use Notepad++ and Hex Editor like HxD to convert the dump to binary format. | ||
<small>Read Command is 0xA8 0xXX 0xXX, XX XX is a block id to be read, the full | <small>Read Command is 0xA8 0xXX 0xXX, XX XX is a block id to be read, the full EEPROM is 32768 bytes lenght (0x8000), [r:] are syntax command of the Bus Pirate for start, read byte and end</small> | ||
== Arduino Mega method by: ([[User_talk:Abkarino|Abkarino]]) == | == Arduino Mega method by: ([[User_talk:Abkarino|Abkarino]]) == | ||
I had build my own Syscon EEPROM flasher based on open source hardware "'''Arduino Mega'''" and some resistors. | I had build my own Syscon EEPROM flasher based on open source hardware "'''Arduino Mega'''" and some resistors. | ||
This flasher will allow you fully read/write to your Syscon EEPROM (FAT consoles only till now). | |||
=== You need === | |||
1) PS3 motherboard. I had used '''SEM-0001''' board by desoldering Syscon chip form it but you can use, '''DIA-001''' for example without desoldering Syscon chip since all eeprom pins had a test points in the board it self. | |||
=== | |||
1) PS3 motherboard. I had used '''SEM-0001''' board by desoldering Syscon chip form it but you can use, '''DIA-001''' for example without desoldering Syscon chip since all | |||
2) Arduino Mega or any Arduino board. | 2) Arduino Mega or any Arduino board. | ||
Line 1,969: | Line 1,241: | ||
4) Soldering station. | 4) Soldering station. | ||
5) Wires & Bread board ( | 5) Wires & Bread board (Optional). | ||
6) Any PC that have terminal software like Putty, RealTerm and so on to access serial port, and any Hex Editor like HxD. | 6) Any PC that have terminal software like Putty, RealTerm and so on to access serial port, and any Hex Editor like HxD. | ||
Line 1,977: | Line 1,249: | ||
Find the test points on the motherboard using this picture. | Find the test points on the motherboard using this picture. | ||
[[File:DIA-001 SysCon EPROM Interface.png|thumbnail|none]] | [[File:DIA-001 SysCon EPROM Interface.png|thumbnail|none]] | ||
Or if you have a very good soldering skills and tools to desolder your SysCon then you can desolder your SysCon and solder your wires to it directly. | |||
Or if you have very good soldering skills and tools to desolder your SysCon then you can desolder your SysCon and solder your wires to it directly. | |||
All points are covered with varnish. You need to carefully remove the varnish to the copper and solder the wires to it. | All points are covered with varnish. You need to carefully remove the varnish to the copper and solder the wires to it. | ||
Line 2,005: | Line 1,276: | ||
|} | |} | ||
Make sure that the battery is attached to the motherboard if you will dump/flash SysCon EEPROM in board. | |||
=== Wiring Diagram & Photos === | === Wiring Diagram & Photos === | ||
Line 2,020: | Line 1,285: | ||
=== Arduino Sketch Source Code === | === Arduino Sketch Source Code === | ||
Here is my Arduino Mega sketch source code to allow you to read/write/erase PS3 Syscon EEPROM. | |||
http://pastie.org/10004682#8,19 | |||
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> | {{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> |