Editing Syscon Firmware
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: | ||
[[Category:Software]] | |||
Syscon Firmware is the firmware stored on the System Controller EEPROM (see [[Syscon Hardware]]). Updates are stored in update packages within the Update_files.tar of a [[Playstation Update Package (PUP)]]. Syscon Packages appear to always be 5KB (5376 bytes) in size. | |||
= | = Updates = | ||
== General Speculation == | |||
It is rumored that the firmware are not complete updates, but only patches and are also further encrypted. It is further believed that these patches are decrypted and patch memory at runtime by the original syscon firmware. | |||
== Syscon update packages == | |||
=== Known Retail syscon update packages === | |||
{| class="wikitable sortable" | |||
|- | |- | ||
! sys_con_firmware package !! 1.00-1.30 !! 1.30-1.80 !! 1.81-2.80 !! 3.00-3.30 !! 3.40 !! 3.41-4.00 !! SoftID !! Notes | |||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01000004.pkg || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || || | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01000005.pkg || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || || | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01000006.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || || | ||
| | |||
| | |||
|- | |- | ||
| SYS_CON_FIRMWARE_01010302.pkg || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || 0C16 || | |||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01010303.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || 0C16 || | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01020302.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || 0DBF || | ||
|- | |- | ||
| SYS_CON_FIRMWARE_01030302.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || 0DBF || | |||
| | |||
|- | |- | ||
| SYS_CON_FIRMWARE_01040402.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || 0E69 || | |||
| | |||
|- | |- | ||
| SYS_CON_FIRMWARE_01050002.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || || | |||
| | |||
|- | |- | ||
| SYS_CON_FIRMWARE_01050101.pkg || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || || | |||
| | |||
|- | |- | ||
| SYS_CON_FIRMWARE_S1_00010002083E0832.pkg || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || 0832 || | |||
| | |||
|- | |- | ||
|} | |} | ||
This means from syscon perspective notible firmware changes where made at 1.30, 1.81, 3.00, 3.40 and 3.41 (FW 1.30 added Backup/Restore, FW 3.00 resulted in Class action suit for BluRay reading problems). | |||
The | === Speculation of their usage === | ||
The firmware PUP's contains a collection of patches for all the different hardware revisions of syscon's chips used in different motherboard models, each of this different syscons has his specific "syscon update package" | |||
The ps3swu.self (system updater) decides wich applicable [[Syscon Hardware]] is present and installs the needed package update accordingly. | |||
Package numbers used in the names (marked as asterisks in this example) "SYS_CON_FIRMWARE_********.pkg" identifyes the "syscon hardware revision" "patch version" etc.. (not documented further) | |||
This numeric string in the format wwxxyyzz can be "translated" to wwwwxxxxyyyyzzzz by adding 2 zeroes to each value, and is the syscon patches shown in the "secret" info screen [[More_System_Information]] | |||
Syscon hardware revision 1 (0100**** in the .pkg name... or 00010000******** in the info screen) | |||
{| class="wikitable sortable" | |||
* | |||
** | |||
* | |||
** | |||
** | |||
** | |||
** | |||
{|class="wikitable" | |||
|- | |- | ||
! | ! Package name !! Size !! Included in firmwares !! Superseded by !! Notes | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01000004.pkg || 5376 bytes || from 1.30 to 1.80 || 01000005 || Not included in 1.81 and higher | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01000005.pkg || 5376 bytes || from 1.81 to 3.30 || 01000006 || Not included in 3.40 and higher | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01000006.pkg || 5376 bytes || from 3.40 to 4.00 || | ||
|- | |- | ||
| | |} | ||
| | |||
Syscon hardware revision 2 (0101**** in the .pkg name... or 00010001******** in the info screen) | |||
{| class="wikitable sortable" | |||
|- | |- | ||
! Package name !! Size !! Included in firmwares !! Superseded by !! Notes | |||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01010302.pkg || 5376 bytes || from 1.81 to 3.30 || 01010303 || Not included in 3.40 and higher | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01010303.pkg || 5376 bytes || from 3.40 to 4.00 || | ||
|- | |- | ||
|} | |} | ||
Syscon hardware revision 3 (0102**** in the .pkg name... or 00010002******** in the info screen) | |||
{|class="wikitable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! Package name !! Size !! Included in firmwares !! Superseded by !! Notes | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01020302.pkg || 5376 bytes || from 3.40 to 4.00 || || | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_S1_00010002083E0832.pkg || 5376 bytes || from 3.00 to 4.00 || || special update?? unknown mode | ||
| | |||
| | |||
| | |||
| | |||
|- | |- | ||
|} | |} | ||
Syscon hardware revision 4 (0103**** in the .pkg name... or 00010003******** in the info screen) | |||
{| class="wikitable sortable" | |||
{|class="wikitable" | |||
|- | |- | ||
! Package name !! Size !! Included in firmwares !! Superseded by !! Notes | |||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01030302.pkg || 5376 bytes || from 3.40 to 4.00 || || | ||
| | |||
| | |||
|- | |- | ||
|} | |} | ||
Syscon hardware revision 5 (0104**** in the .pkg name... or 00010004******** in the info screen) | |||
{|class="wikitable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! Package name !! Size !! Included in firmwares !! Superseded by !! Notes | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01040402.pkg || 5376 bytes || from 3.40 to 4.00 || || | ||
| | |||
|- | |- | ||
|} | |} | ||
Syscon hardware revision 6 (0105**** in the .pkg name... or 00010005******** in the info screen) | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! Package name !! Size !! Included in firmwares !! Superseded by !! Notes | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01050002.pkg || 5376 bytes || from 3.40 to 4.00 || || | ||
|- | |- | ||
| | | SYS_CON_FIRMWARE_01050101.pkg || 5376 bytes || from 3.41 to 4.00 || || cummulative update? | ||
|- | |- | ||
|} | |} | ||
Note To end the speculation dispute: | |||
# reversing of ps3swu.self proves indisputable how exactly the packages are applied | |||
# more reported info is needed on the reported SC values in [[More_System_Information]] from the various [[SKU Models]] for their respective [[Syscon Hardware]] - especially when the values are non zero. Also the 00010002083E0832 seems to be an odd one, as it is rare to see this one reported. | |||
== Decryption == | |||
Packages can be decrypted with the unpkg tool. Decrypted content of the updates appears to always be 0x1000 bytes (4KB). | |||
== Header == | |||
The header format is completely unknown at this stage. | |||
=== Sample === | |||
<pre> | <pre> | ||
00000000 1B 2D 70 0F AB 5E B3 99 68 20 FE 3D E1 80 6A 1D .-p.«^³™h þ=á€j. | 00000000 1B 2D 70 0F AB 5E B3 99 68 20 FE 3D E1 80 6A 1D .-p.«^³™h þ=á€j. | ||
Line 346: | Line 138: | ||
</pre> | </pre> | ||
=== Observations === | |||
* The first 4 bytes (0x1B2D700F) appear static in each package. | |||
* The next 20 bytes appear to change with each package | |||
* The following 12 bytes (0x0000000000100000C00F0000) also appear static | |||
=== | |||
The | |||
* | |||
* | |||
== Access to Syscon from Linux == | |||
Access SysCon ROM without needing ps3dm-utils: http://wiki.gitbrew.org/index.php/PS3:HvReverseEngineering#SYSCON |