Talk:SC Communication: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 23: | Line 23: | ||
== Syscon packets == | == Syscon packets == | ||
=== Configuration Service (0x12) | === Configuration Service (0x12) === | ||
Purpose: used to | ==== Get IDlog information ==== | ||
Purpose: Can be used to get [[http://psdevwiki.com/ps3/Flash:Individual_System_Data_-_cISD#cISD1|CID/eCID]] information. | |||
<pre> | |||
struct __attribute__ ((packed)) get_idlog_info_request_t { | |||
uint8_t cmd; // 0x03 | |||
uint8_t param; // 0x01 | |||
}; | |||
struct __attribute__ ((packed)) get_idlog_info_response_t { | |||
uint8_t cmd; | |||
uint8_t padding[3]; | |||
uint8_t ecid[16]; | |||
uint8_t cid[6]; | |||
}; | |||
</pre> | |||
==== Get reference clock ==== | |||
Purpose: Used to calculate an initial value of timebase register. | |||
<pre> | <pre> | ||
struct get_reference_clock_request_t { | struct __attribute__ ((packed)) get_reference_clock_request_t { | ||
uint8_t | uint8_t cmd; // 0x03 | ||
uint8_t | uint8_t param; // 0x10 | ||
}; | }; | ||
struct get_reference_clock_response_t { | struct __attribute__ ((packed)) get_reference_clock_response_t { | ||
uint8_t cmd; | |||
uint8_t padding[3]; | |||
uint32_t ref_clock_value; | uint32_t ref_clock_value; | ||
uint32_t | uint32_t unk; | ||
}; | }; | ||
</pre> | </pre> | ||
Line 43: | Line 60: | ||
<pre> | <pre> | ||
struct query_system_power_up_cause_request_t { | struct __attribute__ ((packed)) query_system_power_up_cause_request_t { | ||
uint8_t unk1; // 0x10 | uint8_t unk1; // 0x10 | ||
}; | }; | ||
struct query_system_power_up_cause_response_t { | struct __attribute__ ((packed)) query_system_power_up_cause_response_t { | ||
uint32_t error_code; | uint32_t error_code; | ||
uint32_t wake_source; | uint32_t wake_source; | ||
Line 55: | Line 72: | ||
uint8_t current_gr_context; | uint8_t current_gr_context; | ||
uint8_t last_shutdown_cause; | uint8_t last_shutdown_cause; | ||
uint8_t padding | uint8_t padding[3]; | ||
}; | }; | ||
</pre> | </pre> |
Revision as of 10:08, 7 November 2014
0x30 AV Service return packet when HDMI inserted (personal info removed):
000c000: 3001 0000 0000 8031 8000 0000 0104 0104 0......1........ 000c010: 2000 0282 00ff ffff ffff ff00 0469 fa22 ............i." 000c020: 0101 0101 2c15 0103 8030 1b78 eec4 f5a3 ....,....0.x.... 000c030: 574a 9c23 1150 54bf ef00 714f 8180 8140 WJ.#.PT...qO...@ 000c040: 9500 a940 b300 d1c0 0101 023a 8018 7138 ...@.......:..q8 000c050: 2d40 582c 4500 132b 2100 001e 0000 00fd -@X,E..+!....... 000c060: 0032 4c1e 5311 000a 2020 2020 2020 0000 .2L.S... .. 000c070: 00fc 0056 4532 3238 0a20 2020 2020 2020 ...VE228. 000c080: 0000 00ff 00XX XXXX XXXX XXXX XXXX XXXX .....EDIDSERIALN 000c090: XX0a 0188 0203 1ef1 4b90 0504 0302 0111 M.......K....... 000c0a0: 1213 141f 2309 0707 8301 0000 6503 0c00 ....#.......e... 000c0b0: 1000 1a36 80a0 7038 1e40 3020 3500 132b ...6..p8.@0 5..+ 000c0c0: 2100 001a 6621 56aa 5100 1e30 468f 3300 !...f!V.Q..0F.3. 000c0d0: 132b 2100 001e 011d 0072 51d0 1e20 6e28 .+!......rQ.. n( 000c0e0: 5500 132b 2100 001e 8c0a d08a 20e0 2d10 U..+!....... .-. 000c0f0: 103e 9600 132b 2100 0018 011d 8018 711c .>...+!.......q. 000c100: 1620 582c 2500 132b 2100 009f 0000 0000 . X,%..+!.......
Syscon packets
Configuration Service (0x12)
Get IDlog information
Purpose: Can be used to get [[1]] information.
struct __attribute__ ((packed)) get_idlog_info_request_t { uint8_t cmd; // 0x03 uint8_t param; // 0x01 }; struct __attribute__ ((packed)) get_idlog_info_response_t { uint8_t cmd; uint8_t padding[3]; uint8_t ecid[16]; uint8_t cid[6]; };
Get reference clock
Purpose: Used to calculate an initial value of timebase register.
struct __attribute__ ((packed)) get_reference_clock_request_t { uint8_t cmd; // 0x03 uint8_t param; // 0x10 }; struct __attribute__ ((packed)) get_reference_clock_response_t { uint8_t cmd; uint8_t padding[3]; uint32_t ref_clock_value; uint32_t unk; };
Power Service (0x13): Query system power up cause
struct __attribute__ ((packed)) query_system_power_up_cause_request_t { uint8_t unk1; // 0x10 }; struct __attribute__ ((packed)) query_system_power_up_cause_response_t { uint32_t error_code; uint32_t wake_source; uint8_t requested_os_context; uint8_t current_os_context; uint8_t requested_gr_context; uint8_t current_gr_context; uint8_t last_shutdown_cause; uint8_t padding[3]; };