marciolsf
Member
In my efforts to understand what is wrong with CECHA01 ps3, and move past the YLOD/replace caps dance, I've picked up a USB to serial adapter, soldered RX and TX to the UART points on my board, and started pecking at it. Thanks to @M4j0r 's python script, I was able to submit a few commands to syscon and confirm that it's at least alive and responding.
For example, by just plugging it all in and turning the back switch on, I get the following (currently connected via Putty to serial)
R:3A:OK 00000000
So that's good, sounds like there's somebody home! It's a start anyway.
Next up, I get started with python. If you want to follow at home, you'll need the following
According to M4j0r, the syntax is is "python script.py <your serial port number> <CRX or CRXF>" The choice between CRX or CRXF will depend on your syscon version. According to https://www.psdevwiki.com/ps3/Syscon_Hardware#Syscon_UART, COK-001 boards use CRX, so that's what I typed (make sure putty is closed now, or the com port will not be available. Your actual port # might be different than mine)
python ps3.py com3 CXR
Which gets me here
PS C:\Users\iamma\OneDrive\CFW\tools> python .\ps3.py com3 CXR
>
Now, this is not a walk in the park -- Syscon has a list of internal and external commands, all case-sensitive. The output is also not the most friendly. For example, here's the output of the VER command, which returns the syscon version (I think? -- not sure on that one)
> VER
00000000 0B8E
This looks like a pair of octets... the first half will equal to 0, but the second, 0B8E, is the softID that maps for versions 1.30 - 4.84, as listed in this page -- https://www.psdevwiki.com/ps3/System_Controller_Firmware#Syscon_update_packages. My ps3 was on 4.84 when it died, so that checks out.
Well, the main thing we're all after is really "why won't it boot??" There's an external command for that
> ERRLOG GET 00
00000000 A0403034 FFFFFFFF
The first parameter is the Command, Get is the subcommand (there's a couple), and then the index for the error log. In my ps3, I have 20 total (0-19), and they all return the same error. I'm assuming that they 00000000 and FFFFFFFF indicate either a memory range, or they're marking the START and END of a list, and the only error on index 00 is A0403034.
Unfortunately, this is where it ends. You have to authenticate to get access to more commands, but I can't figure out how yet. Apparently, I have to open the syscon with the internal command scopen, but when I do that, I get an error that indicates "unknown command" (see here for the list of messages for each error -- https://www.psdevwiki.com/ps3/Error_Codes#SYSCON_Error_Codes)
> scopen
F0000003
If I try to start up the ps3, I get an error that indicates "Not allowed/Not authorized"
> BOOT MODE
F0000005
Others
> PORTSTAT
F0000005
> SPU INFO
F0000005
> CID GET
F0000005
>
Anyone out there has more details on how to get Auth working properly, or the correct way to enable internal commands? I've tried a few things I've seen from other threads, but not anything that has worked so far.
For example, by just plugging it all in and turning the back switch on, I get the following (currently connected via Putty to serial)
R:3A:OK 00000000
So that's good, sounds like there's somebody home! It's a start anyway.
Next up, I get started with python. If you want to follow at home, you'll need the following
- python 2.7 (anything newer has syntax changes on python and doesn't work so good
- pycryptodome
- pyserial
- not be afraid of the command line
- This script -- https://pastebin.com/4ymiFQbi. I saved it as ps3.py
According to M4j0r, the syntax is is "python script.py <your serial port number> <CRX or CRXF>" The choice between CRX or CRXF will depend on your syscon version. According to https://www.psdevwiki.com/ps3/Syscon_Hardware#Syscon_UART, COK-001 boards use CRX, so that's what I typed (make sure putty is closed now, or the com port will not be available. Your actual port # might be different than mine)
python ps3.py com3 CXR
Which gets me here
PS C:\Users\iamma\OneDrive\CFW\tools> python .\ps3.py com3 CXR
>
Now, this is not a walk in the park -- Syscon has a list of internal and external commands, all case-sensitive. The output is also not the most friendly. For example, here's the output of the VER command, which returns the syscon version (I think? -- not sure on that one)
> VER
00000000 0B8E
This looks like a pair of octets... the first half will equal to 0, but the second, 0B8E, is the softID that maps for versions 1.30 - 4.84, as listed in this page -- https://www.psdevwiki.com/ps3/System_Controller_Firmware#Syscon_update_packages. My ps3 was on 4.84 when it died, so that checks out.
Well, the main thing we're all after is really "why won't it boot??" There's an external command for that
> ERRLOG GET 00
00000000 A0403034 FFFFFFFF
The first parameter is the Command, Get is the subcommand (there's a couple), and then the index for the error log. In my ps3, I have 20 total (0-19), and they all return the same error. I'm assuming that they 00000000 and FFFFFFFF indicate either a memory range, or they're marking the START and END of a list, and the only error on index 00 is A0403034.
Unfortunately, this is where it ends. You have to authenticate to get access to more commands, but I can't figure out how yet. Apparently, I have to open the syscon with the internal command scopen, but when I do that, I get an error that indicates "unknown command" (see here for the list of messages for each error -- https://www.psdevwiki.com/ps3/Error_Codes#SYSCON_Error_Codes)
> scopen
F0000003
If I try to start up the ps3, I get an error that indicates "Not allowed/Not authorized"
> BOOT MODE
F0000005
Others
> PORTSTAT
F0000005
> SPU INFO
F0000005
> CID GET
F0000005
>
Anyone out there has more details on how to get Auth working properly, or the correct way to enable internal commands? I've tried a few things I've seen from other threads, but not anything that has worked so far.