Syscon Firmware: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 10: Line 10:
== Syscon update packages ==
== Syscon update packages ==


=== Known Retail syscon update packages ===
* <span style="background-color:white; color:#993333;">SYS_CON_FIRMWARE_01000004.pkg (5376 bytes) Firmware 1.30 up to 1.80</span> (not 1.81 and higher)
* <span style="background-color:white; color:#993333;">SYS_CON_FIRMWARE_01000005.pkg (5376 bytes) Firmware 1.81 up to 3.30</span> (not 3.40 and higher)
* SYS_CON_FIRMWARE_01000006.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* <span style="background-color:white; color:#993333;">SYS_CON_FIRMWARE_01010302.pkg (5376 bytes) Firmware 1.81 up to 3.30</span> (not 3.40 and higher)
* SYS_CON_FIRMWARE_01010303.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* SYS_CON_FIRMWARE_01020302.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* SYS_CON_FIRMWARE_01030302.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* SYS_CON_FIRMWARE_01040402.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* SYS_CON_FIRMWARE_01050002.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* SYS_CON_FIRMWARE_01050101.pkg (5376 bytes) Firmware 3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
* SYS_CON_FIRMWARE_S1_00010002083E0832.pkg (5376 bytes) Firmware 3.00/3.01/3.10/3.15/3.20/3.21/3.30/3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
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).
=== Speculation of their usage ===
The UPDATE.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 UPDATE.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"


Line 47: Line 66:
* SYS_CON_FIRMWARE_01050101.pkg (5376 bytes) Firmware from 3.41 to 4.00 (cummulative update?)
* SYS_CON_FIRMWARE_01050101.pkg (5376 bytes) Firmware from 3.41 to 4.00 (cummulative update?)


 
Note: To end the speculation dispute 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.
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).


== Decryption ==
== Decryption ==

Revision as of 11:13, 5 January 2012

Syscon Firmware is the firmware stored on the System Controller (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

  • SYS_CON_FIRMWARE_01000004.pkg (5376 bytes) Firmware 1.30 up to 1.80 (not 1.81 and higher)
  • SYS_CON_FIRMWARE_01000005.pkg (5376 bytes) Firmware 1.81 up to 3.30 (not 3.40 and higher)
  • SYS_CON_FIRMWARE_01000006.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_01010302.pkg (5376 bytes) Firmware 1.81 up to 3.30 (not 3.40 and higher)
  • SYS_CON_FIRMWARE_01010303.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_01020302.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_01030302.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_01040402.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_01050002.pkg (5376 bytes) Firmware 3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_01050101.pkg (5376 bytes) Firmware 3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00
  • SYS_CON_FIRMWARE_S1_00010002083E0832.pkg (5376 bytes) Firmware 3.00/3.01/3.10/3.15/3.20/3.21/3.30/3.40/3.41/3.42/3.50/3.55/3.56/3.60/3.61/3.65/3.66/3.70/3.72/3.73/3.74/4.00

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).

Speculation of their usage

The UPDATE.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 UPDATE.PUP installer decides wich one of this packages is installed in the PS3, depending of the SYSCON chip hardware revision

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)

  • SYS_CON_FIRMWARE_01000004.pkg (5376 bytes) Firmware from 1.30 to 1.80 (not 1.81 and higher, superseded by 01000005)
  • SYS_CON_FIRMWARE_01000005.pkg (5376 bytes) Firmware from 1.81 to 3.30 (not 3.40 and higher, superseded by 01000006)
  • SYS_CON_FIRMWARE_01000006.pkg (5376 bytes) Firmware from 3.40 to 4.00


Syscon hardware revision 2 (0101**** in the .pkg name... or 00010001******** in the info screen)

  • SYS_CON_FIRMWARE_01010302.pkg (5376 bytes) Firmware from 1.81 to 3.30 (not 3.40 and higher, superseded by 01010303)
  • SYS_CON_FIRMWARE_01010303.pkg (5376 bytes) Firmware from 3.40 to 4.00


Syscon hardware revision 3 (0102**** in the .pkg name... or 00010002******** in the info screen)

  • SYS_CON_FIRMWARE_01020302.pkg (5376 bytes) Firmware from 3.40 to 4.00
  • SYS_CON_FIRMWARE_S1_00010002083E0832.pkg (5376 bytes) Firmware 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)

  • SYS_CON_FIRMWARE_01030302.pkg (5376 bytes) Firmware from 3.40 to 4.00


Syscon hardware revision 5 (0104**** in the .pkg name... or 00010004******** in the info screen)

  • SYS_CON_FIRMWARE_01040402.pkg (5376 bytes) Firmware from 3.40 to 4.00


Syscon hardware revision 6 (0105**** in the .pkg name... or 00010005******** in the info screen)

  • SYS_CON_FIRMWARE_01050002.pkg (5376 bytes) Firmware from 3.40 to 4.00
  • SYS_CON_FIRMWARE_01050101.pkg (5376 bytes) Firmware from 3.41 to 4.00 (cummulative update?)

Note: To end the speculation dispute 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

00000000  1B 2D 70 0F AB 5E B3 99 68 20 FE 3D E1 80 6A 1D  .-p.«^³™h þ=á€j.
00000010  B8 FD 37 CF CD 45 85 AB 51 F7 05 E3 EA 32 A5 EA  ¸ý7ÏÍE…«Q÷.ãê2¥ê
00000020  67 45 F9 48 00 00 00 00 00 10 00 00 C0 0F 00 00  gEùH........À...
00000030  8B 04 07 F9 9B A2 90 3A 75 89 F1 42 12 59 DA 0D  ‹..ù›¢.:u‰ñB.YÚ.
00000040  21 7C A2 C3 5A E4 78 00 10 8D 4B F7 A2 73 9C 63  !|¢ÃZäx...K÷¢sœc
00000050  5D 8D 5D 49 16 C7 6F 2C AD 33 FE 1F D3 6C A1 CA  ].]I.Ço,.3þ.Ól¡Ê
00000060  BA AD 2B FE 8F 33 71 D7 C5 E6 5C FF BF 77 6C 80  º.+þ.3q×Åæ\ÿ¿wl€
00000070  F2 BE 11 BB 3C 52 52 DC A9 68 E5 24 AD 4F F3 48  ò¾.»<RRÜ©hå$.OóH

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

Access to Syscon from Linux

Access SysCon ROM without needing ps3dm-utils: http://wiki.gitbrew.org/index.php/PS3:HvReverseEngineering#SYSCON