Editing Remarry Syscon

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


== Introduction ==
== Introduction ==
The [[Syscon Hardware|System Controller]] has different <i>EEPROM</i> regions of which two are the NVS (non-volatile storage) and the SNVS (secure NVS).<br>
The [[Syscon Hardware|System Controller]] does have different <i>EEPROM</i> regions of which two are the NVS (non-volatile storage) and the SNVS (secure NVS).<br>
If CELL wants to access the SNVS it has to be married to the Syscon. The SNVS holds for example the secure [[Boot_modes#JIG_.2F_Factory_Service_Mode_.2F_manufacturer|product mode]] information, the [[lv0]]/[[Lv1.self|lv1]] hash and the [[Flash:cvtrm|SRK/SRH]].<br>
If CELL wants to access the SNVS it has to be married to the Syscon. The SNVS holds for example the secure [[Boot_modes#JIG_.2F_Factory_Service_Mode_.2F_manufacturer|product mode]] information, the [[lv0]]/[[Lv1.self|lv1]] hash and the [[Flash:cvtrm|SRK/SRH]].<br>
This guide will only cover the perconsole section which holds the pairing information and the SNVS section, not the NVS nor the internal (only by Syscon plain accessible) regions.<br>
This guide will only cover the perconsole section which holds the pairing information and the SNVS section, not the NVS nor the internal (only by Syscon plain accessible) regions.<br>
Line 12: Line 12:
For the NVS regions (and internal regions) please refer to the [[SC EEPROM|EEPROM]] page, this guide will only provide the offsets used by [[Update_Manager|UM]].
For the NVS regions (and internal regions) please refer to the [[SC EEPROM|EEPROM]] page, this guide will only provide the offsets used by [[Update_Manager|UM]].


== Procedure ==
== Case #1: A full dump of the original Syscon SPCR is available ==
=== Case #1: A full dump of the original Syscon SPCR is available ===
If this is the case and you're not switching from Mullion to Sherwood or the other way around you can just copy the SPCR.
If this is the case and you're not switching from Mullion to Sherwood or the other way around you can just copy the SPCR.


=== Case #2: The original Syscon SPCR is not available ===
== Case #2: The original Syscon SPCR is not available ==
<b>The PS3 needs to run a factory (JIG) firmware with a complete factory [[lv1.self|LV1]] (which includes ss_sc_init_pu.fself) in order to remarry the Syscon!</b><br>
<b>The PS3 needs to run a factory (JIG) firmware in order to remarry the Syscon!</b><br>
First blank the complete SPCR with hex <i>FF</i>.
First blank the complete SPCR with hex <i>FF</i>.
Then for the first 0x30 bytes write this:
Then for the first 0x30 bytes write this:
Line 56: Line 55:
[INFO]: sc_init SUCCESS
[INFO]: sc_init SUCCESS
</pre>
</pre>
(If it instead prints error <i>800040C</i> please refer to the [[#Explanation|explanation]])<br>
After shutting the console down power it up again which causes the Syscon to be remarried a "2nd" time.<br>
After shutting the console down power it up again which causes the Syscon to be remarried a "2nd" time.<br>
It will produce the same output except that the third line changes from "<i>[INFO]: 2 skip</i>" to "<i>[INFO]: 2...o</i>".<br>
It'll produce the same output except that the third line changes from "<i>[INFO]: 2 skip</i>" to "<i>[INFO]: 2...o</i>".<br>
The console will be now in product mode.<br>
The console will be now in product mode.<br><br>
To complete the remarrying procedure please install any firmware using the manufacturing updater (launched by <i>lv2diag</i>) and set offset 0x48C07 of the NVS back to <i>FF</i>.
To complete the remarrying proceduce please install any firmware using the manufacturing updater (launched by <i>lv2diag</i>) and set offset 0x48C07 of the NVS back to <i>FF</i>.
 
<br><br>
== Explanation ==
The magic bytes
<pre>
5E B4 F7 C9 50 62 F1 B2 EC F7 EE 1A 3C E3 D8 D0
C5 C2 73 4B A4 13 3D 2C 9E EE 88 ED 0C A8 15 C7
8F 59 DC E4 35 A8 11 BD 8B EC 4E 95 09 F1 E7 38
</pre>
consist of the (uninitialized) Syscon status
<pre>
00000000000000000000000000000001
</pre>
encrypted with [[Keys#0x0_Master_Key|Key 0x000]]<br>
and the [[Keys#0x10_Master_Key|Key 0x010]]
<pre>
5794BC8C2131B1E3E7EC61EF14C32EB5
</pre>
encrypted with [[Keys#0x20_Master_Key|Key 0x020]].<br>
The last 16 bytes are the CMAC of the previous 16 bytes using Key 0x020.<br><br>
The Hypervisor uses the Syscon status to determine if it needs to be remarried. 1 means that it needs to be remarried, 2 means it's already married to CELL.<br>
The key saved at offset 0x10 is used to decrypt the second layer of the [[Flash:Encrypted_Individual_Data_-_eEID#EID1|EID1]] stored on the [[Flash|flash]].<br>
If this key is wrong, Syscon will return the error <i>800040C</i>. The only time this has been observed is on prototype consoles with a Sherwood Syscon. To fix that problem you need to create your own EID1 using the eid_root_key and patch it into the [[Syscon Firmware]].<br><br>


{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude>
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude>
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)