SceDeci4pCpup: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
 
(33 intermediate revisions by 2 users not shown)
Line 1: Line 1:
CP : Communication Processor
== Module ==
== Module ==


=== Known NIDs ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! Name !! World !! NID
! Version !! World
|-
|-
| 3.60 || SceDeci4pCpup || Non-secure || ?
| 1.69-3.60 || Non-secure
|}
|}


Line 17: Line 19:
! Version !! Name !! World !! NID
! Version !! Name !! World !! NID
|-
|-
| 3.60 || SceDeci4pCpupForDriver || Non-secure || 0x5E323A42
| 1.69 - 3.60 || SceDeci4pCpupForDriver || Non-secure || 0x5E323A42
|}
|}


== SceDeci4pCpupForDriver ==
== SceDeci4pCpupForDriver ==


=== sceDeci4pCpupInitForDriver ===
=== SceDeci4pCpupForDriver_02CDA82C ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.69 || 0x02CDA82C
|}
 
<source lang="C">
int SceDeci4pCpupForDriver_02CDA82C(int a1);
</source>
 
=== SceDeci4pCpupForDriver_2bad7b39 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990-1.69 || 0x2bad7b39
|}
 
Start update.
 
<source lang="C">int SceDeci4pCpupForDriver_2bad7b39(int ctx);</source>
 
=== SceDeci4pCpupForDriver_765F7234 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xC0AB956B
| 1.69 || 0x765F7234
|}
|}
<source lang="C">
int SceDeci4pCpupForDriver_765F7234(int a1, int a2, int a3, int a4);
</source>
=== sceDeci4pCpupSetRtcForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.931-1.69 || 0xDAC4F630
|}
<source lang="C">int sceDeci4pCpupSetRtcForDriver(int a1, int a2);</source>
=== sceDeci4pCpupInquireVersionForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.931-3.60 || 0xC0AB956B
|}
<source lang="C">
// proto_ver is the CPUP protocol version (ex: 0x1000300)
int sceDeci4pCpupInquireVersionForDriver(int *proto_ver, int *pkg_ver, int *board_ver);
</source>


=== sceDeci4pCpupGetCpSerialIdForDriver ===
=== sceDeci4pCpupGetCpSerialIdForDriver ===
Line 38: Line 91:
|}
|}


Reads 0x80 bytes (or 4 bytes at offset 0x80).
<source lang="C">int sceDeci4pCpupGetCpSerialIdForDriver(char *pSerialId, SceSize *puiSize);</source>


=== unk_4939DA45 ===
=== SceDeci4pCpup_0x4939DA45 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 53: Line 106:
// a2 = 0, = 1
// a2 = 0, = 1
// a3 = activation_key, = 0
// a3 = activation_key, = 0
int unk_4939DA45(int a1, int a2, int a3);
int SceDeci4pCpup_0x4939DA45(int a1, int a2, int a3);
</source>
</source>


Line 61: Line 114:
! Version !! NID
! Version !! NID
|-
|-
| 0.940 || 0x2015C7CB
| 0.940 - 3.60 || 0x2015C7CB
|}
|}


=== exec_command ===
<source lang="C">
int sceDeci4pCpupGetRtcForDriver(int a1, int a2);
</source>
 
=== sceDeci4pCpupExecCommand ===
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 79: Line 136:
// 4: reboot target and CP without CP update
// 4: reboot target and CP without CP update
// 5: shutdown target and CP with CP update
// 5: shutdown target and CP with CP update
int exec_command(uint32_t cmd_id);
int sceDeci4pCpupExecCommand(uint32_t cmd_id);
</source>
 
=== sceDeci4pCpupStartUpdateForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990-3.60 || 0xDE07478F
|}
 
<source lang="C">int sceDeci4pCpupStartUpdateForDriver(int a1, int a2, int *ctx);</source>
 
=== sceDeci4pCpupTriggerUpdateForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990-3.60 || 0xD78403C8
|}
 
<source lang="C">int sceDeci4pCpupTriggerUpdateForDriver(int ctx);</source>
 
=== sceDeci4pCpupGetProgressForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990-3.60 || 0x7998FFD8
|}
 
<source lang="C">
// res becomes 0 on CP update success, <0 on CP update failure
 
int sceDeci4pCpupGetProgressForDriver(int ctx, int *res, int a3, int a4);
</source>
</source>
=== sceDeci4pCpupTransferUpdatePackageForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990-3.60 || 0x90339379
|}
<source lang="C">int sceDeci4pCpupTransferUpdatePackageForDriver(int ctx, int a2, int a3, int a4);</source>
=== SceDeci4pCpupForDriver_DE07478F ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xDE07478F
|}
Enter CP Update
=== SceDeci4pCpupForDriver_02CDA82C ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x02CDA82C
|}
Abort CP Update
=== SceDeci4pCpupForDriver_90339379 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x90339379
|}
Send CP Update Segment (?)
=== SceDeci4pCpupForDriver_D78403C8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xD78403C8
|}
Commit CP Update Segment (?)
=== SceDeci4pCpupForDriver_7998FFD8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x7998FFD8
|}
Get CP Update State
[[Category:ARM]]
[[Category:Kernel]]
[[Category:Modules]]
[[Category:Library]]

Latest revision as of 17:24, 18 November 2023

CP : Communication Processor

Module

Version World
1.69-3.60 Non-secure

Libraries

Known NIDs

Version Name World NID
1.69 - 3.60 SceDeci4pCpupForDriver Non-secure 0x5E323A42

SceDeci4pCpupForDriver

SceDeci4pCpupForDriver_02CDA82C

Version NID
1.69 0x02CDA82C
int SceDeci4pCpupForDriver_02CDA82C(int a1);

SceDeci4pCpupForDriver_2bad7b39

Version NID
0.990-1.69 0x2bad7b39

Start update.

int SceDeci4pCpupForDriver_2bad7b39(int ctx);

SceDeci4pCpupForDriver_765F7234

Version NID
1.69 0x765F7234
int SceDeci4pCpupForDriver_765F7234(int a1, int a2, int a3, int a4);

sceDeci4pCpupSetRtcForDriver

Version NID
0.931-1.69 0xDAC4F630
int sceDeci4pCpupSetRtcForDriver(int a1, int a2);

sceDeci4pCpupInquireVersionForDriver

Version NID
0.931-3.60 0xC0AB956B
// proto_ver is the CPUP protocol version (ex: 0x1000300)
int sceDeci4pCpupInquireVersionForDriver(int *proto_ver, int *pkg_ver, int *board_ver);

sceDeci4pCpupGetCpSerialIdForDriver

Version NID
3.60 0x8139AD4E
int sceDeci4pCpupGetCpSerialIdForDriver(char *pSerialId, SceSize *puiSize);

SceDeci4pCpup_0x4939DA45

Version NID
0.940 0x4939DA45
// values seen:
// a1 = CP RTC
// a2 = 0, = 1
// a3 = activation_key, = 0
int SceDeci4pCpup_0x4939DA45(int a1, int a2, int a3);

sceDeci4pCpupGetRtcForDriver

Version NID
0.940 - 3.60 0x2015C7CB
int sceDeci4pCpupGetRtcForDriver(int a1, int a2);

sceDeci4pCpupExecCommand

Version NID
0.990-3.60 0xBBB991CD
// cmd ids:
// 0: unk
// 1: unk
// 2: prepare safe shutdown
// 4: reboot target and CP without CP update
// 5: shutdown target and CP with CP update
int sceDeci4pCpupExecCommand(uint32_t cmd_id);

sceDeci4pCpupStartUpdateForDriver

Version NID
0.990-3.60 0xDE07478F
int sceDeci4pCpupStartUpdateForDriver(int a1, int a2, int *ctx);

sceDeci4pCpupTriggerUpdateForDriver

Version NID
0.990-3.60 0xD78403C8
int sceDeci4pCpupTriggerUpdateForDriver(int ctx);

sceDeci4pCpupGetProgressForDriver

Version NID
0.990-3.60 0x7998FFD8
// res becomes 0 on CP update success, <0 on CP update failure

int sceDeci4pCpupGetProgressForDriver(int ctx, int *res, int a3, int a4);

sceDeci4pCpupTransferUpdatePackageForDriver

Version NID
0.990-3.60 0x90339379
int sceDeci4pCpupTransferUpdatePackageForDriver(int ctx, int a2, int a3, int a4);

SceDeci4pCpupForDriver_DE07478F

Version NID
3.60 0xDE07478F

Enter CP Update

SceDeci4pCpupForDriver_02CDA82C

Version NID
3.60 0x02CDA82C

Abort CP Update

SceDeci4pCpupForDriver_90339379

Version NID
3.60 0x90339379

Send CP Update Segment (?)

SceDeci4pCpupForDriver_D78403C8

Version NID
3.60 0xD78403C8

Commit CP Update Segment (?)

SceDeci4pCpupForDriver_7998FFD8

Version NID
3.60 0x7998FFD8

Get CP Update State