Editing Talk:SC EEPROM

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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 4: Line 4:


Pseudo-code:
Pseudo-code:
<syntaxhighlight lang="python">
<source lang="python">
def check_bootrom_diag_mode(mode, param)
def check_bootrom_diag_mode(mode, param)
         diag_mode = get_eeprom_bootrom_diag()
         diag_mode = get_eeprom_bootrom_diag()
Line 16: Line 16:
                 param = -1
                 param = -1
         return 1
         return 1
</syntaxhighlight>
</source>


== EEPROM Dumps ==
== EEPROM Dumps ==
Line 28: Line 28:
== Bus Pirate stuff ==
== Bus Pirate stuff ==


https://www.psdevwiki.com/ps3/File:48rbR51.png
http://i.imgur.com/48rbR51.png


(needs more wikifying)
(needs more wikifying)
Line 310: Line 310:
! colspan="3" | Area !! colspan="4" | [[Syscon_Hardware|<abbr title="Only Mullion syscons have a direct SPI access to the EEPROM>SPI</abbr> / <abbr title="All syscons have a UART access>UART</abbr>]] !! colspan="5" | [[LV2_Functions_and_Syscalls#process_socket_service_syscalls|Syscall 863]] (sys_ss_update_manager) !! class="unsortable" rowspan="3" | Data Name !! class="unsortable" rowspan="3" | Wikitable builder Notes (temporal)
! colspan="3" | Area !! colspan="4" | [[Syscon_Hardware|<abbr title="Only Mullion syscons have a direct SPI access to the EEPROM>SPI</abbr> / <abbr title="All syscons have a UART access>UART</abbr>]] !! colspan="5" | [[LV2_Functions_and_Syscalls#process_socket_service_syscalls|Syscall 863]] (sys_ss_update_manager) !! class="unsortable" rowspan="3" | Data Name !! class="unsortable" rowspan="3" | Wikitable builder Notes (temporal)
|-
|-
! class="unsortable" rowspan="2" | Name !! class="unsortable" rowspan="2" | Size !! class="unsortable" style="padding:1px" rowspan="2" | [[Template:Syscon_checksums|<Abbr title="Checksum">csum</abbr>]] !! colspan="2" | [[Mullion]] !! style="padding:1px" | [[Sherwood]] !! style="padding:1px" | Whitelist !! class="unsortable" style="padding:1px" colspan="2" | [[SC_Manager#0x900B_-_SC_Read_EPROM|Block Access]] !! colspan="3" | Whitelist
! class="unsortable" rowspan="2" | Name !! class="unsortable" rowspan="2" | Size !! class="unsortable" style="padding:1px" rowspan="2" | [[Template:Syscon_checksums|<Abbr title="Checksum">csum</abbr>]] !! colspan="2" | [[Mullion]] !! style="padding:1px" | [[Sherwood]] !! style="padding:1px" | whitelist !! class="unsortable" style="padding:1px" colspan="2" | [[SC_Manager#0x900B_-_SC_Read_EPROM|NVS Block Access]] !! colspan="3" | whitelist
|-
|-
! <abbr title="201GB, 202GB">32KB</abbr> !! <abbr title="203GB, 301GB, 302GB, 303GB, 304GB">20KB</abbr> !! [[Syscon_SW_Series|SW]]/[[Syscon_SW2_Series|2]]/[[Syscon_SW3_Series|3]]<small><abbr title="Emulated EEPROM">(emu)</abbr></small> !! class="unsortable" | [[Syscon_Firmware#Command_list|EEP]] !! ID !! Offset !! class="unsortable" | [[SC_Manager|SCM]] !! class="unsortable" | [[Update_Manager|UM]] !! class="unsortable" | [[Dispatcher_Manager|DM]]
! <abbr title="201GB, 202GB">32KB</abbr> !! <abbr title="203GB, 301GB, 302GB, 303GB, 304GB">20KB</abbr> !! [[Syscon_SW_Series|SW]]/[[Syscon_SW2_Series|2]]/[[Syscon_SW3_Series|3]]<small><abbr title="Emulated EEPROM">(emu)</abbr></small> !! class="unsortable" | [[Syscon_Firmware#Command_list|EEP]] !! ID !! Offset !! class="unsortable" | lv1/[[Dispatcher_Manager|DM]] !! class="unsortable" | [[Update_Manager|UM]] !! class="unsortable" | [[SC_Manager|SCM]]
|- class="sorttop"
|- class="sorttop"
! colspan="14" style="padding:0px" |
! colspan="14" style="padding:0px" |
Line 323: Line 323:
|- {{cellcolors|#ffffcc}}
|- {{cellcolors|#ffffcc}}
! Patch 1 !! 0x400 !! {{No}}
! Patch 1 !! 0x400 !! {{No}}
| <abbr title="Encrypted">0x2800</abbr> || <abbr title="Encrypted">0x2800</abbr> || <abbr title="The patch, in decrypted format, is stored in a contiguos area in FLASH, offset 0x2000, length 0x1000>0x2000</abbr> || {{exploitable}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || [[Syscon_Firmware#Syscon_patches|Syscon Firmware Patch]] (top half) ||  
| <abbr title="Encrypted">0x2800</abbr> || <abbr title="Encrypted">0x2800</abbr> || <abbr title="The patch, in decrypted format, is stored in FLASH, offset 0x2000, length 0x1000>0x2000<small>(flash)</small></abbr> || {{exploitable}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || [[Syscon_Firmware#Syscon_patches|Syscon Firmware Patch]] (top half) ||  
|- {{cellcolors|lightgrey}}
|- {{cellcolors|lightgrey}}
! - !! 0x300 !! {{No}}
! - !! 0x300 !! {{No}}
| 0x2C00 || 0x2C00 || 0x0B00 || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || Filled with FF's
| 0x2C00 || 0x2C00 || 0x0B00 || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || Filled with FF's
|-
|-
! Industry Area !! 0x100 !! {{no}}
! Industry Area !! 0x100 !! {{no}}
| 0x2F00 || 0x2F00 || 0x0E00 || {{yes}} || 0x10 || 0x02F00 || {{yes}} || {{yes}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 20+ rows
| 0x2F00 || 0x2F00 || 0x0E00 || {{yes}}/UART || 0x10 || 0x02F00 || {{patchable}} || {{yes}} || {{yes}} ||  || This wikitable row needs to be splitted up to 20+ rows
|- {{cellcolors|#e3e3e3}}
|- {{cellcolors|#e3e3e3}}
! Customer Service Area !! 0x100 !! {{no}}
! Customer Service Area !! 0x100 !! {{no}}
| 0x3000 || 0x3000 || 0x0F00 || {{yes}} || 0x20 || 0x03000 || {{yes}} || {{yes}} || {{patchable}} ||  || Filled with FF's ?
| 0x3000 || 0x3000 || 0x0F00 || {{yes}}/UART || 0x20 || 0x03000 || {{patchable}} || {{yes}} || {{yes}} ||  || Filled with FF's ?
|-
|-
! Platform Config !! 0x100 !! {{yes}}
! Platform Config !! 0x100 !! {{yes}}
| 0x3100 || 0x3100 || 0x0040~ || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 5+ rows
| 0x3100 || 0x3100 || 0x0040~ || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 5+ rows
|-
|-
! Hardware Config !! 0x100 !! {{yes}}
! Hardware Config !! 0x100 !! {{yes}}
| 0x3200 || 0x3200 || 0x0140~ || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 40+ rows
| 0x3200 || 0x3200 || 0x0140~ || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 40+ rows
|-
|-
! Thermal Config !! 0x200<!-- size reduced to 0x1B0 for sherwoods ? --> !! {{yes}}
! Thermal Config !! 0x200<!-- size reduced to 0x1B0 for sherwoods ? --> !! {{yes}}
| 0x3300 || 0x3300 || 0x0250 (size 0x1B0) || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || [[Syscon_Thermal_Configs/structs|Data table]]. See: [[Syscon Thermal Configs]] ||  
| 0x3300 || 0x3300 || 0x0250 (size 0x1B0) || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || [[Syscon_Thermal_Configs/structs|Data table]]. See: [[Syscon Thermal Configs]] ||  
|-
|-
! BE Count !! 0x200<!-- size reduced to 0x100 for sherwoods ? --> !! {{no}}
! BE Count !! 0x200<!-- size reduced to 0x100 for sherwoods ? --> !! {{no}}
| 0x3500 || 0x3500 || 0x0800 (size 0x100) || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || Data table ||  
| 0x3500 || 0x3500 || 0x0800 (size 0x100) || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || Data table ||  
|-
|-
! Error Log !! 0x100 !! {{no}}
! Error Log !! 0x100 !! {{no}}
| 0x3700 || 0x3700 || 0x0900 || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || Data table. See: [[Syscon Error Codes]] ||  
| 0x3700 || 0x3700 || 0x0900 || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || Data table. See: [[Syscon Error Codes]] ||  
|- {{cellcolors|lightgrey}}
|- {{cellcolors|lightgrey}}
! - !! 0x100 !! {{No}}
! - !! 0x100 !! {{No}}
| 0x3800 || 0x3800 || N/A ? || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || Filled with FF's
| 0x3800 || 0x3800 || N/A ? || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || Filled with FF's
|-
|-
! Board Config/Debug !! 0x100 !! {{yes}}
! Board Config/Debug !! 0x100 !! {{yes}}
| 0x3900 || 0x3900 || 0x0000~ ? || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 15+ rows
| 0x3900 || 0x3900 || 0x0000~ ? || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 15+ rows
|-
|-
! HDMI/DVE Config !! 0x100 !! {{no}}
! HDMI/DVE Config !! 0x100 !! {{no}}
| 0x3A00 || 0x3A00 || 0x0A00 || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 5+ rows
| 0x3A00 || 0x3A00 || 0x0A00 || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} ||  || This wikitable row needs to be splitted up to 5+ rows
|- {{cellcolors|lightgrey}}
|- {{cellcolors|lightgrey}}
! - !! 0x100 !! {{No}}
! - !! 0x100 !! {{No}}
| 0x3B00 || 0x3B00 || N/A ? || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || Filled with FF's
| 0x3B00 || 0x3B00 || N/A ? || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || Filled with FF's
|- {{cellcolors|lightgrey}}
|- {{cellcolors|lightgrey}}
! Config Ring !! 0x200 !! {{yes}}
! Config Ring !! 0x200 !! {{yes}}
| 0x3C00 || 0x3C00 || 0x0400 ? || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || <abbr title="When filled with 0xFF's the checksum at the last 2 bytes is 0xFF00">Filled with FF's</abbr>
| 0x3C00 || 0x3C00 || 0x0400 ? || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || <abbr title="When filled with 0xFF's the checksum at the last 2 bytes is 0xFF00">Filled with FF's</abbr>
|- {{cellcolors|lightgrey}}
|- {{cellcolors|lightgrey}}
! Debug 2 !! 0x200 !! {{yes}}
! Debug 2 !! 0x200 !! {{yes}}
| 0x3E00 || 0x3E00 || 0x0600 ? || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || <abbr title="When filled with 0xFF's the checksum at the last 2 bytes is 0xFF00">Filled with FF's</abbr>
| 0x3E00 || 0x3E00 || 0x0600 ? || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''not used'' || <abbr title="When filled with 0xFF's the checksum at the last 2 bytes is 0xFF00">Filled with FF's</abbr>
|- {{cellcolors|#888}}
|- {{cellcolors|#888}}
! - !! 0x3000 !! {{No}}
! - !! 0x3000 !! {{No}}
| 0x4000 || N/A || N/A || {{yes}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''reserved'' || Filled with FF's
| 0x4000 || N/A || N/A || {{yes}}/UART || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || style="text-align:center" | ''reserved'' || Filled with FF's
|- {{cellcolors|#e3e3e3}}
|- {{cellcolors|#e3e3e3}}
! System Config ? !! 0x100 !! {{no}}
! System Config ? !! 0x100 !! {{no}}
| 0x7000 || 0x4000 || 0x1000 || {{yes}} || 0x0 || 0x48000 || {{yes}} || {{patchable}} || {{patchable}} ||  || Filled with FF's ?
| 0x7000 || 0x4000 || 0x1000 || {{yes}}/UART || 0x0 || 0x48000 || {{patchable}} || {{patchable}} || {{yes}} ||  || Filled with FF's ?
|-
|-
! Event Log ? !! 0x100 !! {{no}}
! System Event Log ? !! 0x100 !! {{no}}
| 0x7100 || 0x4100 || 0x1100 || {{yes}} || 0x1 || 0x48800 || {{yes}} || {{patchable}} || {{patchable}} || Data table (0x10+(0x6*0x28)) || <abbr title="It looks like a data table with a 0x10 header and six entries of 0x28 bytes lenght">Header + Data table ?</abbr>
| 0x7100 || 0x4100 || 0x1100 || {{yes}}/UART || 0x1 || 0x48800 || {{patchable}} || {{patchable}} || {{yes}} || Data table (0x10+(0x6*0x28)) || <abbr title="It looks like a data table with a 0x10 header and six entries of 0x28 bytes lenght">Header + Data table ?</abbr>
|-
|-
! Flags and Tokens !! 0x100 !! {{no}}
! Flags and Tokens !! 0x100 !! {{no}}
| 0x7200 || 0x4200 || 0x1200 || {{yes}} || 0x2 || 0x48C00 || {{yes}} || <abbr title="Every individual value needs a specific tag, either yes or patch">varies</abbr> || {{patchable}} ||  || This wikitable row needs to be splitted up to 50+ rows
| 0x7200 || 0x4200 || 0x1200 || {{yes}}/UART || 0x2 || 0x48C00 || {{patchable}} || <abbr title="Every individual value needs a specific tag">Yes<br>or<br>Patch*</abbr> || {{yes}} ||  || This wikitable row needs to be splitted up to 50+ rows
|- {{cellcolors|#e3e3e3}}
|- {{cellcolors|#e3e3e3}}
! System Data ? !! 0x100 !! {{no}}
! System Data ? !! 0x100 !! {{no}}
| 0x7300 || 0x4300 || 0x1300 || {{yes}} || 0x3 || 0x48D00 || {{yes}} || {{patchable}} || {{patchable}} ||  || Filled with FF's ?
| 0x7300 || 0x4300 || 0x1300 || {{yes}}/UART || 0x3 || 0x48D00 || {{patchable}} || {{patchable}} || {{yes}} ||  || Filled with FF's ?
|- {{cellcolors|#ffffcc}}
|- {{cellcolors|#ffffcc}}
! Patch 2 !! 0xC00 !! {{No}}
! Patch 2 !! 0xC00 !! {{No}}
| <abbr title="Encrypted">0x7400</abbr> || <abbr title="Encrypted">0x4400</abbr> || <abbr title="The patch, in decrypted format, is stored in a contiguos area in FLASH, offset 0x2000, length 0x1000>0x2400</abbr> || {{exploitable}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || [[Syscon_Firmware#Syscon_patches|Syscon Firmware Patch]] (bottom half) ||
| <abbr title="Encrypted">0x7400</abbr> || <abbr title="Encrypted">0x4400</abbr> || <abbr title="The patch, in decrypted format, is stored in FLASH, offset 0x2000, length 0x1000>0x2000<small>(flash)</small></abbr> || {{exploitable}} || {{no}} || {{no}} || {{patchable}} || {{patchable}} || {{patchable}} || [[Syscon_Firmware#Syscon_patches|Syscon Firmware Patch]] (bottom half) ||
|}
|}
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)