Difference between revisions of "Platform ID"

From PS3 Developer wiki
Jump to: navigation, search
m (Example from syscon firmware: Reminder, all this FF's are interesting for research purposes, at least temporally)
m (Better this way ?)
Line 46: Line 46:
  
 
=== Example from syscon firmware ===
 
=== Example from syscon firmware ===
There is a table with the Platform ID's of all the PS3 models supported by the [[Syscon Firmware]]
+
There is a table with the Platform ID's of all the PS3 models supported by the [[Syscon Firmware]], in every syscon revision some more Platform IDs was added, this is s sample from one of the latest syscon revisions with the purpose of showing the complete list. The support of all this platform ID's is not complete, some of the oldest ones are not fully supported
 +
 
 
{{boxcodelite|float=left|title=Sample from syscon [[SW3-302]] firmware v2.12.0|code=
 
{{boxcodelite|float=left|title=Sample from syscon [[SW3-302]] firmware v2.12.0|code=
 
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Line 63: Line 64:
 
}}{{clear}}
 
}}{{clear}}
  
But the Platform ID is given by the 2 values located at offset 0xA0000. 1 byte = Platform ID (hex), next 8 bytes = Platform ID (string, null terminated)
+
But in syscon [[Sherwood]] series the Platform ID is stored at the start of the emulated EEPROM, the first 2 values located at offset 0x60000 ([[Syscon_SW_Series|SW]]) or 0xA0000 ([[Syscon_SW2_Series|SW2]]/[[Syscon_SW3_Series|SW3]]). First byte = Platform ID (hex), next 8 bytes = Platform ID (string, null terminated). Dont take this offsets of the emulated EEPROM as something strict because sherwood uses "bad block remapping" and "wear leveling" this features allows to relocate the data at different offsets (probably in blocks of lenght 2 bytes)
 +
 
 
{{boxcodelite|float=left|title=Sample from syscon [[SW3-302]] firmware v2.12.0|code=
 
{{boxcodelite|float=left|title=Sample from syscon [[SW3-302]] firmware v2.12.0|code=
 
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Line 109: Line 111:
  
 
=== Example from syscon config ===
 
=== Example from syscon config ===
Since [[Syscon SW3 Series]] ([[CECH-30xx]] / [[KTE-001]] motherboard or newer) the Platform ID is also "hardcoded" at offset 0x0 of the virtual EEPROM dumped with the python script, in both formats: 1 byte = Platform ID (hex), next 8 bytes = Platform ID (string, null terminated)<br>
+
Since [[Syscon SW3 Series]] ([[CECH-30xx]] / [[KTE-001]] motherboard or newer) the Platform ID is also "hardcoded" at offset 0x0 of the emulated EEPROM, in both formats: first byte = Platform ID (hex), next 8 bytes = Platform ID (string, null terminated)<br>
 
The usual way to get the Platform ID by UART is with the command "hversion" but is locked by default (not available in syscon "external mode" access), however we can read this bytes in raw with the command "r" (available in syscon "external mode" access). See [[Syscon Firmware#Sherwood]]
 
The usual way to get the Platform ID by UART is with the command "hversion" but is locked by default (not available in syscon "external mode" access), however we can read this bytes in raw with the command "r" (available in syscon "external mode" access). See [[Syscon Firmware#Sherwood]]
 +
 +
{{keyboard|content=
 +
> Type this in the syscon UART interface: r [offset][lenght]
 +
> r 0 9
 +
}}
 +
 
{{boxcodelite|float=left|title=Sample from [[CECH-30xx]] / [[KTE-001]] / [[SW3-301]] firmware v2.3.0|code=
 
{{boxcodelite|float=left|title=Sample from [[CECH-30xx]] / [[KTE-001]] / [[SW3-301]] firmware v2.3.0|code=
 
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Revision as of 19:39, 29 November 2021

Description

Platform ID (or plat.id / HW id) is a hardware identifyer that indicates the target hardware revision

  • The Platform ID name includes the Chassis Type letter. See also: Prototypes
  • Dont confuse the Platform ID with other motherboard identifyers located in cISD1 section as:
    • board_id is the serial number "printed" in the motherboard. In PS3's from euro region (only) the board_id is included in the "PS3 serial" printed in a white sticker (e.g. 27430423)
    • kiban_id is the barcode "printed" in the motherboard

How to get the Platform ID

Do it :'(
Do it :'(
Please report your platform ID by editing this page

Apps

Syscon Error Log Utility inside the PS3 Advanced Toolset: https://github.com/bucanero/psl1ghtv2_ports/releases (v1.0.1 or later)

  • How to use it:
  1. Plug a storage device into any USB port
  2. Install and boot the app... choose the Syscon Error Log function... then the app automatically quits and returns to XMB (there is no display on screen, this is normal)
  3. A file with the name "sm_error.log" is created on the storage drive
  4. Open this file in a text editor, take note of the platform id

GameOS

The Platform ID can be retrieved from GameOS by using syscall 387 sys_sm_get_system_info

#include <ppu-lv2.h>
s32 lv2_get_platform_info(uint8_t platform_info[0x18]){
	lv2syscall1(387, (uint64_t) info);
	return_to_user_prog(s32);
	}

This is what you could get:

0305500000000040436f6b42313000000000b5ed00100000

Where

  • 0x030550 is the PS3 firmware version, also if spoofed to another FW
  • 0x40436f6b423130 converted to ascii is @CokB10 and that is the Platform ID
    • Since COK-002 motherboard the fourth letter of the Platform ID indicates the chassis, e.g. "CokB10" is Chassis Type = B
  • 0xb5ed is the Build Number also if spoofed to another FW

Syscon UART

You can also get the Platform ID using the hversion command over the Syscon serial interface.
On Mullion models this command is only available in the internal mode, Sherwood models need to be patched in order to unlock it.

Platform ID locations

Example from syscon firmware

There is a table with the Platform ID's of all the PS3 models supported by the Syscon Firmware, in every syscon revision some more Platform IDs was added, this is s sample from one of the latest syscon revisions with the purpose of showing the complete list. The support of all this platform ID's is not complete, some of the oldest ones are not fully supported

Sample from syscon SW3-302 firmware v2.12.0
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

0002A350                                43 6F 6B 31 31 00            Cok11.
0002A360  43 6F 6B 31 32 00 43 6F 6B 31 33 00 43 6F 6B 31  Cok12.Cok13.Cok1
0002A370  34 00 43 6F 6B 42 31 30 00 43 6F 6B 43 31 30 00  4.CokB10.CokC10.
0002A380  43 6F 6B 43 31 31 00 43 6F 6B 43 31 32 00 43 6F  CokC11.CokC12.Co
0002A390  6B 44 31 30 00 43 6F 6B 45 31 30 00 43 6F 6B 46  kD10.CokE10.CokF
0002A3A0  31 30 00 43 6F 6B 47 31 30 00 43 6F 6B 47 31 31  10.CokG10.CokG11
0002A3B0  00 43 6F 6B 48 31 30 00 43 6F 6B 48 31 31 00 43  .CokH10.CokH11.C
0002A3C0  6F 6B 4A 31 33 00 43 6F 6B 4B 31 30 00 43 6F 6B  okJ13.CokK10.Cok
0002A3D0  4D 32 30 00 43 6F 6B 4D 34 30 00 43 6F 6B 4E 31  M20.CokM40.CokN1
0002A3E0  30 00 43 6F 6B 4E 33 30 00 43 6F 6B 4E 31 30 00  0.CokN30.CokN10.
0002A3F0  75 6E 6B 6E 6F 77 6E 00                          unknown.

But in syscon Sherwood series the Platform ID is stored at the start of the emulated EEPROM, the first 2 values located at offset 0x60000 (SW) or 0xA0000 (SW2/SW3). First byte = Platform ID (hex), next 8 bytes = Platform ID (string, null terminated). Dont take this offsets of the emulated EEPROM as something strict because sherwood uses "bad block remapping" and "wear leveling" this features allows to relocate the data at different offsets (probably in blocks of lenght 2 bytes)

Sample from syscon SW3-302 firmware v2.12.0
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

000A0000  B0 43 6F 6B 4D 31 30 00 00 51 60 30 FF FF FF FF  °CokM10..Q`0ÿÿÿÿ
000A0010  01 4E 00 FF FF 16 03 BC 2C FF FF FF FF FF FF FF  .N.ÿÿ..¼,ÿÿÿÿÿÿÿ
000A0020  00 02 00 00 03 C8 78 FF FF FF FF FF FF FF FF FF  .....Èxÿÿÿÿÿÿÿÿÿ
000A0030  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0040  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0050  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0060  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0070  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0080  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0090  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A00A0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A00B0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A00C0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A00D0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A00E0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A00F0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0100  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0110  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0120  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0130  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0140  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0150  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0160  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0170  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0180  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0190  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A01A0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A01B0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A01C0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A01D0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A01E0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A01F0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0200  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0210  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0220  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0230  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000A0240  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
  • In the sample above: Platform ID = 0xB0 (hex), CokM10 (string)

Example from syscon config

Since Syscon SW3 Series (CECH-30xx / KTE-001 motherboard or newer) the Platform ID is also "hardcoded" at offset 0x0 of the emulated EEPROM, in both formats: first byte = Platform ID (hex), next 8 bytes = Platform ID (string, null terminated)
The usual way to get the Platform ID by UART is with the command "hversion" but is locked by default (not available in syscon "external mode" access), however we can read this bytes in raw with the command "r" (available in syscon "external mode" access). See Syscon Firmware#Sherwood

Type This
> Type this in the syscon UART interface: r [offset][lenght]
> r 0 9
Sample from CECH-30xx / KTE-001 / SW3-301 firmware v2.3.0
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  90 43 6F 6B 4B 31 30 00 00                       .CokK10..
  • In the sample above: Platform ID = 0x90 (hex), CokK10 (string)

Example from decrypted lv0

The first 3 (or 4) letters of the Platform ID names are located in a table inside lv0, this is an small sample of that table, for more info see: Discussion

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

000379C0  47 6E 6F 00 00 00 00 00 43 6F 6B 00 00 00 00 00  Gno.....Cok.....
000379D0  43 79 74 32 00 00 00 00 43 79 74 33 00 00 00 00  Cyt2....Cyt3....
000379E0  53 68 72 00 00 00 00 00 43 79 74 31 00 00 00 00  Shr.....Cyt1....
  • Shr = Shreck (0.00)
  • Cyt = Cytology (0.30)
  • Cok = Cookie (0.30)
  • Gno = Gnome (2.00)

Platform ID lists

Shreck Series

PS3 Model Motherboard Platform ID Notes
Text Hex(Mullion) Hex(Sherwood) Type
? ? Shr1.0 0x00000010 N/A
? ? Shr1.1 0x00000011 N/A
? ? Shr1.2 0x00000012 N/A
? ? Shr-4D 0x00000013 N/A
? ? Shr1.3 0x00000014 N/A
? ? Shr-LC 0x00000015 N/A
? ? Shr1.4 0x00000016 N/A
? ? Shr1.5 0x00000017 N/A
? ? Shr2.0 0x00000020 N/A
? ? Shr2.1 0x00000021 N/A
? ? Shr2.2 0x00000022 N/A
? ? Shr2.3 0x00000023 N/A
? ? Shr2.4 0x00000024 N/A
? ? Shr2.5 0x00000025 N/A
? ? Shr2.6 0x00000026 N/A
? ? Shr3.0 0x00000030 N/A
? ? Shr3.1 0x00000031 N/A
? ? Shr3.2 0x00000032 N/A
? ? Shr3.2-4 0x00000033 N/A
? ? Shr3.3 0x00000034 N/A
? ? Shr4.0 0x00000040 N/A

Cytology Series

PS3 Model Motherboard Platform ID Notes
Text Hex(Mullion) Hex(Sherwood) Type
? ? Cyt1.0 0x20000010 N/A
? ? Cyt1.1 0x20000011 N/A
? ? Cyt1.2 0x20000012 N/A
? ? Cyt2.0 0x20000020 N/A
? ? Cyt2.1 0x20000021 N/A
DEH-R1000 TMU-510 Cyt2.2 0x20000022 N/A Cyt2.2 confirmed for DEH-R1000/TMU-510
DEH-R1010 TMU-510 Cyt2.2 0x20000022 N/A Cyt2.2 confirmed for DEH-R1010/TMU-510
DEH-R1020 TMU-510 Cyt2.2 0x20000022 N/A Cyt2.2 confirmed for DEH-R1020/TMU-510
? ? Cyt3.0 0x20000030 N/A
DEH-R1030 TMU-520 Cyt3.1 0x20000031 N/A Cyt3.1 confirmed for DEH-R1030/TMU-520
DEH-R1040 TMU-520 Cyt3.2 0x20000032 N/A Cyt3.2 confirmed for DEH-R1040/TMU-520
DECR-1000 TMU-520 Cyt3.2 0x20000032 N/A Cyt3.2 confirmed for DECR-1000/TMU-520
? ? Cyt3.3 0x20000033 N/A
? ? Cyt3.4 0x20000034 N/A

Cookie Series

PS3 Model Motherboard Platform ID Notes
Text Hex(Mullion) Hex(Sherwood) Type
? ? Cok01 0x10000010 N/A
? ? Cok02 0x10000020 N/A
? ? Cok03 0x10000030 N/A
? ? Cok05 0x10000050 N/A
? ? Cok08 0x10000080 N/A
? ? Cok11 0x100000B0 0x01 Undocumented PS3 Model DEH-H1001-B with suffix B (ascii) = 0xB (hex) = 11 (dec) = Cok11, Motherboard COOKIE-11 ?
? ? Cok12 0x100000C0 0x02 Undocumented PS3 Model DEH-H1001-C with suffix C (ascii) = 0xC (hex) = 12 (dec) = Cok12, Motherboard COOKIE-12 ?
DEH-H1001-D COOKIE-13 ? ? ? Cok13 ? / 0x100000D0 ? / 0x03 ?
DEH-H1000A-E COK-001(Proto) Cok14 0x100000E0 0x04 Cok14 confirmed for DEH-H1000A-E
CECHAxx
CECHBxx
COK-001 Cok14 0x100000E0 0x04 Cok14 confirmed for CECHAxx?/COK-001
CECHCxx
CECHExx
COK-002 CokB10 0x10000100 0x10 CokB10 confirmed for CECHC04/COK-002
? ? CokC10 0x10000200 0x20 GECR-1100 COK-002 ?, GECR-1500 VER-001 ?, GECR-2500 JTP-001/JSD-001 ?
? ? CokC11 0x10000201 0x21
CECHGxx SEM-001 CokC12 0x10000202 0x22 CokC12 confirmed for CECHGxx
CECHHxx DIA-001 CokD10 0x10000300 0x30 CokD10 confirmed for CECHH04/DIA-001/FW-min:1.97
CECHJxx
CECHKxx
DIA-002 CokE10 0x10000301 0x40 CokE10 confirmed for DECHJ00A
DECR-1400 DEB-001 Deb01 0x10000301 0x40 Hardcoded Deb01 confirmed for DECR-1400/DEB-001
CECHLxx
CECHMxx
CECHPxx
CECHQxx
VER-001 CokF10 N/A 0x50 CokF10 confirmed for CECHL00/VER-001 and CECHP04/VER-001
? ? CokG10 N/A 0x60
CECH-20xx DYN-001 CokG11 N/A 0x61 CokG11 confirmed for CECH-20xx/DYN-001
? ? CokH10 N/A 0x70 PS3 model CBEH-H2001 with motherboard SURTEES-03 ?
CECH-21xx SUR-001 CokH11 N/A 0x71 CokH11 confirmed for CECH-2104A (date code 0B). FW-min 3.20
CECH-25xx JTP-001 CokJ13 N/A 0x80 CokJ13 confirmed for CECH-2504B/JTP-001/datecode:0C
CECH-25xx JSD-001 CokJ20 N/A 0x80 Hardcoded CokJ20 confirmed for CECH-2501A FW-min 3.50 and CECH-2501B FW-min 3.40
CECH-30xx KTE-001 CokK10 N/A 0x90 CokK10 confirmed for DECH-3000A
CECH-40xxB/C MSX-001(NOR) CokM20 N/A 0xB0 CokM20 confirmed for MSX-001(NOR)
? ???-??? ? N/A ? CokM40 ? / 0xB8 ?
? MPX-001(NOR) ? N/A ? hardcoded CokM10 ? / 0xB0 ?
CECH-40xxA MPX-001(eMMC) CokM30 N/A 0xB8 hardcoded CokM30 confirmed for CECH-4004A/MPX-001(EMMC)/datecode:2D/FW-min:4.25
? NPX-001(NOR) CokN10 N/A 0xA0 CokN10 confirmed for NPX-001(NOR)
? NPX-001(eMMC) ? N/A ? CokN30 ? / 0xA8 ?
? ? CokN20 N/A 0xA0 hardcoded - speculation
? ? CokN40 N/A 0xA8 hardcoded - speculation
? PPX-001(NOR) ? N/A ? hardcoded - speculation CokP20 ? / 0xC0 ?
CECH-42xxA PPX-001(eMMC) CokP40 N/A 0xC8 hardcoded - needs to be confirmed CokP40 confirmed for CECH-4204A/PPX-001(EMMC)/datecode:3C/FW-min:4.50
CECH-42xxB/C PQX-001(NOR) CokP10 N/A 0xC0 hardcoded CokP10 confirmed for PQX-001(NOR)
CECH-42xxA PQX-001(eMMC) CokP30 N/A 0xC8 hardcoded CokP30 confirmed for PQX-001(eMMC)
? RTX-001(NOR) ? N/A ? hardcoded - speculation CokR10 ? / 0xD0 ?
CECH-43xxA RTX-001(eMMC) ? CokR30 N/A 0xD8 hardcoded - needs to be confirmed CokR30 confirmed for CECH-4301A/FW-min:4.60 (motherboard model not reported)
CECH-43xxB/C REX-001(NOR) ? N/A ? hardcoded - speculation CokR20 ? / 0xD0 ?
CECH-43xxA REX-001(eMMC) cokR40 N/A 0xD8 hardcoded CokR40 confirmed for REX-001(eMMC)

Gnome Series

Probably the Zego BCU-100