SceSyscon: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
 
(74 intermediate revisions by 4 users not shown)
Line 1: Line 1:
System Controller.
SceSyscon is a kernel module in charge of interacting with the System Controller by executing commands.


== Module ==
== Module ==
Line 98: Line 98:
| 0.931.010-3.740.011 || 0x94AB13CC
| 0.931.010-3.740.011 || 0x94AB13CC
|}
|}
Calls Syscon command 0xC1.


<source lang="C">
<source lang="C">
Line 106: Line 108:
</source>
</source>


=== sceSysconPowerCtrlKermitResetForDriver ===
=== sceSysconErnieResetForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 113: Line 115:
|}
|}


Executes [[SMC]] 0x11A: <code>return sceSysconSetPowerMode(2, 0);</code>
This is a guessed name. Temp name was sceSysconPowerCtrlKermitResetForDriver.
 
It issues [[SceExcpmgr#SMC_calls|SMC]] 0x11A with type=RESET and mode=0: <code>return sceSysconSetPowerModeForDriver(2, 0);</code>.
 
<source lang="C">int sceSysconErnieResetForDriver(void);</source>
 
=== sceSysconErnieHibernateForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-0.940 || not present
|-
| 0.990.000-3.740.011 || 0x4278E614
|}
 
It issues [[SceExcpmgr#SMC_calls|SMC]] 0x11A with type=HIBERNATE and mode=0: <code>return sceSysconSetPowerModeForDriver(5, 0);</code>.


<source lang="C">int sceSysconPowerCtrlKermitResetForDriver(void);</source>
<source lang="C">int sceSysconErnieHibernateForDriver(void);</source>


=== sceSysconBatterySWResetForDriver ===
=== sceSysconBatterySWResetForDriver ===
Line 128: Line 145:
<source lang="C">int sceSysconBatterySWResetForDriver(void);</source>
<source lang="C">int sceSysconBatterySWResetForDriver(void);</source>


=== sceSysconGetBatteryFullCapacityForDriver ===
=== sceSysconGetBatteryFullCapForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 136: Line 153:
| 0.990.000-3.740.011 || 0xF93CF833
| 0.990.000-3.740.011 || 0xF93CF833
|}
|}
Temp name was sceSysconGetBatteryFullCapacityForDriver.


Used in [[ScePower]]'s module_start.
Used in [[ScePower]]'s module_start.


<source lang="C">int sceSysconGetBatteryFullCapacityForDriver(void *pResult);</source>
<source lang="C">int sceSysconGetBatteryFullCapForDriver(SceUInt32 *pCap);</source>
 
=== sceSysconGetBicTempForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-0.940 || not present
|-
| 0.990.000 || 0xECFA7242
|-
| 1.000.041-3.740.011 || not present. Renamed to sceSysconGetAbbyTempForDriver.
|}
 
This is a guessed name. Another possible name is sceSysconGetBatteryInternalTempForDriver.
 
Replaced (just renaming) by [[#sceSysconGetAbbyTempForDriver]].
 
Calls Syscon command 0x98B.
 
<source lang="C">int sceSysconGetBicTempForDriver(SceUInt32 *pTemp);</source>
 
=== sceSysconGetAbbyTempForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-0.990.000 || not present. Was named sceSysconGetBicTempForDriver.
|-
| 1.000.041-3.740.011 || 0xE1885F68
|}
 
This is a guessed name. Another possible name is sceSysconGetBatteryInternalTempForDriver.
 
Replacement (just renaming) for [[#sceSysconGetBicTempForDriver]].
 
Calls Syscon command 0x98B.
 
<source lang="C">int sceSysconGetAbbyTempForDriver(SceUInt32 *pTemp);</source>


=== sceSysconGetBatteryCycleCountForDriver ===
=== sceSysconGetBatteryCycleCountForDriver ===
Line 145: Line 200:
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-0.990.000 || not present
|-
|-
| 0.996.090-3.740.011 || 0xCD73079D
| 0.996.090-3.740.011 || 0xCD73079D
|}
|}
Calls Syscon command 0x98C.


Used in [[ScePower]].
Used in [[ScePower]].


<source lang="C">int sceSysconGetBatteryCycleCountForDriver(void *pRedsult);</source>
<source lang="C">int sceSysconGetBatteryCycleCountForDriver(SceUInt32 *pCount);</source>


=== sceSysconBatteryStartBLModeForDriver ===
=== sceSysconBatteryStartBLModeForDriver ===
Line 204: Line 261:
</source>
</source>


=== sceSysconReadBatteryRegForDriver ===
=== sceSysconGetManualChargeModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0xC2FB5565
| 0.931.010-2.060.011 || not present
|-
| 2.100.081-3.740.011 || 0x4FEC564C
|}
|}


This is a guessed name.
<source lang="C">int sceSysconGetManualChargeModeForDriver(int *piMode);</source>


=== sceSysconGetManualChargeModeForDriver ===
=== sceSysconCtrlManualChargeModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 219: Line 278:
| 0.931.010-2.060.011 || not present
| 0.931.010-2.060.011 || not present
|-
|-
| 2.100.081-3.740.011 || 0x4FEC564C
| 2.100.081-3.740.011 || 0xC6A2C9EF
|}
|}


<source lang="C">int sceSysconGetManualChargeModeForDriver(int *piMode);</source>
<source lang="C">int sceSysconCtrlManualChargeModeForDriver(int mode);</source>


=== sceSysconCtrlManualChargeModeForDriver ===
=== sceSysconSetClockForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-3.740.011 || 0x9B6A6F64
|-
| 2.100.081-3.740.011 || 0xC6A2C9EF
|}
|}


<source lang="C">int sceSysconCtrlManualChargeModeForDriver(int mode);</source>
Calls Syscon command 0x81.
 
Sets current Syscon power on time in ticks of 0.5 second. The set value can be get with [[#sceSysconGetClockForDriver]].
 
Used in [[SceRtc]]. Set to 0 just before setting Current Tick, to reset syscon power on time.
 
<source lang="C">int sceSysconSetClockForDriver(SceUInt32 time);</source>


=== sceSysconGetLogInfoForDriver ===
=== SceSysconForDriver_51164951 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0x51164951
|-
| 0.990.000-3.740.011 || 0x701535FC
|}
|}
Calls Syscon command 0x82. On Syscon version < 0x90907, 4 bytes are sent to Syscon, whilst on Syscon version >= 0x90907, 5 bytes are sent to Syscon.
Sets an alarm tick. The set tick can be get using Syscon command 0x12 via [[#SceSysconForDriver_3168F3AF]].
Used in [[SceRtc#sceRtcSetAlarmTickForDriver]].


<source lang="C">
<source lang="C">
typedef struct SceSysconLogInfo { // size is 8 on FW 3.600.011
// FW 0.931.010
  uint8_t unk_0[8];
int SceSysconForDriver_51164951(void *tick);
} SceSysconLogInfo;


int sceSysconGetLogInfoForDriver(SceSysconLogInfo *pInfo);
// FW 3.600.011-3.740.011
// tick_low: seen value: 0xffffffff during Syscon Init
// tick_hi: some 8-bit flag, seen value: 0 during Syscon Init
int SceSysconForDriver_51164951(SceUint32 tick_low, SceUInt8 tick_hi);
</source>
</source>


=== sceSysconLogStartForDriver ===
=== SceSysconForDriver_373ECF8A ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 258: Line 327:
| 0.931.010-0.940 || not present
| 0.931.010-0.940 || not present
|-
|-
| 0.990.000-3.740.011 || 0x4E55CF5E
| 0.990.000-3.740.011 || 0x373ECF8A
|}
|}


<source lang="C">int sceSysconLogStartForDriver(void);</source>
Calls Syscon command 0x83. Sends 3 bytes to Syscon. Used only if [[KBL Param#Hardware Info|Hardware Info]] indicates that the motherboard is not IRT-001 or IRT-002 or type 0x10 (maybe named IRS-001) and if console is not in manufacturing mode.
 
<source lang="C">int SceSysconForDriver_373ECF8A(SceUInt32 unk);</source>


=== sceSysconLogStartWaitingForDriver ===
=== SceSysconForDriver_2659535C ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.12 || not present
| 0.931.010 || not present
|-
|-
| 2.500.071-3.740.011 || 0x9C0B1E61
| 0.990.000-3.740.011 || 0x2659535C
|}
|}


<source lang="C">int sceSysconLogStartWaitingForDriver(void);</source>
Calls Syscon command 0x84. Sends 1 byte to Syscon: 0.
 
<source lang="C">int SceSysconForDriver_2659535C(void);</source>


=== sceSysconLogReadDataForDriver ===
=== SceSysconForDriver_4295D497 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010 || not present
|-
|-
| 0.996.090-3.740.011 || 0x487D97F3
| 0.990.000-3.740.011 || 0x4295D497
|}
|}


<source lang="C">int sceSysconLogReadDataForDriver(SceUInt32 offset, void *buffer, SceSize size);</source>
Calls Syscon command 0x85. Sends 1 byte to Syscon: 0.


=== sceSysconGetTemperatureLogForDriver ===
<source lang="C">int SceSysconForDriver_4295D497(void);</source>
 
=== sceSysconGetLogInfoForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.12 || not present
| 0.931.010-0.940 || not present
|-
|-
| 2.500.071-3.740.011 || 0x3B354824
| 0.990.000-3.740.011 || 0x701535FC
|}
|}


=== sceSysconClearTemperatureLogForDriver ===
Calls Syscon command 0x86.
 
<source lang="C">
typedef struct SceSysconLogInfo { // size is 8 on FW 3.600.011
  uint8_t unk_0[8];
} SceSysconLogInfo;
 
int sceSysconGetLogInfoForDriver(SceSysconLogInfo *pInfo);
</source>
 
=== sceSysconLogStartForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.12 || not present
| 0.931.010-0.940 || not present
|-
|-
| 2.500.071-3.740.011 || 0x3843D657
| 0.990.000-3.740.011 || 0x4E55CF5E
|}
|}


=== sceSysconGetUsbDetStatusForDriver ===
Calls Syscon command 0x87. Sends 1 byte to Syscon: 0.
{| class="wikitable"
 
<source lang="C">int sceSysconLogStartForDriver(void);</source>
 
=== sceSysconLogReadDataForDriver ===
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-0.940 || not present
|-
|-
| 2.100.081-3.740.011 || 0xEF810687
| 0.996.090-3.740.011 || 0x487D97F3
|}
|}


=== sceSysconCtrlDolceLEDForDriver ===
Calls Syscon command 0x88.
 
<source lang="C">int sceSysconLogReadDataForDriver(SceUInt16 offset, void *pData, SceSize size);</source>
 
=== sceSysconLogStartWaitingForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-2.12 || not present
|-
|-
| 2.100.081-3.740.011 || 0x727F985A
| 2.500.071-3.740.011 || 0x9C0B1E61
|}
|}


This is a guessed name.
Calls Syscon command 0x89.


<source lang="C">
<source lang="C">int sceSysconLogStartWaitingForDriver(void);</source>
#define STATE_ON 0
#define STATE_BLINK_SLOW 1
#define STATE_BLINK_FAST 2


int sceSysconCtrlDolceLEDForDriver(SceUInt32 state);
=== sceSysconCtrlUSBSupplyForDriver ===
</source>
 
=== sceSysconGetTimeStampForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x4D588A0A
| 3.600.011-3.740.011 || 0x7BFA95DA
|}
|}


This is a guessed named, derived from PSP. Temp name was sceSysconGetBaryonTimestampForDriver.
This function is used instead of [[#sceSysconCtrlChargeVBUSForDriver]] on PS Vita Slim.


Returns the timestamp of latest installed Syscon firmware patch, formatted as <code>YYYYMMDDhhmm</code>. This comes from a string stored in Syscon firmware under another format: <code>$Date:: YYYY-MM-DD hh:mm:ss +0900#$</code>
Calls Syscon command 0x8C8. Sends 1 byte to Syscon. Gets 0 byte from Syscon.


Example: <code>$Date:: 2013-12-13 15:52:05 +0900#$</code> in Syscon firmware becomes <code>201312131552</code> in Syscon command 2.
Used in factTest module.


<source lang="c">
<source lang="C">int sceSysconCtrlUSBSupplyForDriver(SceUInt8 data);</source>
// pTimestamp will point to a buffer of size 0x10 bytes, containing a string of size 13 (12: length + 1: terminal character)
int sceSysconGetTimeStampForDriver(char *pTimestamp);
</source>


=== sceSysconGetWakeupFactorForDriver ===
=== SceSysconForDriver_451C1662 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xCF5B2F2F
| 3.600.011-3.740.011 || 0x451C1662
|}
|}


Result is 2 bytes wakeup factor coming from Syscon command 0x10.
Calls Syscon command 0x8C9. Sends 1 byte to Syscon. Gets 0 byte from Syscon.


<source lang="C">int sceSysconGetWakeupFactorForDriver(SceUInt32 *pWakeupFactor);</source>
<source lang="C">int SceSysconForDriver_451C1662(SceUInt8 data);</source>


=== sceSysconCtrlHdmiCecPowerForDriver ===
=== SceSysconForDriver_79074DE4 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x62155962
| 3.600.011-3.740.011 || 0x79074DE4
|}
|}


If Syscon version is strictly lower than 0x40000, it does nothing and returns 0.
Calls Syscon command 0x8CA. Sends 0 byte to Syscon. Gets 1 bytes from Syscon: data.


Sets the pin CDC Hot Plug Detect (HPD) state of the HDMI bridge (AD80244 / ADV7533).
<source lang="C">int SceSysconForDriver_79074DE4(SceUInt8* pData);</source>


<source lang="c">int sceSysconCtrlHdmiCecPowerForDriver(SceBool enable_HDMI_CDC_HPD_pin);</source>
=== SceSysconForDriver_7D25F6D2 ===
{| class="wikitable"
! Version !! NID
|-
| 3.600.011-3.740.011 || 0x7D25F6D2
|}
 
Calls Syscon command 0x8CB. Sends 1 byte to Syscon: id. Gets 1 bytes from Syscon: data.


=== SceSysconForDriver_3FDD29D6 ===
<source lang="C">int SceSysconForDriver_7D25F6D2(SceUInt8 id, SceUInt8* pData);</source>
 
=== SceSysconForDriver_D2ADABCA ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x3FDD29D6
| 3.600.011-3.740.011 || 0xD2ADABCA
|}
|}


<source lang="C">int SceSysconForDriver_3FDD29D6(int a1, SceBool use_flag);</source>
Calls Syscon command 0x8CC. Sends 2 bytes from Syscon: id, data.


=== sceSysconSetVoltageForDriver ===
<source lang="C">int SceSysconForDriver_D2ADABCA(SceUInt8 id, SceUInt8 data);</source>
 
=== sceSysconGetTemperatureLogForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x7F198FA2
| 0.931.010-2.12 || not present
|-
| 2.500.071-3.740.011 || 0x3B354824
|}
|}


This is a guessed name. Used in [[ScePower]]. <s>when setting a device clock frequency.</s>
Calls Syscon command 0x8CE. Gets 0x10 bytes from Syscon.


<source lang="C">
<source lang="C">
/* type:
typedef struct SceSysconTemperatureLog { // size is 0x10 bytes
0: Reserved
    char log[16];
1: VDD (IFTU, DMAC, Internal bus, SPM 32KiB/128KiB) SetSysClockFrequency, SetDmac5ClockFrequency, SetBusClockFrequency, SetCameraBusClockFrequency
} SceSysconTemperatureLog;
2: VDDA (ARM core, L2 cache) SetArmClockFrequency
3: VDDC (Codec Engine, AVC Decoder) SetGpuClockFrequency, SetVipClockFrequency
4: VDDG (GPU core) SetGpuClockFrequencyInternal, SetGpuXbarClockFrequency, SetCompatClockFrequency


vid : 0x8A (1.38V) - (something got from ScePervasiveForDriver)
int sceSysconGetTemperatureLogForDriver(SceSysconTemperatureLog *pLog);
*/
</source>


int sceSysconSetVoltageForDriver(SceUInt32 type, SceUInt32 vid);</source>
=== sceSysconClearTemperatureLogForDriver ===
 
=== sceSysconSetPowerModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x8A95D35C
| 0.931.010-2.12 || not present
|-
| 2.500.071-3.740.011 || 0x3843D657
|}
|}


Temp name was sceSysconResetDeviceForDriver.
Calls Syscon command 0x8CF. Sends 2 bytes to Syscon.


<source lang="c">int sceSysconSetPowerModeForDriver(int type, int mode);</source>
<source lang="C">int sceSysconClearTemperatureLogForDriver(SceUInt32 unk);</source>


It issues <code>SMC #0</code> with <code>r12 = 0x11A</code>.
=== SceSysconForDriver_F87679EE ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-2.12 || not present
|-
| 3.600.011-3.740.011 || 0xF87679EE
|}


The <code>mode</code> argument is usually set to <code>0x2</code> or sometimes <code>0x8002</code> (which seems to correspond to some request by the UDC and BT drivers).
Calls Syscon command 0x8D0. Sends 2 bytes to Syscon.


The <code>type</code> argument determines what to do.
Probably related to Syscon Temperature Log.


Real definition names are like: "SCE_SYSCON_POWERMODE_MODE_STANDBY".
<source lang="C">int SceSysconForDriver_F87679EE(SceUInt32 unk);</source>


=== sceSysconGetUsbDetStatusForDriver ===
{| class="wikitable"
{| class="wikitable"
! Type !! Description !! Syscon command
! Version !! NID
|-
|-
| 0 || Power off || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
| 0.931.010-2.060.011 || not present
|-
|-
| 1 || Suspend (low-power state) || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
| 2.100.081-3.740.011 || 0xEF810687
|-
|}
| 2 || Cold reset || <code>{0x01, 8, 1, 0}</code>
 
|-
Calls Syscon command 0x805.
| 3 || ?Reset to update mode? || <code>{0xC1, 0, 2, 0}</code>
 
|-
Maybe supported by PS TV or PS Vita Slim only.
| 4 || ?Reset to update mode? || <code>{0xC1, 0, 2, 1}</code>
 
|-
<source lang="C">int sceSysconGetUsbDetStatusForDriver(SceUInt32 *pStatus);</source>
| 5 || Hibernate || <code>{0xC2, 0, 2, 0x5A}</code>
|-
| 16 || ?? || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
|-
| 17 || Resume (soft reset: suspend and immediately resume) || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
|}


=== sceSysconEnableHibernateIOForDriver ===
=== SceSysconForDriver_E7F5D3DC ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-1.692.000 || not present
|-
|-
| 0.990.000-3.740.011 || 0x4946538A
| 2.100.081-3.740.011 || 0xE7F5D3DC
|}
|}


<source lang="C">int sceSysconEnableHibernateIOForDriver(int a1);</source>
Calls Syscon command 0x806.
 
Maybe supported by PS TV or PS Vita Slim only.


=== sceSysconWaitReadyForDriver ===
On PS TV returns data 0x00000000
 
<source lang="C">int SceSysconForDriver_E7F5D3DC(SceUInt32 *pResult);</source>
 
=== SceSysconForDriver_253CC522 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-1.692.000 || not present
|-
|-
| 0.996.090-3.740.011 || 0x55DF1C9B
| 2.100.081-3.740.011 || 0x253CC522
|}
|}


Temp name was sceSysconWaitInitializedForDriver.
Calls Syscon command 0x807. Gets 2 bytes from Syscon.


<source lang="c">int sceSysconWaitReadyForDriver(void);</source>
On DevKit, it returns 0x8025023F. Maybe supported by PS TV or PS Vita Slim only.


=== sceSysconCmdSyncForDriver ===
On PS TV returns data 0xca1a
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0x6E517D22
|}


<source lang="c">int sceSysconCmdSyncForDriver(SceSysconPacket *packet, int noWait);</source>
<source lang="C">int SceSysconForDriver_253CC522(SceUInt16 *pResult);</source>


=== sceSysconCmdExecForDriver ===
=== sceSysconCtrlDolceLEDForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x9ADDCA4A
| 0.931.010-2.060.011 || not present
|-
| 2.100.081-3.740.011 || 0x727F985A
|}
|}


<source lang="c">int sceSysconCmdExecForDriver(SceSysconPacket *packet, unsigned int flags);</source>
This is a guessed name.


=== sceSysconCmdExecAsyncForDriver ===
<source lang="C">
{| class="wikitable"
#define STATE_ON 0
! Version !! NID
#define STATE_BLINK_SLOW 1
|-
#define STATE_BLINK_FAST 2
| 0.931.010-3.740.011 || 0xC2224E82
 
|}
int sceSysconCtrlDolceLEDForDriver(SceUInt32 state);
<source lang="c">int sceSysconCmdExecAsyncForDriver(SceSysconPacket *packet, u32 flags, int (*callback)(SceSysconPacket *, void *), void *argp);</source>
</source>


=== sceSysconCtrlSdPowerForDriver ===
=== sceSysconGetTimeStampForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xBE1ADE4F
| 0.931.010-3.740.011 || 0x4D588A0A
|}
|}


If Syscon version is strictly lower than 0x40000, it does nothing and returns 0. Calls Syscon command 0x888.
This is a guessed named, derived from PSP. Temp name was sceSysconGetBaryonTimestampForDriver.


Enables/disables GameCard reader.
Returns the timestamp of latest installed Syscon firmware patch, formatted as <code>YYYYMMDDhhmm</code>. This comes from a string stored in Syscon firmware under another format: <code>$Date:: YYYY-MM-DD hh:mm:ss +0900#$</code>


Used in [[SceSdstor]].
Example: <code>$Date:: 2013-12-13 15:52:05 +0900#$</code> in Syscon firmware becomes <code>201312131552</code> in Syscon command 2.


<source lang="c">
<source lang="c">
// param: 1 = enable SD (GameCard reader) power, 0 = disable SD (GameCard reader) power
// pTimestamp will point to a buffer of size 0x10 bytes, containing a string of size 13 (12: length + 1: terminal character)
int sceSysconCtrlSdPowerForDriver(SceUInt16 param);
int sceSysconGetTimeStampForDriver(char *pTimestamp);
</source>
</source>


=== sceSysconCtrlWirelessPowerForDriver ===
=== sceSysconGetWakeupFactorForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.995.000 || 0x4FBDA504
| 0.931.010-3.740.011 || 0xCF5B2F2F
|-
| 0.996.090-3.740.011 || not present
|}
|}


If Syscon version is strictly lower than 0x40000, it does nothing and returns 0. Calls Syscon command 0x88A.
Result is 2 bytes wakeup factor coming from Syscon command 0x10.


Replaced by function [[#sceSysconCtrlWirelessPower2ForDriver]].
Used in [[SceWlanBt]].


<source lang="C">int sceSysconCtrlWirelessPowerForDriver(SceUInt16 param);</source>
<source lang="C">int sceSysconGetWakeupFactorForDriver(SceUInt32 *pWakeupFactor);</source>


=== sceSysconCtrlWirelessPower2ForDriver ===
=== sceSysconCtrlHdmiCecPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0x62155962
|-
|}
| 0.996.090-3.740.011 || 0xA2E85DB9
 
|}
If Syscon version is strictly lower than 0x40000, it does nothing and returns 0.


Replacement function for [[#sceSysconCtrlWirelessPowerForDriver]]. Calls Syscon command 0x88A.
Sets the pin CDC Hot Plug Detect (HPD) state of the HDMI bridge (AD80244 / ADV7533).


<source lang="C">int sceSysconCtrlWirelessPower2ForDriver(SceUInt16 param);</source>
<source lang="c">int sceSysconCtrlHdmiCecPowerForDriver(SceBool enable_HDMI_CDC_HPD_pin);</source>


=== sceSysconCtrlWirelessPowerDownForDriver ===
=== sceSysconCtrlMotionSensorPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.995.000 || 0xDF8C6D2D
| 0.931.010-3.740.011 || 0x063425AE
|-
| 0.996.090-3.740.011 || not present
|}
|}


If motherboard is not "hardware info third byte 0x10" (probably IRS-001), it does nothing and returns 0, probably because missing hardware. Calls Syscon command 0xB1. Wireless power down might be a button to enable/disable Wireless, like on PSP.
This is a guessed name.
 
If Syscon version is strictly lower than 0x40000, it does nothing and returns 0.


<source lang="C">int sceSysconCtrlWirelessPowerDownForDriver(SceUInt16 param);</source>
<source lang="C">int sceSysconCtrlMotionSensorPowerForDriver(SceBool enable);</source>


=== sceSysconVerifyConfigstorageScriptForDriver ===
=== SceSysconForDriver_3FDD29D6 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.990.000 || not present
| 0.931.010-3.740.011 || 0x3FDD29D6
|-
| 0.995.000-3.740.011 || 0xCC6F90A8
|}
|}


This function is not used in the OS and anyway it would always return error because it calls a command that is not implemented in Syscon FW.
Calls Syscon command 0x884. Sends 2 bytes to Syscon.


<source lang="C">int sceSysconVerifyConfigstorageScriptForDriver(int a1, void *pScript, SceSize size);</source>
<source lang="C">int SceSysconForDriver_3FDD29D6(int value, SceBool use_flag);</source>


=== sceSysconLoadConfigstorageScriptForDriver ===
=== SceSysconForDriver_79E6DD8B ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.990.000 || not present
| 0.931.010-3.740.011 || 0x79E6DD8B
|-
| 0.995.000-3.740.011 || 0x89C5CFD6
|}
|}


The OS uses this function to change between modes: IDU mode, Show Mode, no mode. This works by spoofing or rewriting [[KBL Param#Hardware Info|Hardware Info]]. This is reboot persistent.
Calls Syscon command 0x885. Sends 2 bytes to Syscon.


<source lang="C">int sceSysconLoadConfigstorageScriptForDriver(int a1, void *pScript, SceSize size);</source>
<source lang="C">int SceSysconForDriver_79E6DD8B(int value, SceBool use_flag);</source>


=== sceSysconBeginConfigstorageTransactionForDriver ===
=== sceSysconCtrlVoltageForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.920.050-3.740.011 || 0x7F198FA2
|-
| 0.990.000-3.740.011 || 0xA4968B8C
|}
|}


<source lang="C">int sceSysconBeginConfigstorageTransactionForDriver(void);</source>
Temp name was sceSysconSetVoltageForDriver.
 
Calls Syscon command 0x88E.
 
Used in [[ScePower]].


=== sceSysconCommitConfigstorageTransactionForDriver ===
<source lang="C">
{| class="wikitable"
/*
! Version !! NID
type:
0: Reserved
1: DD1 (VDD - IFTU, DMAC, Internal bus, SPM 32KiB/128KiB) SetSysClockFrequency, SetDmac5ClockFrequency, SetBusClockFrequency, SetCameraBusClockFrequency
2: DD2 (VDDA - ARM core, L2 cache) SetArmClockFrequency
3: DD3 (VDDC - Codec Engine, AVC Decoder) SetVipClockFrequency, SetVeneziaClockFrequency
4: DD4 (VDDG - GPU core) SetGpuClockFrequencyInternal, SetGpuXbarClockFrequency, SetCompatClockFrequency
 
vid:
0x22 (0.34V)
0x8A (1.38V) - (something got from ScePervasiveForDriver)
*/
 
#define SCE_SYSCON_VOLTAGE_DD1 (1)
#define SCE_SYSCON_VOLTAGE_DD2 (2)
#define SCE_SYSCON_VOLTAGE_DD3 (3)
#define SCE_SYSCON_VOLTAGE_DD4 (4)
 
int sceSysconCtrlVoltageForDriver(SceUInt32 type, SceUInt32 vid);
</source>
 
=== sceSysconSetPowerModeForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0x8A95D35C
|-
| 0.990.000-3.740.011 || 0x7B9B3617
|}
|}


<source lang="C">int sceSysconCommitConfigstorageTransactionForDriver(void);</source>
Temp name was sceSysconResetDeviceForDriver.
 
It issues [[SceExcpmgr#SMC_calls|SMC]] 0x11A.
 
The <code>mode</code> argument is usually set to <code>0x2</code> or sometimes <code>0x8002</code> (which seems to correspond to some request by the UDC and BT drivers).
 
The <code>type</code> argument determines what to do.
 
Real definition names are like: "SCE_SYSCON_POWERMODE_MODE_STANDBY".


=== sceSysconEndConfigstorageTransactionForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Type !! Description !! Syscon command arguments <code>{cmd_no_low, cmd_no_hi, args_size, args}</code>
|-
| 0 || Power off || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
|-
| 1 || Suspend (low-power state) || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
|-
| 2 || Reset (cold reset) || <code>{0x01, 8, 1, 0}</code>
|-
| 3 || Reset to external boot mode || <code>{0xC1, 0, 2, 0}</code>
|-
| 4 || ?Reset to update mode? || <code>{0xC1, 0, 2, 1}</code>
|-
| 5 || Hibernate || <code>{0xC2, 0, 2, 0x5A}</code>
|-
|-
| 0.931.010 || not present
| 16 || ?Resume? || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
|-
|-
| 0.990.000-3.740.011 || 0xFCC3E8EE
| 17 || Resume (soft reset: suspend and immediately resume) || <code>{0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}</code>
|}
|}


<source lang="C">int sceSysconEndConfigstorageTransactionForDriver(void);</source>
<source lang="c">int sceSysconSetPowerModeForDriver(int type, int mode);</source>


=== sceSysconSetDebugHandlersForDriver ===
=== sceSysconEnableHibernateIOForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xF245CD6F
| 0.931.010-0.940 || not present
|-
| 0.990.000-3.740.011 || 0x4946538A
|}
|}


<source lang="c">
<source lang="C">int sceSysconEnableHibernateIOForDriver(int maybe_enable);</source>
/** A set of debug handlers for syscon, that you can set in sceSysconSetDebugHandlersForDriver(). */
typedef struct SceSysconDebugHandlers {
    /** Structure size (probably, unused). */
    s32 size;
    /** Callback ran right before running a packet, with a pointer to it passed as the first argument. */
    void (*start)(SceSysconPacket *packet);
    /** Callback ran right after finishing running a packet, with a pointer to it passed as the first argument. */
    void (*end)(SceSysconPacket *packet);
} SceSysconDebugHandlers;
 
int sceSysconSetDebugHandlersForDriver(SceSysconDebugHandlers *debug_handlers);
</source>


=== sceSysconGetBatteryCalibDataForDriver ===
=== sceSysconWaitReadyForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.36 || not present
| 0.931.010-0.940 || not present
|-
|-
| 3.500.011-3.740.011 || 0x9ADC9936
| 0.996.090-3.740.011 || 0x55DF1C9B
|}
|}


<source lang="C">int sceSysconGetBatteryCalibDataForDriver(int *piData1, int *piData2, int *piData3, int *piData4);</source>
Temp name was sceSysconWaitInitializedForDriver.
 
<source lang="c">int sceSysconWaitReadyForDriver(void);</source>


=== sceSysconGetTouchpanelDeviceInfoForDriver ===
=== sceSysconCmdSyncForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xF492E69E
| 0.931.010-3.740.011 || 0x6E517D22
|}
|}


<source lang="C">
<source lang="c">int sceSysconCmdSyncForDriver(SceSysconPacket *packet, int noWait);</source>
typedef struct SceKernelTouchpanelDeviceInfo {
  uint16_t FrontVendorID;
  uint16_t FrontFwVersion;
  uint16_t BackVendorID;
  uint16_t BackFwVersion;
} SceKernelTouchpanelDeviceInfo;


int sceSysconGetTouchpanelDeviceInfoForDriver(SceKernelTouchpanelDeviceInfo *pInfo);
=== sceSysconCmdExecForDriver ===
</source>
 
=== sceSysconGetTouchpanelDeviceInfo2ForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.50 || not present
| 0.931.010-3.740.011 || 0x9ADDCA4A
|-
| 1.690.011-3.740.011 || 0x030D447F
|}
|}


This is a guessed name.
<source lang="c">int sceSysconCmdExecForDriver(SceSysconPacket *packet, unsigned int flags);</source>


Returns extended touchpanel info.
=== sceSysconCmdExecAsyncForDriver ===
 
<source lang="C">
typedef struct SceKernelTouchpanelDeviceInfo2 {
uint16_t FrontVendorID;
uint16_t FrontFwVersion;
uint16_t FrontUnk1;
uint8_t FrontUnk2;
uint8_t FrontUnk3;
uint16_t unused1;
uint16_t BackVendorID;
uint16_t BackFwVersion;
uint16_t BackUnk1;
uint8_t BackUnk2;
uint8_t BackUnk3;
uint16_t unused2;
} SceKernelTouchpanelDeviceInfo2;
 
int sceSysconGetTouchpanelDeviceInfo2ForDriver(SceKernelTouchpanelDeviceInfo2 *pInfo);
</source>
 
=== sceSysconGetHardwareInfoForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xCBD6D8BC
| 0.931.010-3.740.011 || 0xC2224E82
|}
|}
<source lang="c">int sceSysconCmdExecAsyncForDriver(SceSysconPacket *packet, u32 flags, int (*callback)(SceSysconPacket *, void *), void *argp);</source>


Returns [[KBL Param#Hardware Info|Hardware Info]] obtained from Syscon command 0x5.
=== sceSysconCtrlSdPowerForDriver ===
 
<source lang="C">int sceSysconGetHardwareInfoForDriver(void);</source>
 
=== sceSysconGetHardwareInfo2ForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-3.740.011 || 0xBE1ADE4F
|-
| 2.100.081-3.740.011 || 0x965C68C3
|}
|}


Returns [[KBL Param#Hardware Info 2|Hardware Info 2]] obtained from Syscon command 0x6.
If Syscon version is strictly lower than 0x40000, it does nothing and returns 0. Calls Syscon command 0x888.


This function was certainly added for PS Vita Slim or PS TV support because [[KBL Param#Hardware Info|Hardware Info]] risked being fulfilled if too many hardware revisions were made.
Enables/disables GameCard reader.


Used in [[SceAudioIn]] (maybe to check Conexant IC), [[SceCodec]] (maybe to check Conexant IC), and [[SceVshBridge#vshSysconGetHardwareInfo2|_vshSysconGetHardwareInfo2]].
Used in [[SceSdstor]].


<source lang="C">
<source lang="c">
typedef struct SceKernelHardwareInfo2 {
// param: 1 = enable SD (GameCard reader) power, 0 = disable SD (GameCard reader) power
  SceUInt8 flags[0x10];
int sceSysconCtrlSdPowerForDriver(SceUInt16 param);
} SceKernelHardwareInfo2;
 
int sceSysconGetHardwareInfo2ForDriver(SceKernelHardwareInfo2 *pInfo);
</source>
</source>


=== sceSysconGetErnieVersionForDriver ===
=== sceSysconCtrlWirelessPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931-3.740.011 || 0xFF86F4C5
| 0.931.010-0.995.000 || 0x4FBDA504
|-
| 0.996.090-3.740.011 || not present
|}
|}


This is a guessed name. Temp name was sceSysconGetBaryonVersionForDriver.
If Syscon version is strictly lower than 0x40000, it does nothing and returns 0. Calls Syscon command 0x88A.
 
Replaced by function [[#sceSysconCtrlWirelessPower2ForDriver]].


<source lang="c">int sceSysconGetErnieVersionForDriver(void);</source>
<source lang="C">int sceSysconCtrlWirelessPowerForDriver(SceUInt16 param);</source>


=== SceSysconForDriver_EBE3262C ===
=== sceSysconCtrlWirelessPower2ForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 744: Line 834:
| 0.931.010-0.940 || not present
| 0.931.010-0.940 || not present
|-
|-
| 0.996.090-3.740.011 || 0xEBE3262C
| 0.996.090-3.740.011 || 0xA2E85DB9
|}
|}


In [[SceSblPostSsMgr]], used just after [[#sceSysconGetErnieVersionForDriver]].
Replacement function for [[#sceSysconCtrlWirelessPowerForDriver]]. Calls Syscon command 0x88A.


Returns 8 bits of some Syscon Mode information. Bit 6 (from right) is Syscon DownLoader Mode flag. Bit 3 (from right) is Power Online flag.
Used in [[SceWlanBt]]:
<source lang="C">
        scePowerSetWakeupConditionForDriver(4, 0);
        uVar2 = 0;
        sceSysconCtrlDeviceResetForDriver(0x10, 0);
        sceSysconCtrlWirelessPower2ForDriver(0);
        sceClockgenWlanBtClkDisableForDriver();
</source>


<source lang="C">SceUInt8 SceSysconForDriver_EBE3262C(void);</source>
<source lang="C">int sceSysconCtrlWirelessPower2ForDriver(SceUInt16 enable);</source>


=== sceSysconIsDownLoaderModeForDriver ===
=== sceSysconCtrlWirelessPowerDownForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-0.995.000 || 0xDF8C6D2D
|-
|-
| 0.990.000-3.740.011 || 0x9ADD60D2
| 0.996.090-3.740.011 || not present
|}
|}


<source lang="C">int sceSysconIsDownLoaderModeForDriver(void);</source>
If motherboard is not "hardware info third byte 0x10" (probably IRS-001), it does nothing and returns 0, probably because missing hardware. Calls Syscon command 0xB1. Wireless power down might be a button to enable/disable Wireless, like on PSP.
 
<source lang="C">int sceSysconCtrlWirelessPowerDownForDriver(SceUInt16 param);</source>


=== sceSysconIsDealDownLoaderModeForDriver ===
=== sceSysconGetConfigStorageInfoForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xB7BCC638
| 0.995.000-3.740.011 || 0xCE48E8EB
|}
|}


<source lang="C">int sceSysconIsDealDownLoaderModeForDriver(void);</source>
Get Syscon Config Storage Info using Syscon command 0x1300.


=== SceSysconForDriver_0D0B6D25 ===
Config Storage Info is part of the [[Syscon]] "ConfZZ" header.
{| class="wikitable"
! Version !! NID
|-
| 0.931.010.740.011 || 0x0D0B6D25
|}


Maybe exits Syscon Deal DownLoader mode.
<source lang="C">
typedef struct SceKernelConfigStorageInfo { // size is 8 bytes
    SceUInt16 version;
    SceUInt16 unk_2;
    SceUInt32 unk_4;
} SceKernelConfigStorageInfo;


<source lang="C">int SceSysconForDriver_0D0B6D25(void);</source>
int sceSysconGetConfigStorageInfoForDriver(SceKernelConfigStorageInfo *pInfo);
</source>


=== sceSysconIsPowerOnlineForDriver ===
=== sceSysconLoadConfigstorageScriptForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x9DA2A5AB
| 0.931.010-0.990.000 || not present
|-
| 0.995.000-3.740.011 || 0x89C5CFD6
|}
|}


Returns true iff Syscon information bit 3 (from right) is set. See also [[#SceSysconForDriver_EBE3262C]].
Calls Syscon command 0x1385.


Used in many [[ScePower]] functions for example before setting display brightness (to save battery).
The OS uses this function to change between modes: IDU mode, Show Mode, no mode. This works by spoofing or rewriting [[KBL Param#Hardware Info|Hardware Info]]. This is reboot persistent.


<source lang="C">SceBool sceSysconIsPowerOnlineForDriver(void);</source>
<source lang="C">int sceSysconLoadConfigstorageScriptForDriver(int a1, void *pScript, SceSize size);</source>


=== sceSysconGetErnieDLVersionForDriver ===
=== sceSysconVerifyConfigstorageScriptForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xD2F456DC
| 0.931.010-0.990.000 || not present
|-
| 0.995.000-3.740.011 || 0xCC6F90A8
|}
|}


Calls Syscon command 0x1100.
Calls Syscon command 0x1386.
 
This function is not used in the OS and anyway it would always return error because it calls a command that is not implemented in Syscon FW.


<source lang="C">void sceSysconGetErnieDLVersionForDriver(int *pVersion);</source>
<source lang="C">int sceSysconVerifyConfigstorageScriptForDriver(int a1, void *pScript, SceSize size);</source>


=== sceSysconGetBatteryVersionForDriver ===
=== SceSysconForDriver_FD65FFCB ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x68E0031E
| 3.600.011-3.740.011 || 0xFD65FFCB
|}
|}


Battery IC name: if HWinfo > 7 "Abby" else "Bert".
Calls Syscon command 0x1392.


<source lang="C">int sceSysconGetBatteryVersionForDriver(SceUInt16 *HWinfo, SceUInt16 *FWinfo, SceUInt16 *DFinfo);</source>
<source lang="C">int SceSysconForDriver_FD65FFCB(SceUInt8 offset, SceUInt16 a2);</source>


=== sceSysconGetManufacturesStatusForDriver ===
=== sceSysconBeginConfigstorageTransactionForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.931.010 || not present
|-
|-
| 1.800.071-3.740.011 || 0x3E09A1F4
| 0.990.000-3.740.011 || 0xA4968B8C
|}
|}


In theory, this function should only be called when Product Mode is already set.
<source lang="C">int sceSysconBeginConfigstorageTransactionForDriver(void);</source>


<source lang="C">int sceSysconGetManufacturesStatusForDriver(int *piStatus);</source>
=== sceSysconCommitConfigstorageTransactionForDriver ===
 
=== sceSysconReadScratchPadForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x299B1CE7
| 0.931.010 || not present
|-
| 0.990.000-3.740.011 || 0x7B9B3617
|}
|}


Temp name was sceSysconReadCommandForDriver, sceSysconVsReadDataForDriver.
<source lang="C">int sceSysconCommitConfigstorageTransactionForDriver(void);</source>


Calls Syscon command 0x90.
=== sceSysconEndConfigstorageTransactionForDriver ===
 
{| class="wikitable"
Used in [[SceRtc]].
! Version !! NID
|-
| 0.931.010 || not present
|-
| 0.990.000-3.740.011 || 0xFCC3E8EE
|}


See also [[Ernie#Syscon_Scratch_Pad|Syscon Scratchpad structure]].
<source lang="C">int sceSysconEndConfigstorageTransactionForDriver(void);</source>


<source lang="C">
=== sceSysconSetDebugHandlersForDriver ===
// size: On FW 3.60, must be between 0 and 0x18. On FW 0.931, must be 2, 4 or 8.
// offset: Must be between 0 and 0xFF.
// offset + size must not exceed 0x100
int sceSysconReadScratchPadForDriver(SceUInt32 offset, void *buffer, SceSize size);
</source>
 
=== sceSysconWriteScratchPadForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xE26488B9
| 0.931.010-3.740.011 || 0xF245CD6F
|}
|}


Temp name was sceSysconSendCommandForDriver, sceSysconVsWriteDataForDriver.
<source lang="c">
/** A set of debug handlers for syscon, that you can set in sceSysconSetDebugHandlersForDriver(). */
typedef struct SceSysconDebugHandlers {
    /** Structure size (probably, unused). */
    s32 size;
    /** Callback ran right before running a packet, with a pointer to it passed as the first argument. */
    void (*start)(SceSysconPacket *packet);
    /** Callback ran right after finishing running a packet, with a pointer to it passed as the first argument. */
    void (*end)(SceSysconPacket *packet);
} SceSysconDebugHandlers;


Calls Syscon command 0x91.
int sceSysconSetDebugHandlersForDriver(SceSysconDebugHandlers *debug_handlers);
 
Used in [[SceRtc]] and [[ScePower]].
 
See also [[Ernie#Syscon_Scratch_Pad|Syscon Scratchpad structure]].
 
<source lang="C">
// size: On FW 3.60, must be between 0 and 0x18. On FW 0.931, must be 2, 4 or 8.
// offset: Must be between 0 and 0xFF.
// offset + size must not exceed 0x100
int sceSysconWriteScratchPadForDriver(SceUInt32 offset, void *buffer, SceSize size);
</source>
</source>


=== sceSysconNvsSetRunModeForDriver ===
=== sceSysconGetBatteryCalibDataForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x81A6060D
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x9ADC9936
|}
|}


Used in [[SceSblSsMgr#sceSblNvsReadDataForKernel|sceSblNvsReadDataForKernel]] and [[SceSblSsMgr#sceSblNvsWriteDataForKernel|sceSblNvsWriteDataForKernel]].
<source lang="C">int sceSysconGetBatteryCalibDataForDriver(int *piData1, int *piData2, int *piData3, int *piData4);</source>
 
=== sceSysconGetTouchpanelDeviceInfoForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0xF492E69E
|}


<source lang="C">
<source lang="C">
// mode: 0 before NVS read/write
typedef struct SceKernelTouchpanelDeviceInfo { // size is 8 bytes
int sceSysconNvsSetRunModeForDriver(int mode);
  uint16_t FrontVendorID;
  uint16_t FrontFirmwareRev;
  uint16_t RearVendorID;
  uint16_t RearFirmwareRev;
} SceKernelTouchpanelDeviceInfo;
 
int sceSysconGetTouchpanelDeviceInfoForDriver(SceKernelTouchpanelDeviceInfo *pInfo);
</source>
</source>


=== sceSysconNvsSetUnkModeForDriver ===
=== sceSysconGetTouchpanelDeviceInfo2ForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x2EC6D55D
| 0.931.010-1.50 || not present
|-
| 1.690.011-3.740.011 || 0x030D447F
|}
|}
This is a guessed name.
Returns extended touchpanel info.


<source lang="C">
<source lang="C">
// mode: unk
// this is a guessed name
int sceSysconNvsSetUnkModeForDriver(int mode);
typedef struct SceKernelTouchpanelInfo { // size is 0xA bytes
SceUInt16 vendorID;
SceUInt16 firmwareRev;
SceUInt16 configRev;
SceUInt8 hwVersion;
SceUInt8 vendorInfo;
SceUInt16 reserved;
} SceKernelTouchpanelInfo;
 
// this is a guessed name
typedef struct SceKernelTouchpanelDeviceInfo2 { // size is 0x14 bytes
SceKernelTouchpanelInfo front;
SceKernelTouchpanelInfo rear;
} SceKernelTouchpanelDeviceInfo2;
 
int sceSysconGetTouchpanelDeviceInfo2ForDriver(SceKernelTouchpanelDeviceInfo2 *pInfo);
</source>
</source>


=== sceSysconNvsReadDataForDriver ===
=== sceSysconMotionGetMeasureDataForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xACAFA2B8
| 0.931.010-3.740.011 || 0x270B7B0B
|}
|}


Used in [[SceSblSsMgr#sceSblNvsReadDataForKernel|sceSblNvsReadDataForKernel]] and [[SceSblSsMgr#sceSblSsGetNvsDataForDriver|sceSblSsGetNvsDataForDriver]].
Calls Syscon command 0x400.
 
<source lang="C">int sceSysconNvsReadDataForDriver(SceUInt32 offset, void *buffer, SceSize size);</source>


=== sceSysconNvsWriteDataForDriver ===
=== sceSysconMotionGetDeviceInfoForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x10C9657A
| 0.931.010-3.740.011 || 0xD01E64FC
|}
|}


Used in [[SceSblSsMgr#sceSblNvsWriteDataForKernel|sceSblNvsWriteDataForKernel]] and [[SceSblSsMgr#sceSblSsSetNvsDataForDriver|sceSblSsSetNvsDataForDriver]].
Returns motion sensor device info.


<source lang="C">int sceSysconNvsWriteDataForDriver(SceUInt32 offset, void *buffer, SceSize size);</source>
Calls Syscon command 0x480.


=== sceSysconGetMultiCnInfoForDriver ===
See [[SceMotionDev#sceMotionDevGetDeviceInfoForDriver]] for the SceKernelMotionDeviceInfo structure.
 
<source lang="C">int sceSysconMotionGetDeviceInfoForDriver(SceKernelMotionDeviceInfo *pInfo);</source>
 
=== SceSysconForDriver_9A7858B6 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x1503D6A0
| 0.931.010-3.740.011 || 0x9A7858B6
|}
|}


Returns data obtained by Syscon command 0x103.
Calls Syscon command 0x481. Sends 3 bytes to Syscon.


Returns 0x4ff00 when nothing is connected.
Probably used to send information to the motion sensor device.


Returns 0x40080 when pin 11 is pulled to GND.
<source lang="C">int SceSysconForDriver_9A7858B6(SceBool a1, SceUint16 a2);</source>


Returns 0x40680 when pin 12 is pulled to GND.
=== sceSysconGetHardwareInfoForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0xCBD6D8BC
|}


Returns 0x40380 when pin 12 is pulled to GND while pin 11 pulled to ground via 100K resistor.
Returns [[KBL Param#Hardware Info|Hardware Info]] obtained from Syscon command 0x5.


Returns 0x40000 on PSTV
<source lang="C">int sceSysconGetHardwareInfoForDriver(void);</source>


Bits 8 and 9 indicate that an audio-out dock is connected.
=== sceSysconGetHardwareInfo2ForDriver ===
 
Bits 8, 9, 11, 12, 13, 14 and 15 indicate that [[UDC]] pins are connected.
 
Used in [[SceHpremote]], [[SceUsbServ]].
 
<source lang="C">int sceSysconGetMultiCnInfoForDriver(SceUInt32 *pInfo);</source>
 
=== sceSysconSetMultiCnPortForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x8AAB6308
| 0.931.010-2.060.011 || not present
|-
| 2.100.081-3.740.011 || 0x965C68C3
|}
|}


Used in [[SceSblPostSsMgr]].
Returns [[KBL Param#Hardware Info 2|Hardware Info 2]] obtained from Syscon command 0x6.
 
This function was certainly added for PS Vita Slim or PS TV support because [[KBL Param#Hardware Info|Hardware Info]] risked being fulfilled if too many hardware revisions were made.
 
Used in [[SceAudio#SceAudioIn|SceAudioIn]] (maybe to check Conexant IC), [[SceCodec]] (maybe to check Conexant IC), and [[SceVshBridge#vshSysconGetHardwareInfo2|_vshSysconGetHardwareInfo2]].


<source lang="C">
<source lang="C">
// port: 0: for JIG mode, 1 for UART0 logging mode, 0x10000: for normal mode
typedef struct SceKernelHardwareInfo2 {
int sceSysconSetMultiCnPortForDriver(int port);
  SceUInt8 flags[0x10];
} SceKernelHardwareInfo2;
 
int sceSysconGetHardwareInfo2ForDriver(SceKernelHardwareInfo2 *pInfo);
</source>
</source>


=== sceSysconConfigLEDForDriver ===
=== sceSysconGetErnieVersionForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.996.090-3.740.011 || 0x6F586D1A
| 0.931-3.740.011 || 0xFF86F4C5
|}
|}


This is a guessed name.
This is a guessed name. Temp name was sceSysconGetBaryonVersionForDriver.
 
<source lang="c">int sceSysconGetErnieVersionForDriver(void);</source>


Used in [[ScePower]].
=== SceSysconForDriver_EBE3262C ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-0.940 || not present
|-
| 0.996.090-3.740.011 || 0xEBE3262C
|}


<source lang="C">
In [[SceSblPostSsMgr]], used just after [[#sceSysconGetErnieVersionForDriver]].
#define DEVICE_UNK 0x40 // maybe PS button or CP power LED or maybe color (blue)


// unk: SceLedConfig.unk_4
Returns 8 bits of some Syscon Mode information. Bit 6 (from right) is Syscon DownLoader Mode flag. Bit 3 (from right) is Power Online flag.


int sceSysconConfigLEDForDriver(int device, SceUInt32 unk);
<source lang="C">SceUInt8 SceSysconForDriver_EBE3262C(void);</source>
</source>


=== SceSysconForDriver_9CA6EB70 ===
=== sceSysconIsDownLoaderModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 990: Line 1,144:
| 0.931.010 || not present
| 0.931.010 || not present
|-
|-
| 1.000.071-3.740.011 || 0x9CA6EB70
| 0.990.000-3.740.011 || 0x9ADD60D2
|}
|}


On motherboards IRT-001 and older, it does nothing and returns 0, probably because missing hardware that could be a LED, else it sends 2 bytes using Syscon command 0x89E.
<source lang="C">int sceSysconIsDownLoaderModeForDriver(void);</source>


Used in [[ScePower#ScePowerForDriver_38415146]]. Related to LED.
=== sceSysconIsDealDownLoaderModeForDriver ===
 
<source lang="C">int SceSysconForDriver_9CA6EB70(SceBool state);</source>
 
=== sceSysconCtrlAccPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931-3.60 || 0x8D1D97E8
| 0.931.010-3.740.011 || 0xB7BCC638
|}
|}


<source lang="C">int sceSysconCtrlAccPowerForDriver(SceBool enable);</source>
<source lang="C">int sceSysconIsDealDownLoaderModeForDriver(void);</source>


=== sceSysconCtrlUsbStatusForDriver ===
=== sceSysconNopForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931-3.60 || 0x59DC5938
| 0.931.010-3.740.011 || 0x0D0B6D25
|}
|}


Sends 3 bytes to Syscon command 0x89A.
<source lang="C">int sceSysconNopForDriver(void);</source>


Related to [[SceUdcd]] and [[ScePower]].
=== sceSysconIsPowerOnlineForDriver ===
 
<source lang="C">int sceSysconCtrlUsbStatusForDriver(SceUInt32 value);</source>
 
=== sceSysconCtrlRMRPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0x9DA2A5AB
|-
| 0.990.000-3.740.011 || 0x710A7CF0
|}
|}


Temp name was sceSysconCtrlMsPowerForDriver.
Returns true iff Syscon information bit 3 (from right) is set. See also [[#SceSysconForDriver_EBE3262C]].
 
Used in many [[ScePower]] functions for example before setting display brightness (to save battery).


<source lang="c">int sceSysconCtrlRMRPowerForDriver(int enable_power);</source>
<source lang="C">SceBool sceSysconIsPowerOnlineForDriver(void);</source>


=== sceSysconCtrlDevKitUsbPowerForDriver ===
=== sceSysconGetErnieDLVersionForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0xD2F456DC
|-
| 0.990.000-3.740.011 || 0xB1F88B11
|}
|}


This is a guessed name.
Calls Syscon command 0x1100.


<source lang="C">int sceSysconCtrlDevKitUsbPowerForDriver(SceBool enable);</source>
<source lang="C">void sceSysconGetErnieDLVersionForDriver(SceUInt32 *pVersion);</source>


=== SceSysconForDriver_3274A925 ===
=== sceSysconGetBatteryVersionForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.931.010-3.740.011 || 0x68E0031E
|-
| 1.800.071-3.740.011 || 0x3274A925
|}
|}


Temp name was sceSysconCtrlDolceUsbPowerForDriver.
Battery IC codename: if HWinfo > 7 "Abby" else unknown codename, maybe just "Bic".


This function enables/disables a USB bus related to either PS Vita IRS-1001 Wlan/Bt module USB or PS Vita 3G modem USB. This also affects PS TV USB host and maybe also PS TV ethernet.
<source lang="C">int sceSysconGetBatteryVersionForDriver(SceUInt16 *HWinfo, SceUInt16 *FWinfo, SceUInt16 *DFinfo);</source>


Used in [[SceUsbEtherSmsc]], [[SceUsbServ]].
=== sceSysconReadCookieStatusForDriver ===
 
This function was maybe added to support IRS-1001 motherboard.
 
<source lang="C">int SceSysconForDriver_3274A925(SceBool enable);</source>
 
=== sceSysconJigOpenPortForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x44A173F5
| 0.931.010-1.81 || not present
|-
| 2.000.081-3.740.011 || 0xDFB024C4
|}
|}


<source lang="C">int sceSysconJigOpenPortForDriver(void);</source>
This is a guessed name.
 
Temp name was sceSysconAbbySyncForDriver.
 
<source lang="C">int sceSysconReadCookieStatusForDriver(SceUInt32 *puiStatus);</source>


=== sceSysconJigClosePortForDriver ===
=== sceSysconGetManufacturesStatusForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x483FAE05
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0x3E09A1F4
|}
|}


<source lang="C">int sceSysconJigClosePortForDriver(void);</source>
In theory, this function should only be called when Product Mode is already set.
 
<source lang="C">int sceSysconGetManufacturesStatusForDriver(int *piStatus);</source>


=== sceSysconJigSetConfigForDriver ===
=== sceSysconReadScratchPadForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xD24BF916
| 0.931.010-3.740.011 || 0x299B1CE7
|}
|}


<source lang="C">int sceSysconJigSetConfigForDriver(SceUInt8 a1, SceUInt8 a2);</source>
Temp name was sceSysconReadCommandForDriver, sceSysconVsReadDataForDriver.
 
Calls Syscon command 0x90.


=== SceSysconForDriver_058941D7 ===
Used in [[SceRtc]].
{| class="wikitable"
! Version !! NID
|-
| 0.990.000-3.740.011 || 0x058941D7
|}


It is probably a "sceSysconCtrl...ForDriver" function.
See also [[Ernie#Syscon_Scratch_Pad|Syscon Scratchpad structure]].


Sends 2 bytes to Syscon using Syscon command 0xB0.
<source lang="C">
// size: On FW 3.60, must be between 0 and 0x18. On FW 0.931, must be 2, 4 or 8.
// offset: Must be between 0 and 0xFF.
// offset + size must not exceed 0x100
int sceSysconReadScratchPadForDriver(SceUInt32 offset, void *buffer, SceSize size);
</source>


=== sceSysconCtrlHostOutputViaDongleForDriver ===
=== sceSysconWriteScratchPadForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0xE26488B9
|-
| 0.990.000-3.740.011 || 0xDECCB2B4
|}
|}


Enables / disables Kermit UART0 output (logs) via Dongle (Jig).
Temp name was sceSysconSendCommandForDriver, sceSysconVsWriteDataForDriver.


Sends 2 bytes to Syscon using Syscon command 0xB2.
Calls Syscon command 0x91.


<source lang="C">int sceSysconCtrlHostOutputViaDongleForDriver(SceBool enable);</source>
Used in [[SceRtc]] and [[ScePower]].


=== SceSysconForDriver_33B5CDB3 ===
See also [[Ernie#Syscon_Scratch_Pad|Syscon Scratchpad structure]].
 
<source lang="C">
// size: On FW 3.60, must be between 0 and 0x18. On FW 0.931, must be 2, 4 or 8.
// offset: Must be between 0 and 0xFF.
// offset + size must not exceed 0x100
int sceSysconWriteScratchPadForDriver(SceUInt32 offset, void *buffer, SceSize size);
</source>
 
=== sceSysconNvsSetRunModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.996.090-3.740.011 || 0x33B5CDB3
| 0.931.010-3.740.011 || 0x81A6060D
|}
|}


Reads from Syscon using Syscon command 0xB3.
Used in [[SceSblSsMgr#sceSblNvsReadDataForKernel|sceSblNvsReadDataForKernel]] and [[SceSblSsMgr#sceSblNvsWriteDataForKernel|sceSblNvsWriteDataForKernel]].


This function was probably added to support IRS-002 motherboard.
<source lang="C">
// mode: 0 before NVS read/write
int sceSysconNvsSetRunModeForDriver(int mode);
</source>


=== SceSysconForDriver_F6D4DDC4 ===
=== sceSysconNvsSetUnkModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.931.010-3.740.011 || 0x2EC6D55D
|-
| 1.800.071-3.740.011 || 0xF6D4DDC4
|}
|}


Reads from Syscon using Syscon command 0xB4. It is probably the "get" equivalent of [[#SceSysconForDriver_00AE3AEB]].
<source lang="C">
// mode: unk
int sceSysconNvsSetUnkModeForDriver(int mode);
</source>


This function was added to support IRS-1001 motherboard.
=== sceSysconNvsReadDataForDriver ===
 
=== SceSysconForDriver_00AE3AEB ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.931.010-3.740.011 || 0xACAFA2B8
|-
| 1.800.071-3.740.011 || 0x00AE3AEB
|}
|}


It is probably a "sceSysconCtrl...ForDriver" function.
Used in [[SceSblSsMgr#sceSblNvsReadDataForKernel|sceSblNvsReadDataForKernel]] and [[SceSblSsMgr#sceSblSsGetNvsDataForDriver|sceSblSsGetNvsDataForDriver]].


Sends 2 bytes to Syscon using Syscon command 0xB5. It is probably the "set" equivalent of [[#SceSysconForDriver_F6D4DDC4]].
<source lang="C">int sceSysconNvsReadDataForDriver(SceUInt32 offset, void *buffer, SceSize size);</source>


This function was added to support IRS-1001 motherboard.
=== sceSysconNvsWriteDataForDriver ===
 
=== SceSysconForDriver_0D300158 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.100.081-3.740.011 || 0x0D300158
| 0.931.010-3.740.011 || 0x10C9657A
|}
|}


It is probably a "sceSysconCtrl...ForDriver" function.
Used in [[SceSblSsMgr#sceSblNvsWriteDataForKernel|sceSblNvsWriteDataForKernel]] and [[SceSblSsMgr#sceSblSsSetNvsDataForDriver|sceSblSsSetNvsDataForDriver]].


Sends 2 bytes to Syscon using Syscon command 0xB6. It is probably the "set" equivalent of [[#SceSysconForDriver_91EF4EC3]].
<source lang="C">int sceSysconNvsWriteDataForDriver(SceUInt32 offset, void *buffer, SceSize size);</source>


This function was added to support DOL-1002 motherboard.
=== sceSysconGetMultiCnInfoForDriver ===
 
=== SceSysconForDriver_91EF4EC3 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.100.081-3.740.011 || 0x91EF4EC3
| 0.931.010-3.740.011 || 0x1503D6A0
|}
|}


Reads from Syscon using Syscon command 0xB7. It is probably the "get" equivalent of [[#SceSysconForDriver_0D300158]].
Returns data obtained by Syscon command 0x103.
 
Returns 0x4ff00 when nothing is connected.
 
Returns 0x40080 when pin 12 is pulled to GND while pin 11 pulled to GND. MultiCn host mode enabled
 
Returns 0x40180 when pin 12 is pulled to GND while pin 11 pulled to GND via 25K resistor. MultiCn host mode disabled
 
Returns 0x40280 when pin 12 is pulled to GND while pin 11 pulled to GND via 50K resistor. MultiCn host mode disabled
 
Returns 0x40380 when pin 12 is pulled to GND while pin 11 pulled to GND via 75K resistor. MultiCn host mode disabled. Sets "dock" flag in hpremote
 
Returns 0x40480 when pin 12 is pulled to GND while pin 11 pulled to GND via 200K resistor. MultiCn host mode enabled
 
Returns 0x40580 when pin 12 is pulled to GND while pin 11 pulled to GND via 325K resistor. MultiCn host mode disabled
 
Returns 0x40680 when pin 12 is pulled to GND while pin 11 is floating. MultiCn host mode disabled
 
Returns 0x40000 on PSTV
 
Bits 8 and 9 indicate that an audio-out dock is connected.


This function was added to support DOL-1002 motherboard.
Bits 8, 9, 11, 12, 13, 14 and 15 indicate that [[UDC]] pins are connected.


=== receive_pm_sm_jig_msg_from_syscon ===
Used in [[SceHpremote]], [[SceUsbServ]].
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0x3C80B529
|}


<source lang="C">int receive_pm_sm_jig_msg_from_syscon(SceUInt32 offset, SceSize size, void *buf);</source>
<source lang="C">int sceSysconGetMultiCnInfoForDriver(SceUInt32 *pInfo);</source>


=== send_pm_sm_jig_msg_to_syscon ===
=== sceSysconSetMultiCnPortForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x7BFBA09E
| 0.931.010-3.740.011 || 0x8AAB6308
|}
|}


=== send_pm_sm_stop_to_syscon ===
Used in [[SceSblPostSsMgr]].
 
<source lang="C">
// port: 0: for Jig mode, 1 for UART0 logging mode, 0x10000: for normal mode
int sceSysconSetMultiCnPortForDriver(int port);
</source>
 
=== sceSysconCtrlLedPwmBlinkForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x933D813F
| 0.996.090-3.740.011 || 0x6F586D1A
|}
|}


Used just after send_pm_sm_jig_msg_to_syscon or when it fails before.
Used in [[ScePower]].
 
<source lang="C">
#define DEVICE_UNK 0x40 // maybe PS button or CP power LED or maybe color (blue)
 
// unk: SceLedConfig.unk_4


<source lang="C">int send_pm_sm_stop_to_syscon(int a1, int a2, int a3);</source>
int sceSysconCtrlLedPwmBlinkForDriver(int device, SceUInt32 unk);
</source>


=== sceSysconIduModeSetForDriver ===
=== sceSysconSetChargeLedCtrlForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.996.090 || not present
| 0.931.010 || not present
|-
|-
| 1.030.071-3.740.011 || 0x956D07CB
| 1.000.071-3.740.011 || 0x9CA6EB70
|}
|}


<source lang="C">int sceSysconIduModeSetForDriver(void);</source>
This is a guessed name.
 
On motherboards IRT-001 and older, it does nothing and returns 0, probably because missing hardware that could be a LED, else it sends 2 bytes using Syscon command 0x89E.
 
Used in [[ScePower#ScePowerForDriver_38415146]]. Related to LED.
 
<source lang="C">int sceSysconSetChargeLedCtrlForDriver(SceBool state);</source>


=== sceSysconIduModeClearForDriver ===
=== sceSysconCtrlAccPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.996.090 || not present
| 0.931-3.60 || 0x8D1D97E8
|-
| 1.030.071-3.740.011 || 0x34574496
|}
|}


<source lang="C">int sceSysconIduModeClearForDriver(void);</source>
<source lang="C">int sceSysconCtrlAccPowerForDriver(SceBool enable);</source>


=== sceSysconShowModeSetForDriver ===
=== sceSysconCtrlUsbStatusForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.50 || not present
| 0.931-3.60 || 0x59DC5938
|-
| 1.600.061-3.740.011 || 0x6D65B70F
|}
|}


<source lang="C">int sceSysconShowModeSetForDriver(void);</source>
Sends 3 bytes to Syscon command 0x89A.
 
Related to [[SceUdcd]] and [[ScePower]].
 
<source lang="C">int sceSysconCtrlUsbStatusForDriver(SceUInt32 value);</source>


=== sceSysconShowModeClearForDriver ===
=== sceSysconCtrlRMRPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.50 || not present
| 0.931.010 || not present
|-
|-
| 1.600.061-3.740.011 || 0x8D7724C0
| 0.990.000-3.740.011 || 0x710A7CF0
|}
|}


<source lang="C">int sceSysconShowModeClearForDriver(void);</source>
Temp name was sceSysconCtrlMsPowerForDriver.
 
<source lang="c">int sceSysconCtrlRMRPowerForDriver(int enable_power);</source>


=== sceSysconSetWlanCallbackForDriver ===
=== sceSysconCtrlMultiCnPowerForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.996.090 || 0x4DEB8712
| 0.931.010-0.940 || not present
|-
|-
| 1.03-3.740.011 || not present
| 0.990.000-3.740.011 || 0xB1F88B11
|}
|}


This is a guessed name.
<source lang="C">int sceSysconCtrlMultiCnPowerForDriver(SceBool enable);</source>


Registers a Wlan-related callback.
=== SceSysconForDriver_3274A925 ===
 
index 5 on FWs 0.931.010-0.940.
 
=== SceSysconForDriver_18A6F4D9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x18A6F4D9
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0x3274A925
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
Temp name was sceSysconCtrlDolceUsbPowerForDriver.


Registers a callback.
This function enables/disables a USB bus related to either PS Vita IRS-1001 Wlan/Bt module USB or PS Vita 3G modem USB. This also affects PS TV USB host and maybe also PS TV ethernet.


index 0 on FW 3.600.011.
Used in [[SceUsbEtherSmsc]], [[SceUsbServ]].


No use case seen.
This function was maybe added to support IRS-1001 motherboard.


Related to [[#SceSysconForDriver_C0F215B7]].
<source lang="C">int SceSysconForDriver_3274A925(SceBool enable);</source>


<source lang="C">int SceSysconForDriver_18A6F4D9(void *cb_0, void *cb_1);</source>
=== sceSysconJigOpenPortForDriver ===
 
=== SceSysconForDriver_DE613081 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0xDE613081
| 0.931.010-3.740.011 || 0x44A173F5
|}
|}


A guessed name is sceSysconSetHeadphoneCallbackForDriver.
<source lang="C">int sceSysconJigOpenPortForDriver(void);</source>


Registers an headphone remote related callback.
=== sceSysconJigClosePortForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0x483FAE05
|}


index 1 on FW 3.600.011.
<source lang="C">int sceSysconJigClosePortForDriver(void);</source>


Used in [[SceHpremote]].
=== sceSysconJigSetConfigForDriver ===
 
Related to [[#SceSysconForDriver_C3504ADE]].
 
<source lang="C">int SceSysconForDriver_DE613081(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_229A07C2 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x229A07C2
| 0.931.010-3.740.011 || 0xD24BF916
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
<source lang="C">int sceSysconJigSetConfigForDriver(SceUInt8 a1, SceUInt8 a2);</source>


Registers a callback.
=== sceSysconOutputClockForDriver ===
 
index 2 on FW 3.600.011.
 
No use case seen.
 
Related to [[#SceSysconForDriver_B832B72C]].
 
<source lang="C">int SceSysconForDriver_229A07C2(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_8351526D ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x8351526D
| 0.990.000-3.740.011 || 0x058941D7
|}
|}


A guessed name is sceSysconSetAlarmTimerCallbackForDriver.
Sends 2 bytes to Syscon using Syscon command 0xB0.


Registers a callback.
=== sceSysconCtrlHostOutputViaDongleForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010 || not present
|-
| 0.990.000-3.740.011 || 0xDECCB2B4
|}


index 3 on FW 3.600.011.
Enables / disables Kermit UART0 output (logs) via Dongle (Jig).


Used in [[SceRtc]].
Sends 2 bytes to Syscon using Syscon command 0xB2.


Related to [[#SceSysconForDriver_86BAAF7D]].
<source lang="C">int sceSysconCtrlHostOutputViaDongleForDriver(SceBool enable);</source>


<source lang="C">int SceSysconForDriver_8351526D(void *cb_0, void *cb_1);</source>
=== SceSysconForDriver_33B5CDB3 ===
 
=== SceSysconForDriver_9F8340FF ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x9F8340FF
| 0.996.090-3.740.011 || 0x33B5CDB3
|}
|}


A guessed name is sceSysconSetResumeRequestCallbackForDriver.
Reads from Syscon using Syscon command 0xB3.


Registers the "is resume requested" callback.
This function was probably added to support IRS-002 motherboard.


Used in [[ScePower]] to register a callback that sets the [[ScePower]] global variable g_resume_requested to SCE_TRUE.
=== SceSysconForDriver_F6D4DDC4 ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0xF6D4DDC4
|}


index 4 on FW 3.600.011.
Guessed name is sceSysconGetWlanGpioStateForDriver


Related to [[#SceSysconForDriver_A57B5433]].
Reads from Syscon using Syscon command 0xB4. It is probably the "get" equivalent of [[#SceSysconForDriver_00AE3AEB]].


<source lang="C">int SceSysconForDriver_9F8340FF(void *cb_0, void *cb_1);</source>
This function was added to support IRS-1001 motherboard.


=== SceSysconForDriver_35E1689F ===
=== SceSysconForDriver_00AE3AEB ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x35E1689F
| 0.931.010-1.692.000 || not present
|}
|-
| 1.800.071-3.740.011 || 0x00AE3AEB
|}


A guessed name is sceSysconSet...CallbackForDriver.
Guessed name is sceSysconSetWlanGpioStateForDriver


Registers a callback.
Sends 2 bytes to Syscon using Syscon command 0xB5. It is probably the "set" equivalent of [[#SceSysconForDriver_F6D4DDC4]].


Used in [[SceHpremote]].
This function was added to support IRS-1001 motherboard.


index 5 on FW 3.600.011.
=== SceSysconForDriver_0D300158 ===
 
Related to [[#SceSysconForDriver_ACC7F71E]].
 
<source lang="C">int SceSysconForDriver_35E1689F(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_474A9EA7 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x474A9EA7
| 3.100.081-3.740.011 || 0x0D300158
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
It is probably a "sceSysconCtrl...ForDriver" function.


Registers a callback.
Sends 2 bytes to Syscon using Syscon command 0xB6. It is probably the "set" equivalent of [[#SceSysconForDriver_91EF4EC3]].


index 0xC on FWs 0.931.010-0.940. index 6 on FW 3.600.011.
This function was added to support DOL-1002 motherboard.


Related to [[#SceSysconForDriver_769F9AC4]].
=== SceSysconForDriver_91EF4EC3 ===
{| class="wikitable"
! Version !! NID
|-
| 3.100.081-3.740.011 || 0x91EF4EC3
|}


No use case seen.
Reads from Syscon using Syscon command 0xB7. It is probably the "get" equivalent of [[#SceSysconForDriver_0D300158]].


<source lang="C">int SceSysconForDriver_474A9EA7(void *cb_0, void *cb_1);</source>
This function was added to support DOL-1002 motherboard.


=== SceSysconForDriver_4E88B4D9 ===
=== receive_pm_sm_jig_msg_from_syscon ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x4E88B4D9
| 0.931.010-3.740.011 || 0x3C80B529
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
Calls Syscon command 0x2083.


Registers a callback.
<source lang="C">int receive_pm_sm_jig_msg_from_syscon(SceUInt8 offset, SceUInt8 size, void *pMsg);</source>


index 8 on FW 3.600.011.
=== send_pm_sm_jig_short_msg_to_syscon ===
{| class="wikitable"
! Version !! NID
|-
| 3.600.011-3.740.011 || 0xCE346793
|}


Related to [[#SceSysconForDriver_4BC63A40]].
Calls Syscon command 0x2084.


No use case seen. Maybe used in internal modules for Jig.
Sends a message of maximum 0x18 bytes.


<source lang="C">int SceSysconForDriver_4E88B4D9(void *cb_0, void *cb_1);</source>
<source lang="C">int send_pm_sm_jig_short_msg_to_syscon(SceUInt8 size, void *pMsg);</source>


=== SceSysconForDriver_376CCCB8 ===
=== send_pm_sm_jig_msg_to_syscon ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x376CCCB8
| 0.931.010-3.740.011 || 0x7BFBA09E
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
Calls Syscon command 0x2085.
 
Registers a callback.


index 9 on FW 3.600.011.
Sends a message by chunks of 0x18 bytes.


Related to [[#SceSysconForDriver_99A254A9]].
<source lang="C">int send_pm_sm_jig_msg_to_syscon(SceUInt8 a1, SceUInt8 offset, SceUInt8 size, void *pMsg);</source>


No use case seen.
=== send_pm_sm_stop_to_syscon ===
 
<source lang="C">int SceSysconForDriver_376CCCB8(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_3BAAC8A9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.995.000 || not present
| 0.931.010-3.740.011 || 0x933D813F
|-
| 0.996.090-3.740.011 || 0x3BAAC8A9
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
Calls Syscon command 0x2085.


Registers a callback.
Used just after send_pm_sm_jig_msg_to_syscon or when it fails before.


index 0xA on FW 3.600.011.
<source lang="C">int send_pm_sm_stop_to_syscon(SceUInt8 a1, SceUInt8 offset, SceUInt8 size);</source>


Related to [[#SceSysconForDriver_9A4F4B7C]].
=== sceSysconIduModeSetForDriver ===
 
No use case seen.
 
<source lang="C">int SceSysconForDriver_3BAAC8A9(void *cb_0, void *cb_1);</source>
 
=== sceSysconSetAccCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-0.996.090 || not present
|-
|-
| 0.995.000-3.740.011 || 0x4A42712F
| 1.030.071-3.740.011 || 0x956D07CB
|}
|}


This is a guessed name.
<source lang="C">int sceSysconIduModeSetForDriver(void);</source>


Registers 2 callbacks (maybe constructor and destructor or callback and args) for accessory port.
=== sceSysconIduModeClearForDriver ===
 
index 0xF on FW 3.600.011.
 
Used in [[SceUsbServ]].
 
<source lang="C">int sceSysconSetAccCallbackForDriver(void *cb_0, void *cb_1);</source>
 
=== sceSysconSetLowBatteryCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x3F0DB7C0
| 0.931.010-0.996.090 || not present
|-
| 1.030.071-3.740.011 || 0x34574496
|}
|}


Registers the low-battery callback.
<source lang="C">int sceSysconIduModeClearForDriver(void);</source>


index 6 on FWs 0.931-0.940. index 0x10 on FW 3.600.011.
=== sceSysconShowModeSetForDriver ===
 
<source lang="C">int sceSysconSetLowBatteryCallbackForDriver(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_80D6E061 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 1.000.071-3.740.011 || 0x80D6E061
| 0.931.010-1.50 || not present
|-
| 1.600.061-3.740.011 || 0x6D65B70F
|}
|}


A guessed name is sceSysconSetBatteryOnlineCallbackForDriver.
<source lang="C">int sceSysconShowModeSetForDriver(void);</source>


Registers a callback. Maybe related to Battery online status.
=== sceSysconShowModeClearForDriver ===
 
index 0x11 on FW 3.600.011.
 
<source lang="C">int SceSysconForDriver_80D6E061(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_7682FE69 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 1.000.071-3.740.011 || 0x7682FE69
| 0.931.010-1.50 || not present
|-
| 1.600.061-3.740.011 || 0x8D7724C0
|}
|}


A guessed name is sceSysconSet...Battery...CallbackForDriver.
<source lang="C">int sceSysconShowModeClearForDriver(void);</source>


Registers a battery-related callback.
=== sceSysconSetWlanCallbackForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-0.996.090 || 0x4DEB8712
|-
| 1.03-3.740.011 || not present
|}


No use case seen.
This is a guessed name.


index 0x12 on FW 3.600.011.
Registers a Wlan-related callback.


Related to [[#SceSysconForDriver_4A184B7C]].
index 5 on FWs 0.931.010-0.940.


<source lang="C">int SceSysconForDriver_7682FE69(void *cb_0, void *cb_1);</source>
=== SceSysconForDriver_18A6F4D9 ===
 
=== SceSysconForDriver_E0D52DF0 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0xE0D52DF0
| 0.990.000-3.740.011 || 0x18A6F4D9
|}
|}


A guessed name is sceSysconSet...Battery...CallbackForDriver.
A guessed name is sceSysconSet...CallbackForDriver.
 
Registers a callback.


Registers a battery-related callback.
index 0 on FW 3.600.011.


No use case seen.
No use case seen.


index 0x13 on FW 3.600.011.
Related to [[#SceSysconForDriver_C0F215B7]].


Related to [[#SceSysconForDriver_ACEE1C70]].
<source lang="C">int SceSysconForDriver_18A6F4D9(void *cb_0, void *cb_1);</source>


<source lang="C">int SceSysconForDriver_E0D52DF0(void *cb_0, void *cb_1);</source>
=== SceSysconForDriver_DE613081 ===
 
=== SceSysconForDriver_2D471528 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.990.000-3.740.011 || 0xDE613081
|-
| 1.000.071-3.740.011 || 0x2D471528
|}
|}


A guessed name is sceSysconSet...Battery...CallbackForDriver.
A guessed name is sceSysconSetHeadphoneCallbackForDriver.


Registers a callback very similar to the low battery callback.
Registers an headphone remote related callback.


Used in [[ScePower]].
index 1 on FW 3.600.011.


index 0x14 on FW 3.600.011.
Used in [[SceHpremote]].


Related to [[#SceSysconForDriver_03C50DC3]].
Related to [[#SceSysconForDriver_C3504ADE]].


<source lang="C">int SceSysconForDriver_2D471528(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_DE613081(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_129EA022 ===
=== SceSysconForDriver_229A07C2 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.990.000-3.740.011 || 0x229A07C2
|-
| 2.100.081-3.740.011 || 0x129EA022
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
A guessed name is sceSysconSet...CallbackForDriver.


Used in [[ScePower]].
Registers a callback.
 
index 2 on FW 3.600.011.


index 0x15 on FW 3.600.011.
No use case seen.


Related to [[#SceSysconForDriver_BFDA5590]].
Related to [[#SceSysconForDriver_B832B72C]].


<source lang="C">int SceSysconForDriver_129EA022(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_229A07C2(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_85E5DEBF ===
=== SceSysconForDriver_8351526D ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.996.090 || not present
| 0.990.000-3.740.011 || 0x8351526D
|-
| 1.000.071-3.740.011 || 0x85E5DEBF
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
A guessed name is sceSysconSetAlarmTimerCallbackForDriver.
 
Registers a callback.


index 0x16 on FW 3.600.011.
index 3 on FW 3.600.011.


Related to [[#SceSysconForDriver_63B14156]].
Used in [[SceRtc]].


No use case seen.
Related to [[#SceSysconForDriver_86BAAF7D]].


<source lang="C">int SceSysconForDriver_85E5DEBF(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_8351526D(void *cb_0, void *cb_1);</source>


=== sceSysconSetThermalAlertCallbackForDriver ===
=== SceSysconForDriver_9F8340FF ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.996.090 || not present
| 0.990.000-3.740.011 || 0x9F8340FF
|-
| 1.000.071-3.740.011 || 0x773B8126
|}
|}


Registers the thermal alert callback.
A guessed name is sceSysconSetResumeRequestCallbackForDriver.
 
Registers the "is resume requested" callback.
 
Used in [[ScePower]] to register a callback that sets the [[ScePower]] global variable g_resume_requested to SCE_TRUE.


index 0x17 on FW 3.600.011.
index 4 on FW 3.600.011.


Related to [[#SceSysconForDriver_50CAE242]].
Related to [[#SceSysconForDriver_A57B5433]].


<source lang="C">int sceSysconSetThermalAlertCallbackForDriver(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_9F8340FF(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_2E4BA4B8 ===
=== SceSysconForDriver_35E1689F ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x2E4BA4B8
| 0.990.000-3.740.011 || 0x35E1689F
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
A guessed name is sceSysconSet...CallbackForDriver.


Registers a callback.
Registers a callback, maybe dock callback, but not remote callback.


index 0x19 on FW 3.600.011.
Used in [[SceHpremote]].


Related to [[#SceSysconForDriver_29CF4335]].
index 5 on FW 3.600.011.


No use case seen. Maybe used in internal modules for Jig.
Related to [[#SceSysconForDriver_ACC7F71E]].


<source lang="C">int SceSysconForDriver_2E4BA4B8(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_35E1689F(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_C442D0BE ===
=== SceSysconForDriver_474A9EA7 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.931.010-3.740.011 || 0x474A9EA7
|-
| 1.800.071-3.740.011 || 0xC442D0BE
|}
|}


Line 1,653: Line 1,820:
Registers a callback.
Registers a callback.


index 0x1A on FW 3.600.011.
index 0xC on FWs 0.931.010-0.940. index 6 on FW 3.600.011.


Related to [[#SceSysconForDriver_9F4042F8]].
Related to [[#SceSysconForDriver_769F9AC4]].


No use case seen.
No use case seen.


<source lang="C">int SceSysconForDriver_C442D0BE(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_474A9EA7(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_61AE3970 ===
=== SceSysconForDriver_4E88B4D9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.01 || not present
| 0.990.000-3.740.011 || 0x4E88B4D9
|-
| 3.100.081-3.740.011 || 0x61AE3970
|}
|}


Line 1,674: Line 1,839:
Registers a callback.
Registers a callback.


index 0x1B on FW 3.600.011.
index 8 on FW 3.600.011.


Related to [[#SceSysconForDriver_C50568E9]].
Related to [[#SceSysconForDriver_4BC63A40]].


No use case seen.
Used in [[SceBbmc]]


<source lang="C">int SceSysconForDriver_61AE3970(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_4E88B4D9(void *cb_0, void *cb_1);</source>


=== sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver ===
=== SceSysconForDriver_376CCCB8 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.18 || not present
| 0.990.000-3.740.011 || 0x376CCCB8
|-
| 3.300.041-3.740.011 || 0x94678881
|}
|}


This is a guessed name.
A guessed name is sceSysconSet...CallbackForDriver.
 
Registers a callback.


Registers the low-battery-inhibit-update-reboot callback.
index 9 on FW 3.600.011.


index 0x1C on FW 3.600.011.
Related to [[#SceSysconForDriver_99A254A9]].


No use case seen.
No use case seen.


<source lang="C">int sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_376CCCB8(void *cb_0, void *cb_1);</source>


=== sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver ===
=== SceSysconForDriver_3BAAC8A9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.18 || not present
| 0.931.010-0.995.000 || not present
|-
|-
| 3.300.041-3.740.011 || 0x7AA00C01
| 0.996.090-3.740.011 || 0x3BAAC8A9
|}
|}


This is a guessed name.
A guessed name is sceSysconSet...CallbackForDriver.
 
Registers a callback.


Registers the low-battery-inhibit-update-download callback.
index 0xA on FW 3.600.011.


index 0x1D on FW 3.600.011.
Related to [[#SceSysconForDriver_9A4F4B7C]].


No use case seen.
No use case seen.


<source lang="C">int sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_3BAAC8A9(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_423D0C58 ===
=== sceSysconSetAccCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x423D0C58
| 0.931.010-0.940 || not present
|-
| 0.995.000-3.740.011 || 0x4A42712F
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
This is a guessed name.


Registers a callback.
Registers 2 callbacks (maybe constructor and destructor or callback and args) for accessory port.


index 0x20 on FW 3.600.011.
index 0xF on FW 3.600.011.


No use case seen.
Used in [[SceUsbServ]].


<source lang="C">int SceSysconForDriver_423D0C58(void *cb_0, void *cb_1);</source>
<source lang="C">int sceSysconSetAccCallbackForDriver(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_154676F1 ===
=== sceSysconSetLowBatteryCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x154676F1
| 0.931.010-3.740.011 || 0x3F0DB7C0
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
Registers the low-battery callback.


Registers a callback.
index 6 on FWs 0.931-0.940. index 0x10 on FW 3.600.011.


index 0x21 on FW 3.600.011.
<source lang="C">int sceSysconSetLowBatteryCallbackForDriver(void *cb_0, void *cb_1);</source>


No use case seen.
=== SceSysconForDriver_80D6E061 ===
 
<source lang="C">int SceSysconForDriver_154676F1(void *cb_0, void *cb_1);</source>
 
=== SceSysconForDriver_63352A39 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x63352A39
| 1.000.071-3.740.011 || 0x80D6E061
|}
|}


A guessed name is sceSysconSetMicrophoneCallbackForDriver.
A guessed name is sceSysconSetBatteryOnlineCallbackForDriver.


Registers a callback.
Registers a callback. Maybe related to Battery online status.


index 0x22 on FW 3.600.011.
index 0x11 on FW 3.600.011.


Used in [[SceHpremote]].
<source lang="C">int SceSysconForDriver_80D6E061(void *cb_0, void *cb_1);</source>


<source lang="C">int SceSysconForDriver_63352A39(void *cb_0, void *cb_1);</source>
=== SceSysconForDriver_7682FE69 ===
 
=== SceSysconForDriver_14730196 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x14730196
| 1.000.071-3.740.011 || 0x7682FE69
|}
|}


A guessed name is sceSysconSet...CallbackForDriver.
A guessed name is sceSysconSet...Battery...CallbackForDriver.
 
Registers a battery-related callback.


Registers a callback.
No use case seen.


index 0x23 on FW 3.600.011.
index 0x12 on FW 3.600.011.


No use case seen.
Related to [[#SceSysconForDriver_4A184B7C]].


<source lang="C">int SceSysconForDriver_14730196(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_7682FE69(void *cb_0, void *cb_1);</source>


=== sceSysconSetAlarmCallbackForDriver ===
=== SceSysconForDriver_E0D52DF0 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x32418370
| 0.990.000-3.740.011 || 0xE0D52DF0
|}
|}


Registers the alarm callback.
A guessed name is sceSysconSet...Battery...CallbackForDriver.
 
Registers a battery-related callback.
 
No use case seen.
 
index 0x13 on FW 3.600.011.


index 0 on FWs 0.931.010-0.940. index 0x24 on FW 3.600.011.
Related to [[#SceSysconForDriver_ACEE1C70]].


<source lang="C">int sceSysconSetAlarmCallbackForDriver(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_E0D52DF0(void *cb_0, void *cb_1);</source>


=== sceSysconSetMultiCnOtgCallbackForDriver ===
=== SceSysconForDriver_2D471528 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 1,807: Line 1,978:
| 0.931.010-0.940 || not present
| 0.931.010-0.940 || not present
|-
|-
| 0.996.090-3.740.011 || 0xA26586B2
| 1.000.071-3.740.011 || 0x2D471528
|}
|}


This is a guessed name.
A guessed name is sceSysconSet...Battery...CallbackForDriver.


Registers 2 callbacks (maybe constructor and destructor or callback and args) for multi-connector OTG on PS Vita Fat.
Registers a callback very similar to the low battery callback.


index 0x25 on FW 3.600.011.
Used in [[ScePower]].


Used in [[SceUsbServ]].
index 0x14 on FW 3.600.011.
 
Related to [[#SceSysconForDriver_03C50DC3]].


<source lang="C">int sceSysconSetMultiCnOtgCallbackForDriver(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_2D471528(void *cb_0, void *cb_1);</source>


=== sceSysconSetMiniUsbOtgCallbackForDriver ===
=== SceSysconForDriver_129EA022 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 1,826: Line 1,999:
| 0.931.010-2.060.011 || not present
| 0.931.010-2.060.011 || not present
|-
|-
| 2.100.081-3.740.011 || 0x67A4CB9F
| 2.100.081-3.740.011 || 0x129EA022
|}
|}


This is a guessed name.
A guessed name is sceSysconSet...CallbackForDriver.


Registers 2 callbacks (maybe constructor and destructor or callback and args) for mini-USB OTG on PS Vita Slim.
Used in [[ScePower]].


index 0x26 on FW 3.600.011.
index 0x15 on FW 3.600.011.


Used in [[SceUsbServ]].
Related to [[#SceSysconForDriver_BFDA5590]].


<source lang="C">int sceSysconSetMiniUsbOtgCallbackForDriver(void *cb_0, void *cb_1);</source>
<source lang="C">int SceSysconForDriver_129EA022(void *cb_0, void *cb_1);</source>


=== sceSysconUpdaterSetSegmentForDriver ===
=== SceSysconForDriver_85E5DEBF ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x9B00BC7F
| 0.931.010-0.996.090 || not present
|-
| 1.000.071-3.740.011 || 0x85E5DEBF
|}
|}


<source lang="C">
A guessed name is sceSysconSet...CallbackForDriver.
// segment_no: a 8bit value
 
int sceSysconUpdaterSetSegmentForDriver(SceUInt32 segment_no);
index 0x16 on FW 3.600.011.
</source>
 
Related to [[#SceSysconForDriver_63B14156]].
 
Used by [[SceBbmc]]
 
<source lang="C">int SceSysconForDriver_85E5DEBF(void *cb_0, void *cb_1);</source>


=== sceSysconUpdaterLoadSegmentForDriver ===
=== sceSysconSetThermalAlertCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x356B9696
| 0.931.010-0.996.090 || not present
|-
| 1.000.071-3.740.011 || 0x773B8126
|}
|}


<source lang="C">
Registers the thermal alert callback.
// pSegment: the encrypted segment to load
 
// unk: maybe segment_no
index 0x17 on FW 3.600.011.
// size: usually 0x400
int sceSysconUpdaterLoadSegmentForDriver(void *segment, int unk, SceSize size);
</source>


=== sceSysconUpdaterLoadSegment2ForDriver ===
Related to [[#SceSysconForDriver_50CAE242]].
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0x734544E4
|}


<source lang="C">
<source lang="C">int sceSysconSetThermalAlertCallbackForDriver(void *cb_0, void *cb_1);</source>
// pSegment: the encrypted segment to load
// unk: maybe segment_no
// size: usually 0x400
int sceSysconUpdaterLoadSegment2ForDriver(void *segment, int unk, SceSize size);
</source>


=== sceSysconUpdaterCalcChecksumForDriver ===
=== SceSysconForDriver_2E4BA4B8 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xD27C3D80
| 0.990.000-3.740.011 || 0x2E4BA4B8
|}
|}


Computes checksum to use with [[#sceSysconUpdaterExecProgrammingForDriver]]. It does not call any Syscon command.
A guessed name is sceSysconSet...CallbackForDriver.
 
Registers a callback.


<source lang="C">int sceSysconUpdaterCalcChecksumForDriver(void *data, SceSize size, int *checksum);</source>
index 0x19 on FW 3.600.011.


=== sceSysconUpdaterExecProgrammingForDriver ===
Related to [[#SceSysconForDriver_29CF4335]].
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0x69AD76E4
|}


Executes programming, i.e writes segments to Syscon Flash memory.
No use case seen. Maybe used in internal modules for Jig.


<source lang="C">
<source lang="C">int SceSysconForDriver_2E4BA4B8(void *cb_0, void *cb_1);</source>
// checksum: value got from sceSysconUpdaterCalcChecksumForDriver
int sceSysconUpdaterExecProgrammingForDriver(int checksum);
</source>


=== sceSysconUpdaterSetRunModeForDriver ===
=== SceSysconForDriver_C442D0BE ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xB487C2FB
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0xC442D0BE
|}
|}


On 3.60 Ernie firmware, only updater run mode 0x72BA seems to be actually useful. Modes 0x9A54 and 0x152E are recognized but just make the function return without doing anything. Mode 0xC5E7 is not recognized by Ernie firmware, although it is present on ARM side.
A guessed name is sceSysconSet...CallbackForDriver.


<source lang="C">
Registers a callback.
// mode: 0x72BA (0.931.010-3.740.011), 0x9A54 (0.931.010-3.740.011), 0x152E (3.600.011-3.740.011), 0x3665 (3.600.011-3.740.011), 0xC5E7 (3.600.011-3.740.011),
 
int sceSysconUpdaterSetRunModeForDriver(int mode);
index 0x1A on FW 3.600.011.
</source>
 
Related to [[#SceSysconForDriver_9F4042F8]].


=== sceSysconUpdaterExecFinalizeForDriver ===
No use case seen.
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0xC7747A63
|}


<source lang="C">
<source lang="C">int SceSysconForDriver_C442D0BE(void *cb_0, void *cb_1);</source>
// digest: sha1 of decrypted concatenated segments, comes from Syscon Update package packet type 0x20
// size: usually 0x14 (sha1 size)
int sceSysconUpdaterExecFinalizeForDriver(void *digest, SceSize size);
</source>


=== SceSysconForDriver_CBA836FF ===
=== SceSysconForDriver_61AE3970 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.01 || not present
|-
|-
| 0.996.090-3.740.011 || 0xCBA836FF
| 3.100.081-3.740.011 || 0x61AE3970
|}
|}


Sends a 0x18-byte buffer to Syscon command 0x1185. This Syscon command 0x1185 seems to be unimplemented in recent Syscon firmwares: it does not do anything.
A guessed name is sceSysconSet...CallbackForDriver.


<source lang="C">
Registers a callback.
// size: must be 0x18
 
int SceSysconForDriver_CBA836FF(void *pBuf, SceSize size);
index 0x1B on FW 3.600.011.
</source>
 
Related to [[#SceSysconForDriver_C50568E9]].
 
No use case seen.
 
<source lang="C">int SceSysconForDriver_61AE3970(void *cb_0, void *cb_1);</source>


=== snvs_read ===
=== sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.18 || not present
|-
|-
| 0.996.090-3.740.011 || 0xEBDF88B9
| 3.300.041-3.740.011 || 0x94678881
|}
|}


This is a guessed name.
This is a guessed name.


Used in [[SceSblPostSsMgr]] to read data from SNVS with [[pm_sm]] command 8. Also used in [[SceSblUpdateMgr]] with [[update_service_sm]] commands 0xB0002 and 0xC0002.
Registers the low-battery-inhibit-update-reboot callback.
 
index 0x1C on FW 3.600.011.
 
No use case seen.


<source lang="C">
<source lang="C">int sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver(void *cb_0, void *cb_1);</source>
// in_size: 0x10
// out_size: 0x30
int snvs_read(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);
</source>


=== snvs_write ===
=== sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.18 || not present
|-
|-
| 0.996.090-3.740.011 || 0x63683B9B
| 3.300.041-3.740.011 || 0x7AA00C01
|}
|}


This is a guessed name.
This is a guessed name.


Used in [[SceSblPostSsMgr]] to write data to SNVS with [[pm_sm]] command 8. Also used in [[SceSblUpdateMgr]] with [[update_service_sm]] commands 0xB0002 and 0xC0002.
Registers the low-battery-inhibit-update-download callback.


<source lang="C">
index 0x1D on FW 3.600.011.
// in_size: 0x30
 
// out_size: 0x10
No use case seen.
int snvs_write(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);
 
</source>
<source lang="C">int sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver(void *cb_0, void *cb_1);</source>


=== syscon_update_command_0xD00002 ===
=== sceSysconSetStandbyButtonCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.990.000-3.740.011 || 0x423D0C58
|-
| 0.996.090-3.740.011 || 0x4D03754A
|}
|}


This is a guessed name.
Registers a callback.


Calls Syscon command 0xD0.
index 0x20 on FW 3.600.011.


Used in [[SceSblUpdateMgr]] with [[update_service_sm]] command 0xD0002.
No use case seen.


<source lang="C">
<source lang="C">int sceSysconSetStandbyButtonCallbackForDriver(void *cb_0, void *cb_1);</source>
// in_buf: buffer that embeds input data, usually 0xD0002 command request + 8
// in_size: usually 0x28
// out_buf: buffer to receive result, usually 0xD0002 command request + 0x30
// out_size: usually 0x28
int syscon_update_command_0xD00002(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);
</source>


=== SceSysconForDriver_901D6CD4 ===
=== SceSysconForDriver_154676F1 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x901D6CD4
| 0.990.000-3.740.011 || 0x154676F1
|}
|}


Sets a flag used internally by [[SceSyscon]].
A guessed name is sceSysconSet...CallbackForDriver.
 
Registers a callback.


Used in [[SceCtrl]], [[ScePower]].
index 0x21 on FW 3.600.011.
 
No use case seen.


<source lang="C">int SceSysconForDriver_901D6CD4(int enable);</source>
<source lang="C">int SceSysconForDriver_154676F1(void *cb_0, void *cb_1);</source>


=== sceSysconGetControlsInfoForDriver ===
=== SceSysconForDriver_63352A39 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x145F59A4
| 0.990.000-3.740.011 || 0x63352A39
|}
|}


This is a guessed name.
A guessed name is sceSysconSetMicrophoneCallbackForDriver.
 
Registers a callback.


See [[KBL Param#Boot Controls Info|Boot Controls Info]].
index 0x22 on FW 3.600.011.


Calls Syscon command 0x100.
Used in [[SceHpremote]].


<source lang="C">int sceSysconGetControlsInfoForDriver(SceUInt32 *pCtrl);</source>
<source lang="C">int SceSysconForDriver_63352A39(void *cb_0, void *cb_1);</source>


=== SceSysconForDriver_76272CB9 ===
=== SceSysconForDriver_14730196 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.990.000-3.740.011 || 0x14730196
|-
| 1.800.071-3.740.011 || 0x76272CB9
|}
|}


Gets a 4 byte value.
A guessed name is sceSysconSet...CallbackForDriver.


Calls Syscon command 0x120.
Registers a callback.


<source lang="C">int SceSysconForDriver_76272CB9(SceUInt32 *unk);</source>
index 0x23 on FW 3.600.011.


=== SceSysconForDriver_D7BEFF8B ===
No use case seen.
 
<source lang="C">int SceSysconForDriver_14730196(void *cb_0, void *cb_1);</source>
 
=== sceSysconSetAlarmCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xD7BEFF8B
| 0.931.010-3.740.011 || 0x32418370
|}
|}


Gets Syscon power-on time in ticks of 0.5 second. Each second the counter automatically increases by 2.
Registers the alarm callback.


Calls Syscon command 0x11.
index 0 on FWs 0.931.010-0.940. index 0x24 on FW 3.600.011.


Used in [[SceRtc]] to calculate the current time and date.
<source lang="C">int sceSysconSetAlarmCallbackForDriver(void *cb_0, void *cb_1);</source>


<source lang="C">int SceSysconForDriver_D7BEFF8B(SceUInt32 *puiTime);</source>
=== sceSysconSetMultiCnOtgCallbackForDriver ===
 
=== SceSysconForDriver_3168F3AF ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x3168F3AF
| 0.931.010-0.940 || not present
|-
| 0.996.090-3.740.011 || 0xA26586B2
|}
|}


Calls Syscon command 0x12.
This is a guessed name.
 
Registers 2 callbacks (maybe constructor and destructor or callback and args) for multi-connector OTG on PS Vita Fat.


It is an alarm timer. It must be initialized using Syscon command 0x82 via [[#SceSysconForDriver_51164951]].
index 0x25 on FW 3.600.011.


<source lang="C">
Used in [[SceUsbServ]].
// FW 0.931.010
int SceSysconForDriver_3168F3AF(SceUInt32 *pResult);


// FW 3.600.011-3.740.011
<source lang="C">int sceSysconSetMultiCnOtgCallbackForDriver(void *cb_0, void *cb_1);</source>
int SceSysconForDriver_3168F3AF(SceUInt32 *pResult, SceUInt32 *pResult2);
</source>


=== SceSysconForDriver_BA09F171 ===
=== sceSysconSetMiniUsbOtgCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-2.060.011 || not present
|-
|-
| 0.990.000-3.740.011 || 0xBA09F171
| 2.100.081-3.740.011 || 0x67A4CB9F
|}
|}


Calls Syscon command 0x13.
This is a guessed name.
 
Registers 2 callbacks (maybe constructor and destructor or callback and args) for mini-USB OTG on PS Vita Slim.


It might be related to alarm/timer.
index 0x26 on FW 3.600.011.


<source lang="C">int SceSysconForDriver_BA09F171(SceUInt32 *pResult, SceUInt32 *pResult2);</source>
Used in [[SceUsbServ]].


=== SceSysconForDriver_9B6A6F64 ===
<source lang="C">int sceSysconSetMiniUsbOtgCallbackForDriver(void *cb_0, void *cb_1);</source>
 
=== sceSysconUpdaterSetSegmentForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931-3.60 || 0x9B6A6F64
| 0.931.010-3.740.011 || 0x9B00BC7F
|}
|}


Calls Syscon command 0x81.
Used in [[SceSblUpdateMgr]].


Sets current Syscon power on time in ticks of 0.5 second. The set value can be get with [[#SceSysconForDriver_D7BEFF8B]].
<source lang="C">
// segment_no: a 8bit value
int sceSysconUpdaterSetSegmentForDriver(SceUInt32 segment_no);
</source>


Used in [[SceRtc]]. Set to 0 just before setting Current Tick, to reset syscon power on time.
=== sceSysconUpdaterSendProgramDataForDriver ===
 
{| class="wikitable"
<source lang="C">int SceSysconForDriver_9B6A6F64(SceUInt32 time);</source>
 
=== SceSysconForDriver_51164951 ===
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x51164951
| 0.931.010-3.740.011 || 0x356B9696
|}
|}


Calls Syscon command 0x82. On Syscon version < 0x90907, 4 bytes are sent to Syscon, whilst on Syscon version >= 0x90907, 5 bytes are sent to Syscon.
This is a guessed name. Temp name was sceSysconUpdaterLoadSegmentForDriver.


Used in [[SceRtc#sceRtcSetAlarmTickForDriver]].
Buffer overflow if (size > 0x80 - 6).


The set value can be get with [[#SceSysconForDriver_3168F3AF]].
Used in [[SceSblUpdateMgr]].


<source lang="C">
<source lang="C">
// a1: seen value: 0xffffffff during Syscon Init
// pSegment: the encrypted Syscon firmware segment to send
// a2: some 8-bit flag, seen value: 0 during Syscon Init
// offset
 
// size: should be between 0 and 0x80 but usual chunks are 0x10 or 0x40, last chunk being less (no padding)
// FW 0.931.010
int sceSysconUpdaterSendProgramDataForDriver(void *pSegment, SceUInt32 offset, SceSize size);
int SceSysconForDriver_51164951(int a1);
 
// FW 3.600.011-3.740.011
int SceSysconForDriver_51164951(int a1, int a2);
</source>
</source>


=== SceSysconForDriver_373ECF8A ===
=== sceSysconUpdaterSendProgramData2ForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0x734544E4
|-
| 0.990.000-3.740.011 || 0x373ECF8A
|}
|}


Calls Syscon command 0x83. Sends 3 bytes to Syscon. Used only if [[KBL Param#Hardware Info|Hardware Info]] indicates that the motherboard is not IRT-001 or IRT-002 or type 0x10 (maybe named IRS-001) and if console is not in manufacturing mode.
This is a guessed name. Temp name was sceSysconUpdaterLoadSegment2ForDriver.
 
Same functionality as [[#sceSysconUpdaterLoadSegmentForDriver]] except that the segment is copied to an intermediate 0x7A-byte zeroed buffer. This implementation seems bad as the Syscon packet first 6 bytes are written twice.
 
Buffer overflow if (size > 0x80 - 6).
 
Used in [[SceSblUpdateMgr]].


<source lang="C">int SceSysconForDriver_373ECF8A(SceUInt32 unk);</source>
<source lang="C">
// pSegment: the encrypted Syscon firmware segment to send
// offset
// size: should be between 0 and 0x80 but usual chunks are 0x10 or 0x40, last chunk being less (no padding)
int sceSysconUpdaterSendProgramData2ForDriver(void *pSegment, SceUInt32 offset, SceSize size);
</source>


=== SceSysconForDriver_2659535C ===
=== sceSysconUpdaterCalcChecksumForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0xD27C3D80
|-
| 0.990.000-3.740.011 || 0x2659535C
|}
|}


Calls Syscon command 0x84. Sends 1 byte to Syscon: 0.
Computes checksum to use with [[#sceSysconUpdaterExecProgrammingForDriver]]. It does not call any Syscon command.
 
Used in [[SceSblUpdateMgr]].


<source lang="C">int SceSysconForDriver_2659535C(void);</source>
<source lang="C">int sceSysconUpdaterCalcChecksumForDriver(void *data, SceSize size, int *puiChecksum);</source>


=== SceSysconForDriver_4295D497 ===
=== sceSysconUpdaterExecProgrammingForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0x69AD76E4
|-
| 0.990.000-3.740.011 || 0x4295D497
|}
|}


Calls Syscon command 0x85. Sends 1 byte to Syscon: 0.
Executes programming, i.e writes segments to Syscon Flash memory.


<source lang="C">int SceSysconForDriver_4295D497(void);</source>
Used in [[SceSblUpdateMgr]].


=== SceSysconForDriver_253CC522 ===
<source lang="C">
// checksum: value got from sceSysconUpdaterCalcChecksumForDriver
int sceSysconUpdaterExecProgrammingForDriver(int checksum);
</source>
 
=== sceSysconUpdaterSetRunModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0xB487C2FB
|-
| 2.100.081-3.740.011 || 0x253CC522
|}
|}


Calls Syscon command 0x807. Gets 2 bytes from Syscon.
Used in [[SceSblUpdateMgr]].


On DevKit, it returns 0x8025023F. Maybe limited by model: PS TV? PS Vita Slim?.
<source lang="C">int sceSysconUpdaterSetRunModeForDriver(int mode);</source>


<source lang="C">int SceSysconForDriver_253CC522(SceUInt16 *pResult);</source>
=== sceSysconUpdaterExecFinalizeForDriver ===
 
=== SceSysconForDriver_175CE5A1 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x175CE5A1
| 0.931.010-3.740.011 || 0xC7747A63
|}
|}


Calls Syscon command 0x883. Gets 8 bytes from Syscon.
Finalize Syscon update by sending checksum from ARM to Syscon.
 
Calls Syscon command 0x1184.
 
Used in [[SceSblUpdateMgr]].


<source lang="C">
<source lang="C">
// pDst: pointer to a buffer of at least 8 bytes
// digest: sha1 of decrypted concatenated segments, comes from Syscon Update package packet type 0x20
int SceSysconForDriver_175CE5A1(void *pDst);
// size: usually 0x14 (sha1 size)
int sceSysconUpdaterExecFinalizeForDriver(void *digest, SceSize size);
</source>
</source>


=== sceSysconCtrlDeviceResetForDriver ===
=== sceSysconUpdaterCheckSignatureForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x40FF3898
| 0.931.010-0.940 || not present
|-
| 0.996.090-3.740.011 || 0xCBA836FF
|}
|}


Sends 2 bytes to Syscon command 0x88F.
Sends a 0x18-byte buffer to Syscon command 0x1185. This Syscon command 0x1185 seems to be unimplemented in recent Syscon firmwares: it does not do anything. It can be explained by the fact that the signature packet is not embedded in Syscon Update SPKGs.


0xC/0 : Touch Front or Back device
Used in [[SceSblUpdateMgr]].


0xC/1 : Touch Front or Back device
<source lang="C">
// size: must be 0x18
int sceSysconUpdaterCheckSignatureForDriver(void *pSig, SceSize size);
</source>


<source lang="C">int sceSysconCtrlDeviceResetForDriver(SceUInt8 a1, SceUInt8 a2);</source>
=== SceSysconForDriver_4D03754A ===
 
=== SceSysconForDriver_285594F8 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x285594F8
| 0.931.010-0.990 || not present
|-
| 0.996.090-3.740.011 || 0x4D03754A
|}
|}


Sends 2 bytes to Syscon command 0x890.
Temp name was syscon_update_command_0xD00002.
 
Calls Syscon command 0xD0.


<source lang="C">int SceSysconForDriver_285594F8(SceUInt16 value);</source>
Used in [[SceSblUpdateMgr]] with [[update_service_sm]] function [[Secure_Modules_Functions#0xD0002|0xD0002]].


=== sceSysconCtrlLEDForDriver ===
<source lang="C">
{| class="wikitable"
// in_buf: buffer that embeds input data, usually 0xD0002 command request + 8
// in_size: usually 0x28
// out_buf: buffer to receive result, usually 0xD0002 command request + 0x30
// out_size: usually 0x28
int SceSysconForDriver_4D03754A(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);
</source>
 
=== SceSysconForDriver_C14BD637 ===
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x04EC7579
| 0.931.010-0.990 || not present
|-
| 1.000.041-3.740.011 || 0xC14BD637
|}
|}


<source lang="C">
Calls Syscon command 0xD1.
#define STATE_ON 1
#define STATE_OFF 0


#define DEVICE_UNK 0x40 // maybe PS button or CP power LED or maybe color (blue)
Seems unused.


int sceSysconCtrlLEDForDriver(SceUInt16 device, SceBool state);
<source lang="C">int SceSysconForDriver_C14BD637(void);</source>
</source>


=== SceSysconForDriver_596B17B7 ===
=== sceSysconSnvsReadDataForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x596B17B7
| 0.931.010-0.990 || not present
|-
| 0.996.090-3.740.011 || 0xEBDF88B9
|}
|}


Sends 2 bytes to Syscon command 0x892. Related to Battery. Maybe enables/disables battery charging.
This is a guessed name.


Used in [[ScePower]]'s module_start.
Calls Syscon command 0xD2.


<source lang="C">int SceSysconForDriver_596B17B7(SceBool enable);</source>
Used in [[SceSblPostSsMgr]] to read data from SNVS with [[pm_sm]] command 8. Also used in [[SceSblUpdateMgr]] with [[update_service_sm]] commands 0xB0002 and 0xC0002.


=== SceSysconForDriver_2A4B0437 ===
<source lang="C">
// in_size: 0x10
// out_size: 0x30
int sceSysconSnvsReadDataForDriver(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);
</source>
 
=== sceSysconSnvsWriteDataForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x2A4B0437
| 0.931.010-0.990 || not present
|-
| 0.996.090-3.740.011 || 0x63683B9B
|}
|}


Sends 3 bytes to Syscon command 0x893. Related to Battery. Maybe enables/disables battery charging.
This is a guessed name.
 
Calls Syscon command 0xD3.


Used in [[ScePower]]'s module_start.
Used in [[SceSblPostSsMgr]] to write data to SNVS with [[pm_sm]] command 8. Also used in [[SceSblUpdateMgr]] with [[update_service_sm]] functions [[Secure_Modules_Functions#0xB0002 - sceSblUsSmSnvsEncryptDecryptSector|0xB0002]] and [[Secure_Modules_Functions#0xC0002 - sceSblUsSmSnvsEncryptDecryptMgmtData|0xC0002]].


<source lang="C">
<source lang="C">
// a1: ex: 0, 1
// in_size: 0x30
// a2: ex: 0, 1
// out_size: 0x10
 
int sceSysconSnvsWriteDataForDriver(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);
// FW 0.931.010
int SceSysconForDriver_2A4B0437(SceUInt32 a1);
 
// FW 3.600.011-3.740.011
int SceSysconForDriver_2A4B0437(SceUInt32 a1, SceUInt32 a2);
</source>
</source>


=== SceSysconForDriver_5CDDA14D ===
=== sceSysconSetAffirmativeRertyModeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x5CDDA14D
| 0.931.010-3.740.011 || 0x901D6CD4
|}
|}


A guessed name is sceSysconCtrlHpremoteForDriver.
This is an official name. Typo is the name is intentional.


If Syscon version < 0x80001, it does nothing and returns 0, else it sends 2 bytes to Syscon command 0x899.
Sets AffirmativeRertyMode flag in kernel memory. During SceSyscon initialization, AffirmativeRertyMode is enabled by default.


Maybe enables/disables Jack power.
AffirmativeRertyMode flag is used by [[SceSyscon]] kernel module when executing Syscon commands.


Used in [[SceHpremote]].
Used in [[SceCtrl]], [[ScePower]].


<source lang="C">int SceSysconForDriver_5CDDA14D(SceBool enable);</source>
<source lang="C">int sceSysconSetAffirmativeRertyModeForDriver(int enable);</source>


=== SceSysconForDriver_A2FE9BF9 ===
=== sceSysconGetControlsInfoForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xA2FE9BF9
| 0.931.010-3.740.011 || 0x145F59A4
|}
|}


Gets information related to battery charge status, or USB power connection. See also [[Ernie#CMD_0x0800]].
This is a guessed name.
 
See [[KBL Param#Boot Controls Info|Boot Controls Info]].


Used in [[ScePower]]'s module_start.
Calls Syscon command 0x100.


<source lang="C">int SceSysconForDriver_A2FE9BF9(void *pResult);</source>
<source lang="C">int sceSysconGetControlsInfoForDriver(SceUInt32 *pCtrl);</source>


=== sceSysconGetBatteryTempForDriver ===
=== SceSysconForDriver_76272CB9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x9070F139
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0x76272CB9
|}
|}


If Syscon version <= 0x70503, it calls Syscon command 0x8A0, else Syscon command 0x981.
Calls Syscon command 0x120. Gets a 4-byte value.
 
Used in [[ScePower]]'s module_start.


<source lang="C">int sceSysconGetBatteryTempForDriver(int *pResult);</source>
<source lang="C">int SceSysconForDriver_76272CB9(SceUInt32 *pRes);</source>


=== sceSysconGetBatteryRemainCapacityForDriver ===
=== sceSysconGetClockForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xC562AF3A
| 0.931.010-3.740.011 || 0xD7BEFF8B
|}
|}


Only used in [[ScePower]].
Gets Syscon power-on time in ticks of 0.5 second. Each second the counter automatically increases by 2.
 
Calls Syscon command 0x11.


If Syscon version <= 0x70503, it calls Syscon command 0x802, else Syscon command 0x900.
Used in [[SceRtc]] to calculate the current time and date.


<source lang="C">int sceSysconGetBatteryRemainCapacityForDriver(SceUInt32 *pResult);</source>
<source lang="C">int sceSysconGetClockForDriver(SceUInt32 *puiTime);</source>


=== sceSysconGetBatteryVoltForDriver ===
=== SceSysconForDriver_3168F3AF ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x03F11220
| 0.931.010-3.740.011 || 0x3168F3AF
|}
|}


If Syscon version <= 0x70503, it calls Syscon command 0x803, else Syscon command 0x901.
Calls Syscon command 0x12.


Used in [[ScePower]].
Gets the tick of an alarm timer. The alarm tick must be set using Syscon command 0x82 via [[#SceSysconForDriver_51164951]].


<source lang="C">int sceSysconGetBatteryVoltForDriver(SceUInt32 *pResult);</source>
<source lang="C">
// FW 0.931.010
int SceSysconForDriver_3168F3AF(SceUInt32 *pTick);
 
// FW 3.600.011-3.740.011
int SceSysconForDriver_3168F3AF(SceUInt32 *pTickLow, SceUInt8 *pTickHi);
</source>


=== sceSysconGetBatteryLifePercentForDriver ===
=== SceSysconForDriver_BA09F171 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.06 || not present
| 0.931.010-0.940 || not present
|-
|-
| 1.500.151-3.740.011 || 0xAD0A8275
| 0.990.000-3.740.011 || 0xBA09F171
|}
|}


Used in [[ScePower]].
Calls Syscon command 0x13.
 
It might be related to alarm/timer. Sends 0 byte to Syscon. Gets 2 bytes from Syscon.


<source lang="C">int sceSysconGetBatteryLifePercentForDriver(SceUInt32 *pResult);</source>
<source lang="C">int SceSysconForDriver_BA09F171(SceUInt8 *pResult, SceUInt8 *pResult2);</source>


=== SceSysconForDriver_00A65FC1 ===
=== SceSysconForDriver_93075DD1 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x00A65FC1
| 0.931.010-3.740.011 || 0x93075DD1
|}
|}


If Syscon version <= 0x70503, it calls Syscon command 0x8A1, else Syscon command 0x982.
Calls Syscon command 0x14. Sends 0 byte to Syscon. Gets ?1-4? bytes from Syscon.


Used in [[ScePower]].
<source lang="C">int SceSysconForDriver_93075DD1(SceUInt32 *pResult);</source>


<source lang="C">int SceSysconForDriver_00A65FC1(int *pResult);</source>
=== sceSysconGetPowerStatusForDriver ===
 
=== sceSysconGetBatteryElecForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x0826BA07
| 0.931.010-3.740.011 || 0x175CE5A1
|}
|}


If Syscon version <= 0x70503, it calls Syscon command 0x8A2, else Syscon command 0x983.
Calls Syscon command 0x883. Gets 8 bytes from Syscon. Reads Elmo registers 0xA0 through 0xA3.


Used in [[ScePower]].
<source lang="C">
// pStatus: pointer to a buffer of at least 8 bytes
int sceSysconGetPowerStatusForDriver(void *pStatus);
</source>


<source lang="C">int sceSysconGetBatteryElecForDriver(SceUInt16 *pResult);</source>
=== sceSysconCtrlDeviceResetForDriver ===
 
=== sceSysconGetBatteryLifeTimeForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xB841C141
| 0.931.010-3.740.011 || 0x40FF3898
|}
|}


If Syscon version <= 0x70503, it calls Syscon command 0x8A3, else Syscon command 0x984.
Sends 2 bytes to Syscon command 0x88F.


Used in [[ScePower]].
<source lang="C">
// The following defines are guessed names
#define SCE_SYSCON_CTRL_DEVICE_RESET_UNK_1 1
#define SCE_SYSCON_CTRL_DEVICE_RESET_MOTION 2
#define SCE_SYSCON_CTRL_DEVICE_RESET_TP_FRONT 4
#define SCE_SYSCON_CTRL_DEVICE_RESET_TP_REAR 8
#define SCE_SYSCON_CTRL_DEVICE_RESET_WLANBT 0x10
#define SCE_SYSCON_CTRL_DEVICE_RESET_SMSC_ETH 0x20


<source lang="C">int sceSysconGetBatteryLifeTimeForDriver(SceUInt16 *pResult);</source>
// mode: 0 or 1, probably for the reset type such as reset or shutdown
int sceSysconCtrlDeviceResetForDriver(SceUInt8 device, SceBool mode);
</source>


=== sceSysconGetBatterySOHForDriver ===
=== SceSysconForDriver_285594F8 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x91D3B7A3
| 0.931.010-3.740.011 || 0x285594F8
|}
|}


If Syscon version <= 0x70503, it calls Syscon command 0x8A4, else Syscon command 0x985.
Calls Syscon command 0x890.


Used in [[ScePower]].
<source lang="C">int SceSysconForDriver_285594F8(SceUInt16 value);</source>


<source lang="C">int sceSysconGetBatterySOHForDriver(void *pResult);</source>
=== sceSysconCtrlLEDForDriver ===
 
=== SceSysconForDriver_FDB3AE9D ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xFDB3AE9D
| 0.931.010-3.740.011 || 0x04EC7579
|}
|}


Gets 0x10 bytes from Syscon command 0x183.
<source lang="C">
#define STATE_ON 1
#define STATE_OFF 0
 
#define DEVICE_UNK 0x40 // maybe PS button or CP power LED or maybe color (blue)


<source lang="C">int SceSysconForDriver_FDB3AE9D(int *pResult);</source>
int sceSysconCtrlLEDForDriver(SceUInt16 device, SceBool state);
</source>


=== SceSysconForDriver_C3504ADE ===
=== sceSysconCtrlChargeACForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xC3504ADE
| 0.931.010-3.740.011 || 0x596B17B7
|}
|}


A guessed name is sceSysconIs...ForDriver.
Sends 2 bytes to Syscon command 0x892. Related to Battery. Maybe enables/disables battery charging.


Returns the global variable related to [[#SceSysconForDriver_DE613081]].
Used in [[ScePower]]'s module_start.


Used in [[SceHpremote]].
<source lang="C">int sceSysconCtrlChargeACForDriver(SceBool enable);</source>
 
<source lang="C">SceBool SceSysconForDriver_C3504ADE(void);</source>


=== SceSysconForDriver_B832B72C ===
=== sceSysconCtrlChargeVBUSForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xB832B72C
| 0.931.010-3.740.011 || 0x2A4B0437
|}
|}


A guessed name is sceSysconIs...ForDriver.
Sends 3 bytes to Syscon command 0x893. Related to Battery. Maybe enables/disables battery charging.
 
Used in [[ScePower]]'s module_start.
 
<source lang="C">
// a1: ex: 0, 1
// a2: ex: 0, 1


Returns the global variable related to [[#SceSysconForDriver_229A07C2]].
// FW 0.931.010
int sceSysconCtrlChargeVBUSForDriver(SceUInt32 a1);


<source lang="C">SceBool SceSysconForDriver_B832B72C(void);</source>
// FW 3.600.011-3.740.011
int sceSysconCtrlChargeVBUSForDriver(SceUInt32 a1, SceUInt32 a2);
</source>


=== SceSysconForDriver_86BAAF7D ===
=== SceSysconForDriver_5CDDA14D ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x86BAAF7D
| 0.931.010-3.740.011 || 0x5CDDA14D
|}
|}


A guessed name is sceSysconIsAlarmTimerExistForDriver.
A guessed name is sceSysconCtrlHpremoteForDriver.
 
If Syscon version < 0x80001, it does nothing and returns 0, else it sends 2 bytes to Syscon command 0x899.


Returns the global variable related to [[#SceSysconForDriver_8351526D]].
Maybe enables/disables Jack power.


Used in [[SceRtc]].
Used in [[SceHpremote]].


<source lang="C">SceBool SceSysconForDriver_86BAAF7D(void);</source>
<source lang="C">int SceSysconForDriver_5CDDA14D(SceBool enable);</source>


=== SceSysconForDriver_A57B5433 ===
=== SceSysconForDriver_A2FE9BF9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xA57B5433
| 0.931.010-3.740.011 || 0xA2FE9BF9
|}
|}


A guessed name is sceSysconIsResumeRequestedForDriver.
Calls Syscon command 0x800.
 
Gets information related to battery charge status, or USB power connection. See also [[Ernie#CMD_0x0800_-_SceSysconForDriver_A2FE9BF9]].


Related to [[#SceSysconForDriver_9F8340FF]].
Used in [[ScePower]]'s module_start.


<source lang="C">SceBool SceSysconForDriver_A57B5433(void);</source>
<source lang="C">int SceSysconForDriver_A2FE9BF9(void *pResult);</source>


=== SceSysconForDriver_ACC7F71E ===
=== sceSysconCtrlLedBlinkType2ForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xACC7F71E
| 0.931.010-3.740.011 || 0xCB41B531
|}
|}


A guessed name is sceSysconIs...ForDriver.
This is a guessed name.


Returns the global variable related to [[#SceSysconForDriver_35E1689F]].
Calls Syscon command 0x89F.


Used in [[SceHpremote]].
=== sceSysconGetBatteryTempForDriver ===
 
<source lang="C">SceBool SceSysconForDriver_ACC7F71E(void);</source>
 
=== SceSysconForDriver_769F9AC4 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x769F9AC4
| 0.931.010-3.740.011 || 0x9070F139
|}
|}


A guessed name is sceSysconIs...ForDriver.
If Syscon version <= 0x70503, it calls Syscon command 0x8A0, else Syscon command 0x981.


Returns the global variable related to [[#SceSysconForDriver_474A9EA7]].
Used in [[ScePower]]'s module_start.


Returns always SCE_TRUE on PS TV. This function could be related to USB or ethernet availability.
<source lang="C">int sceSysconGetBatteryTempForDriver(int *pResult);</source>


No use case seen.
=== sceSysconGetBatteryRemainCapForDriver ===
 
{| class="wikitable"
<source lang="C">SceBool SceSysconForDriver_769F9AC4(void);</source>
 
=== SceSysconForDriver_4BC63A40 ===
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x4BC63A40
| 0.931.010-3.740.011 || 0xC562AF3A
|}
|}


A guessed name is sceSysconIs...ForDriver.
Temp name was sceSysconGetBatteryRemainCapacityForDriver.


Returns the global variable related to [[#SceSysconForDriver_4E88B4D9]].
If Syscon version <= 0x70503, it calls Syscon command 0x802, else Syscon command 0x900.


Used in [[SceSblPostSsMgr]].
Only used in [[ScePower]].


<source lang="C">SceBool SceSysconForDriver_4BC63A40(void);</source>
<source lang="C">int sceSysconGetBatteryRemainCapForDriver(SceUInt32 *pResult);</source>


=== SceSysconForDriver_99A254A9 ===
=== sceSysconGetBatteryVoltForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x99A254A9
| 0.931.010-3.740.011 || 0x03F11220
|}
|}


A guessed name is sceSysconIs...ForDriver.
If Syscon version <= 0x70503, it calls Syscon command 0x803, else Syscon command 0x901.


Returns the global variable related to [[#SceSysconForDriver_376CCCB8]].
Used in [[ScePower]].


No use case seen.
<source lang="C">int sceSysconGetBatteryVoltForDriver(SceUInt32 *pResult);</source>


<source lang="C">SceBool SceSysconForDriver_99A254A9(void);</source>
=== sceSysconGetBatteryLifePercentForDriver ===
 
=== SceSysconForDriver_9A4F4B7C ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-1.06 || not present
|-
|-
| 0.996.090-3.740.011 || 0x9A4F4B7C
| 1.500.151-3.740.011 || 0xAD0A8275
|}
|}


A guessed name is sceSysconIs...ForDriver.
Used in [[ScePower]].


Returns the global variable related to [[#SceSysconForDriver_3BAAC8A9]].
<source lang="C">int sceSysconGetBatteryLifePercentForDriver(SceUInt32 *pResult);</source>
 
No use case seen.
 
<source lang="C">SceBool SceSysconForDriver_9A4F4B7C(void);</source>


=== SceSysconForDriver_92D2C6A4 ===
=== sceSysconGetBatteryFullCapForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-3.740.011 || 0x00A65FC1
|-
|}
| 2.100.081-3.740.011 || 0x92D2C6A4
 
|}
If Syscon version <= 0x70503, it calls Syscon command 0x8A1, else Syscon command 0x982.
 
Used in [[ScePower]].


<source lang="C">int SceSysconForDriver_92D2C6A4(void);</source>
<source lang="C">int sceSysconGetBatteryFullCapForDriver(int *pResult);</source>


=== SceSysconForDriver_B9EA2FA8 ===
=== sceSysconGetBatteryElecForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0x0826BA07
|-
| 0.995.000-3.740.011 || 0xB9EA2FA8
|}
|}


A guessed name is sceSysconIsAccExistForDriver.
If Syscon version <= 0x70503, it calls Syscon command 0x8A2, else Syscon command 0x983.


Only used in [[SceUsbServ]].
Used in [[ScePower]].


<source lang="C">SceBool SceSysconForDriver_B9EA2FA8(void);</source>
<source lang="C">int sceSysconGetBatteryElecForDriver(SceUInt16 *pResult);</source>


=== SceSysconForDriver_29CF4335 ===
=== sceSysconGetBatteryTTEForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x29CF4335
| 0.931.010-3.740.011 || 0xB841C141
|}
|}


A guessed name is sceSysconIs...ForDriver.
Temp name was sceSysconGetBatteryLifeTimeForDriver.


Returns the global variable related to [[#SceSysconForDriver_2E4BA4B8]].
If Syscon version <= 0x70503, it calls Syscon command 0x8A3, else Syscon command 0x984.


It is related to Ernie DL Mode.
Used in [[ScePower]].


Used in [[SceSblPostSsMgr]].
<source lang="C">int sceSysconGetBatteryTTEForDriver(SceUInt16 *pTTE);</source>


<source lang="C">SceBool SceSysconForDriver_29CF4335(void);</source>
=== sceSysconGetBatterySOHForDriver ===
 
=== SceSysconForDriver_32B2DB3D ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x32B2DB3D
| 0.931.010-3.740.011 || 0x91D3B7A3
|}
|}


<source lang="c">int SceSysconForDriver_32B2DB3D(void);</source>
If Syscon version <= 0x70503, it calls Syscon command 0x8A4, else Syscon command 0x985.
 
Used in [[ScePower]].
 
<source lang="C">int sceSysconGetBatterySOHForDriver(void *pSOH);</source>


=== sceSysconIsHeadphoneExistForDriver ===
=== sceSysconReadBatteryRegForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x142D5E82
| 0.931.010-3.740.011 || 0xC2FB5565
|}
|}


Used in [[SceHpremote#sceHprmIsHeadphoneExistForDriver]].
If Syscon version <= 0x70503, it calls Syscon command 0x8A8, else Syscon command 0x986.


<source lang="c">SceBool sceSysconIsHeadphoneExistForDriver(void);</source>
<source lang="C">int sceSysconReadBatteryRegForDriver(SceUInt16 offset, SceUInt16 *pRes);</source>


=== SceSysconForDriver_490C5548 ===
=== sceSysconWriteBatteryRegForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0x490C5548
| 0.931.010-3.740.011 || 0x9B779DB0
|}
|}


<source lang="c">int SceSysconForDriver_490C5548(void);</source>
If Syscon version <= 0x70503, it calls Syscon command 0x8A9, else Syscon command 0x987.
 
<source lang="C">int sceSysconWriteBatteryRegForDriver(SceUInt16 offset, SceUInt16 value);</source>


=== SceSysconForDriver_012B57B3 ===
=== SceSysconForDriver_A5AB19B1 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010 || not present
| 0.931.010-3.740.011 || 0xA5AB19B1
|-
| 0.940-3.740.011 || 0x012B57B3
|}
|}
Guessed name is sceSysconBatteryControlCommandForDriver
Writes 2 byte command to Abby control register and returns 2 byte result. Use carefully as there are commands to seal dataflash!
If Syscon version <= 0x70503, it calls Syscon command 0x8AA, else Syscon command 0x988.
Command must be between 0 and 0xFFFF else returns error 0x80250001.


<source lang="c">int SceSysconForDriver_012B57B3(void);</source>
<source lang="C">int SceSysconForDriver_A5AB19B1(SceUInt16 command, SceUInt16 *pResult);</source>


=== SceSysconForDriver_27758A64 ===
=== SceSysconForDriver_CFCEE733 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0xCFCEE733
|-
| 1.000.071-3.740.011 || 0x27758A64
|}
|}


A guessed name is sceSysconIsBatteryOnlineForDriver, deriving from [[#sceSysconIsPowerOnlineForDriver]].
Sends 2 bytes from Syscon command 0x181.
 
<source lang="C">int SceSysconForDriver_CFCEE733(SceUInt32 unk);</source>


Used in [[ScePower#scePowerGetBatteryRemainLevelForDriver]], [[ScePower#scePowerIsLowBatteryForDriver]], [[ScePower]]'s module_start.
=== SceSysconForDriver_FDB3AE9D ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0xFDB3AE9D
|}


Returns the global variable related to [[#SceSysconForDriver_80D6E061]].
Gets 0x10 bytes from Syscon command 0x183.


<source lang="C">SceBool SceSysconForDriver_27758A64(void);</source>
<source lang="C">int SceSysconForDriver_FDB3AE9D(int *pResult);</source>


=== SceSysconForDriver_4A184B7C ===
=== SceSysconForDriver_C3504ADE ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0xC3504ADE
|-
| 1.000.071-3.740.011 || 0x4A184B7C
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIs...ForDriver.


Returns some information about battery.
Returns the global variable related to [[#SceSysconForDriver_DE613081]].


Used in [[ScePower#ScePowerForDriver_627A89C6]].
Used in [[SceHpremote]].


Returns the global variable related to [[#SceSysconForDriver_7682FE69]].
<source lang="C">SceBool SceSysconForDriver_C3504ADE(void);</source>


<source lang="C">SceBool SceSysconForDriver_4A184B7C(void);</source>
=== SceSysconForDriver_B832B72C ===
 
=== SceSysconForDriver_ACEE1C70 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0xB832B72C
|-
| 0.996.090-3.740.011 || 0xACEE1C70
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIs...ForDriver.


Returns information about battery. Only used when battery is working.
Returns the global variable related to [[#SceSysconForDriver_229A07C2]].


Used in [[ScePower#ScePowerForDriver_0D56C601]].
<source lang="C">SceBool SceSysconForDriver_B832B72C(void);</source>


Returns the global variable related to [[#SceSysconForDriver_E0D52DF0]].
=== SceSysconForDriver_86BAAF7D ===
 
<source lang="C">SceBool SceSysconForDriver_ACEE1C70(void);</source>
 
=== SceSysconForDriver_03C50DC3 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0x86BAAF7D
|-
| 1.000.071-3.740.011 || 0x03C50DC3
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIsAlarmTimerExistForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_8351526D]].


Returns the global variable related to [[#SceSysconForDriver_2D471528]].
Used in [[SceRtc]].


<source lang="C">SceBool SceSysconForDriver_03C50DC3(void);</source>
<source lang="C">SceBool SceSysconForDriver_86BAAF7D(void);</source>


=== SceSysconForDriver_BFDA5590 ===
=== SceSysconForDriver_A57B5433 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-3.740.011 || 0xA57B5433
|-
| 2.100.081-3.740.011 || 0xBFDA5590
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIsResumeRequestedForDriver.


Returns the global variable related to [[#SceSysconForDriver_129EA022]].
Related to [[#SceSysconForDriver_9F8340FF]].


<source lang="C">SceBool SceSysconForDriver_BFDA5590(void);</source>
<source lang="C">SceBool SceSysconForDriver_A57B5433(void);</source>


=== SceSysconForDriver_63B14156 ===
=== SceSysconForDriver_ACC7F71E ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.996.090 || not present
| 0.931.010-3.740.011 || 0xACC7F71E
|-
| 1.000.071-3.740.011 || 0x63B14156
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIs...ForDriver.


Returns the global variable related to [[#SceSysconForDriver_85E5DEBF]].
Returns the global variable related to [[#SceSysconForDriver_35E1689F]].
 
Used in [[SceHpremote]].


<source lang="C">SceBool SceSysconForDriver_63B14156(void);</source>
<source lang="C">SceBool SceSysconForDriver_ACC7F71E(void);</source>


=== SceSysconForDriver_50CAE242 ===
=== SceSysconForDriver_769F9AC4 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.940 || not present
| 0.931.010-3.740.011 || 0x769F9AC4
|-
| 1.000.071-3.740.011 || 0x50CAE242
|}
|}


A guessed name is sceSysconIsThermalAlertForDriver.
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_474A9EA7]].


Returns the global variable related to [[#sceSysconSetThermalAlertCallbackForDriver]].
Returns always SCE_TRUE on PS TV. This function could be related to USB or ethernet availability.


Used in [[ScePower]].
No use case seen.


<source lang="C">SceBool SceSysconForDriver_50CAE242(void);</source>
<source lang="C">SceBool SceSysconForDriver_769F9AC4(void);</source>


=== SceSysconForDriver_9F4042F8 ===
=== SceSysconForDriver_4BC63A40 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-1.692.000 || not present
| 0.931.010-3.740.011 || 0x4BC63A40
|-
| 1.800.071-3.740.011 || 0x9F4042F8
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIs...ForDriver.


Returns the global variable related to [[#SceSysconForDriver_C442D0BE]].
Returns the global variable related to [[#SceSysconForDriver_4E88B4D9]].


No use case seen.
Used in [[SceSblPostSsMgr]].


<source lang="C">SceBool SceSysconForDriver_9F4042F8(void);</source>
<source lang="C">SceBool SceSysconForDriver_4BC63A40(void);</source>


=== SceSysconForDriver_C50568E9 ===
=== SceSysconForDriver_99A254A9 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.01 || not present
| 0.931.010-3.740.011 || 0x99A254A9
|-
| 3.100.081-3.740.011 || 0xC50568E9
|}
|}


A guessed name is sceSysconIs...ForDriver.
A guessed name is sceSysconIs...ForDriver.


Returns the global variable related to [[#SceSysconForDriver_61AE3970]].
Returns the global variable related to [[#SceSysconForDriver_376CCCB8]].
 
This function was added to support DOL-1002 motherboard.


No use case seen.
No use case seen.


<source lang="C">SceBool SceSysconForDriver_C50568E9(void);</source>
<source lang="C">SceBool SceSysconForDriver_99A254A9(void);</source>


=== sceSysconIsLowBatteryForDriver ===
=== SceSysconForDriver_9A4F4B7C ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xD7F5A797
| 0.931.010-0.940 || not present
|-
| 0.996.090-3.740.011 || 0x9A4F4B7C
|}
|}


This is a guessed name.
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_3BAAC8A9]].


Only used in [[ScePower]].
No use case seen.


<source lang="C">SceBool sceSysconIsLowBatteryForDriver(void);</source>
<source lang="C">SceBool SceSysconForDriver_9A4F4B7C(void);</source>


=== sceSysconIsLowBatteryInhibitUpdateRebootForDriver ===
=== SceSysconForDriver_92D2C6A4 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.18 || not present
| 0.931.010-2.060.011 || not present
|-
|-
| 3.300.041-3.740.011 || 0x1A0C140F
| 2.100.081-3.740.011 || 0x92D2C6A4
|}
|}


This function was added along with [[ScePower#scePowerIsLowBatteryInhibitUpdateReboot]].
<source lang="C">int SceSysconForDriver_92D2C6A4(void);</source>


Used in [[ScePower#scePowerIsLowBatteryInhibitUpdateReboot]].
=== SceSysconForDriver_B9EA2FA8 ===
 
<source lang="c">SceBool sceSysconIsLowBatteryInhibitUpdateRebootForDriver(void);</source>
 
=== sceSysconIsLowBatteryInhibitUpdateDownloadForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.18 || not present
| 0.931.010-0.940 || not present
|-
|-
| 3.300.041-3.740.011 || 0x1E3130EE
| 0.995.000-3.740.011 || 0xB9EA2FA8
|}
|}


This function was added along with [[ScePower#scePowerIsLowBatteryInhibitUpdateDownload]].
A guessed name is sceSysconIsAccExistForDriver.


Used in [[ScePower#scePowerIsLowBatteryInhibitUpdateDownload]].
Only used in [[SceUsbServ]].


<source lang="c">SceBool sceSysconIsLowBatteryInhibitUpdateDownloadForDriver(void);</source>
<source lang="C">SceBool SceSysconForDriver_B9EA2FA8(void);</source>


=== sceSysconGetBatteryRemainLevelForDriver ===
=== SceSysconForDriver_29CF4335 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.18 || not present
| 0.931.010-3.740.011 || 0x29CF4335
|-
| 3.300.041-3.740.011 || 0x26F9D729
|}
|}


Only used if Syscon version >= 0x1040105.
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_2E4BA4B8]].


This function was added along with [[ScePower#scePowerGetBatteryRemainLevelForDriver]].
It is related to Ernie DL Mode.


Used in [[ScePower#scePowerGetBatteryRemainLevelForDriver]].
Used in [[SceSblPostSsMgr]].


<source lang="C">int sceSysconGetBatteryRemainLevelForDriver(SceUInt8 *pResult1, SceUInt8 *pResult2);</source>
<source lang="C">SceBool SceSysconForDriver_29CF4335(void);</source>


=== SceSysconForDriver_C0F215B7 ===
=== SceSysconForDriver_32B2DB3D ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-0.990.000 || not present
| 0.931.010-3.740.011 || 0x32B2DB3D
|-
| 0.996.090-3.740.011 || 0xC0F215B7
|}
|}


A guessed name is sceSysconIs...ForDriver.
<source lang="c">int SceSysconForDriver_32B2DB3D(void);</source>


Returns the global variable related to [[#SceSysconForDriver_18A6F4D9]].
=== sceSysconIsHeadphoneExistForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.740.011 || 0x142D5E82
|}


The global variable is updated by [[#sceSysconCmdSyncForDriver]].
Used in [[SceHpremote#sceHprmIsHeadphoneExistForDriver]].


<source lang="C">SceBool SceSysconForDriver_C0F215B7(void);</source>
<source lang="c">SceBool sceSysconIsHeadphoneExistForDriver(void);</source>


=== SceSysconForDriver_D6F6D472 ===
=== sceSysconIsMotionDevExistForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-3.740.011 || 0x490C5548
|-
| 2.100.081-3.740.011 || 0xD6F6D472
|}
|}


Gets electric information (maybe intensity) of the device connected to USB OTG on PS Vita Slim. It should be studied if PS TV supports this function and if this function was initially targetting PS TV.
This is a guessed name.


Returns a global variable updated by [[#sceSysconCmdSyncForDriver]], obtained using Syscon command 0x130.
Used in [[SceMotionDev]].


<source lang="C">int SceSysconForDriver_D6F6D472(int *pInfo);</source>
<source lang="c">SceBool sceSysconIsMotionDevExistForDriver(void);</source>


=== SceSysconForDriver_F99BC858 ===
=== SceSysconForDriver_012B57B3 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.01 || not present
| 0.931.010 || not present
|-
|-
| 3.100.081-3.740.011 || 0xF99BC858
| 0.940-3.740.011 || 0x012B57B3
|}
|}


Calls syscon command 0x131.
<source lang="c">int SceSysconForDriver_012B57B3(void);</source>


This function was maybe added to support DOL-1002 motherboard.
=== SceSysconForDriver_27758A64 ===
 
=== SceSysconForDriver_E7893732 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-2.060.011 || not present
| 0.931.010-0.940 || not present
|-
|-
| 2.100.081-3.740.011 || 0xE7893732
| 1.000.071-3.740.011 || 0x27758A64
|}
|}


Calls Syscon command 0x1B0. Related to UART or JIG on PS Vita Slim or PS TV.
A guessed name is sceSysconIsBatteryOnlineForDriver, deriving from [[#sceSysconIsPowerOnlineForDriver]].


<source lang="C">
Used in [[ScePower#scePowerGetBatteryRemainLevelForDriver]], [[ScePower#scePowerIsLowBatteryForDriver]], [[ScePower]]'s module_start.
// value holds 3 useful bytes and 1 byte not sent to syscon
 
int SceSysconForDriver_E7893732(int value);
Returns the global variable related to [[#SceSysconForDriver_80D6E061]].
</source>
 
<source lang="C">SceBool SceSysconForDriver_27758A64(void);</source>


=== sceSysconGetElmoVersionForDriver ===
=== SceSysconForDriver_4A184B7C ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.931.010-3.740.011 || 0xA039B563
| 0.931.010-0.940 || not present
|-
| 1.000.071-3.740.011 || 0x4A184B7C
|}
|}


This is a guessed name.
A guessed name is sceSysconIs...ForDriver.
 
Returns some information about battery.
 
Used in [[ScePower#ScePowerForDriver_627A89C6]].


Calls Syscon command 0x880.
Returns the global variable related to [[#SceSysconForDriver_7682FE69]].


<source lang="C">int sceSysconGetElmoVersionForDriver(SceUInt32 *pResult);</source>
<source lang="C">SceBool SceSysconForDriver_4A184B7C(void);</source>


=== sceSysconGetCookieVersionForDriver ===
=== SceSysconForDriver_ACEE1C70 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x9BF78047
| 0.931.010-0.940 || not present
|-
| 0.996.090-3.740.011 || 0xACEE1C70
|}
|}


This is a guessed name.
A guessed name is sceSysconIs...ForDriver.
 
Returns information about battery. Only used when battery is working.
 
Used in [[ScePower#ScePowerForDriver_0D56C601]].


Calls Syscon command 0x881.
Returns the global variable related to [[#SceSysconForDriver_E0D52DF0]].


<source lang="C">int sceSysconGetCookieVersionForDriver(SceUInt32 *pResult);</source>
<source lang="C">SceBool SceSysconForDriver_ACEE1C70(void);</source>


=== sceSysconReadElmoRegForDriver ===
=== SceSysconForDriver_03C50DC3 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x5BF765BB
| 0.931.010-0.940 || not present
|-
| 1.000.071-3.740.011 || 0x03C50DC3
|}
|}


This is a guessed name.
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_2D471528]].


Calls Syscon command 0x895.
<source lang="C">SceBool SceSysconForDriver_03C50DC3(void);</source>


=== sceSysconWriteElmoRegForDriver ===
=== SceSysconForDriver_BFDA5590 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0xCCC71C28
| 0.931.010-2.060.011 || not present
|-
| 2.100.081-3.740.011 || 0xBFDA5590
|}
|}


This is a guessed name.
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_129EA022]].


Calls Syscon command 0x896.
<source lang="C">SceBool SceSysconForDriver_BFDA5590(void);</source>


=== sceSysconReadCookieRegForDriver ===
=== SceSysconForDriver_63B14156 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0x95975DD1
| 0.931.010-0.996.090 || not present
|-
| 1.000.071-3.740.011 || 0x63B14156
|}
|}


This is a guessed name.
A guessed name is sceSysconIs...ForDriver.


Calls Syscon command 0x897. Probably reads data from Cookie.
Returns the global variable related to [[#SceSysconForDriver_85E5DEBF]].


=== sceSysconWriteCookieRegForDriver ===
<source lang="C">SceBool SceSysconForDriver_63B14156(void);</source>
 
=== SceSysconForDriver_50CAE242 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 0.990.000-3.740.011 || 0xF39300D3
| 0.931.010-0.940 || not present
|-
| 1.000.071-3.740.011 || 0x50CAE242
|}
|}


This is a guessed name.
A guessed name is sceSysconIsThermalAlertForDriver.
 
Returns the global variable related to [[#sceSysconSetThermalAlertCallbackForDriver]].
 
Used in [[ScePower]].
 
<source lang="C">SceBool SceSysconForDriver_50CAE242(void);</source>


Calls Syscon command 0x898. Probably writes data to Cookie.
=== SceSysconForDriver_9F4042F8 ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0x9F4042F8
|}


Returns error 0x80250001 if offset is greater than 0xFF.
A guessed name is sceSysconIs...ForDriver.


<source lang="C">
Returns the global variable related to [[#SceSysconForDriver_C442D0BE]].
// offset: 0-0xFF
int sceSysconWriteCookieRegForDriver(SceUInt32 offset, SceUInt16 data);
</source>


== Commands ==
No use case seen.


It seems like the command format is as follows: <code>(direction << 8) | cmd_id</code>, where <code>direction = 1</code> means write to syscon, and <code>direction = 0</code> means read from syscon.
<source lang="C">SceBool SceSysconForDriver_9F4042F8(void);</source>


=== SceSysconForDriver_C50568E9 ===
{| class="wikitable"
{| class="wikitable"
! Command
! Version !! NID
! Return size (without considering the 2 bytes rx.size and rx.error_code)
! Functions NIDs
! Description
|-
|-
| 0x0
| 0.931.010-3.01 || not present
| 0x0
| 0x0D0B6D25
|  
|-
|-
| 0x1
| 3.100.081-3.740.011 || 0xC50568E9
| 0x4
|}
| module_start
 
| sceSysconGetErnieVersionForDriver. Used during SysconInit.
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_61AE3970]].
 
This function was added to support DOL-1002 motherboard.
 
No use case seen.
 
<source lang="C">SceBool SceSysconForDriver_C50568E9(void);</source>
 
=== sceSysconIsLowBatteryForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x2
| 0.931.010-3.740.011 || 0xD7F5A797
| 0xC
|}
| module_start
 
| sceSysconGetTimeStampForDriver. Returns 12-byte string followed by at least 2-byte memory leak. Used during SysconInit.
This is a guessed name.
 
Only used in [[ScePower]].
 
<source lang="C">SceBool sceSysconIsLowBatteryForDriver(void);</source>
 
=== sceSysconIsLowBatteryInhibitUpdateRebootForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x3
| 0.931.010-3.18 || not present
| 0x4
| module_start
| sceSysconGetSleepFactor. Used during SysconInit.
|-
|-
| 0x4
| 3.300.041-3.740.011 || 0x1A0C140F
| 0x4
|}
|  
 
|
This function was added along with [[ScePower#scePowerIsLowBatteryInhibitUpdateReboot]].
 
Used in [[ScePower#scePowerIsLowBatteryInhibitUpdateReboot]].
 
<source lang="c">SceBool sceSysconIsLowBatteryInhibitUpdateRebootForDriver(void);</source>
 
=== sceSysconIsLowBatteryInhibitUpdateDownloadForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x5
| 0.931.010-3.18 || not present
| 0x4
| 0xCBD6D8BC, module_start
| sceSysconGetHardwareInfoForDriver
|-
|-
| 0x6
| 3.300.041-3.740.011 || 0x1E3130EE
| 0x10
|}
| 0x965C68C3, module_start
 
| sceSysconGetHardwareInfo2ForDriver. Get "Hardware flags". See [[KBL Param#Hardware flags]].
This function was added along with [[ScePower#scePowerIsLowBatteryInhibitUpdateDownload]].
 
Used in [[ScePower#scePowerIsLowBatteryInhibitUpdateDownload]].
 
<source lang="c">SceBool sceSysconIsLowBatteryInhibitUpdateDownloadForDriver(void);</source>
 
=== sceSysconGetBatteryRemainLevelForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x10
| 0.931.010-3.18 || not present
| 0x2
| 0xCF5B2F2F
| sceSysconGetWakeupFactorForDriver
|-
|-
| 0x11
| 3.300.041-3.740.011 || 0x26F9D729
| 0x4
|}
| 0xD7BEFF8B
 
| ??
Only used if Syscon version >= 0x1040105.
 
This function was added along with [[ScePower#scePowerGetBatteryRemainLevelForDriver]].
 
Used in [[ScePower#scePowerGetBatteryRemainLevelForDriver]].
 
<source lang="C">int sceSysconGetBatteryRemainLevelForDriver(SceUInt8 *pResult1, SceUInt8 *pResult2);</source>
 
=== SceSysconForDriver_C0F215B7 ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x12
| 0.931.010-0.990.000 || not present
| 0x5 or 0x6
| 0x3168F3AF
| ??
|-
|-
| 0x13
| 0.996.090-3.740.011 || 0xC0F215B7
| 0x2
|}
| 0xBA09F171
 
| ??
A guessed name is sceSysconIs...ForDriver.
 
Returns the global variable related to [[#SceSysconForDriver_18A6F4D9]].
 
The global variable is updated by [[#sceSysconCmdSyncForDriver]].
 
It looks like it checks for WlanBt presence (used in [[SceWlanBt]], skipping sdio/etc initialization if SceSysconForDriver_C0F215B7 returns 0).
 
<source lang="C">SceBool SceSysconForDriver_C0F215B7(void);</source>
 
=== SceSysconForDriver_D6F6D472 ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x14
| 0.931.010-2.060.011 || not present
| 0x1
| 0x93075DD1
| ??
|-
|-
| 0x15
| 2.100.081-3.740.011 || 0xD6F6D472
| 0x4
|}
| 0x3E09A1F4
 
| sceSysconGetManufacturesStatusForDriver
Guessed name is sceSysconGetMicroUsbInfoForDriver.
 
Gets electric information (maybe intensity) of the device connected to USB OTG on PS Vita Slim.
 
Returns a global variable updated by [[#sceSysconCmdSyncForDriver]], obtained using Syscon command 0x130.
 
<source lang="C">int SceSysconForDriver_D6F6D472(int *pInfo);</source>
 
=== SceSysconForDriver_F99BC858 ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x80
| 0.931.010-3.01 || not present
| 0x0
| module_start
| ?? Used during SysconInit.
|-
|-
| 0x81
| 3.100.081-3.740.011 || 0xF99BC858
| ?
|}
| 0x9B6A6F64
 
|
Detects microSD swap.
 
Calls syscon command 0x131.
 
This function was maybe added to support a prototype motherboard that has a microSD port.
 
<source lang="C">int SceSysconForDriver_F99BC858(SceBool *isSwapped);</source>
 
=== SceSysconForDriver_E7893732 ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x82
| 0.931.010-2.060.011 || not present
| ?
| 0x51164951
|  
|-
|-
| 0x83
| 2.100.081-3.740.011 || 0xE7893732
| ?
|}
| 0x373ECF8A
 
| Sends 3 bytes to Syscon.
Guessed name is sceSysconSetMicroUsbPortForDriver.
 
Calls Syscon command 0x1B0. Related to UART or Jig on PS Vita Slim or PS TV.
 
<source lang="C">
// value holds 3 useful bytes and 1 byte not sent to syscon
int SceSysconForDriver_E7893732(int value);
</source>
 
=== sceSysconGetElmoVersionForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x84
| 0.931.010-3.740.011 || 0xA039B563
| ?
|}
| 0x2659535C
 
| Sends 1 byte to Syscon.
Temp name was sceSysconGetElmoFwVersionForDriver.
 
Calls Syscon command 0x880. Read Elmo registers 0xD0 through 0xEF.
 
On PS Vita 1000 series with IRS-001 motherboard, Elmo Fw Version is 0x192.
 
<source lang="C">int sceSysconGetElmoVersionForDriver(SceUInt32 *pVersion);</source>
 
=== sceSysconGetCookieVersionForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x85
| 0.931.010-3.740.011 || 0x9BF78047
| ?
|}
| 0x4295D497
 
|
Temp name was sceSysconGetCookieFwVersionForDriver.
 
Calls Syscon command 0x881.
 
<source lang="C">int sceSysconGetCookieVersionForDriver(SceUInt32 *pVersion);</source>
 
=== sceSysconReadElmoRegForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x86
| 0.931.010-3.740.011 || 0x5BF765BB
| 8
|}
| 0x701535FC
 
| sceSysconGetLogInfoForDriver
Calls Syscon command 0x895.
 
=== sceSysconWriteElmoRegForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x87
| 0.931.010-3.740.011 || 0xCCC71C28
| 0
|}
| 0x4E55CF5E
 
| sceSysconLogStartForDriver. Sends 1 byte to Syscon: 0.
Calls Syscon command 0x896.
 
=== sceSysconReadCookieRegForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x88
| 0.931.010-3.740.011 || 0x95975DD1
| 0x18
|}
| 0x487D97F3
 
| sceSysconLogReadDataForDriver. Sends 2 bytes to Syscon: offset.
Calls Syscon command 0x897.
 
=== sceSysconWriteCookieRegForDriver ===
{| class="wikitable"
! Version !! NID
|-
|-
| 0x89
| 0.931.010-3.740.011 || 0xF39300D3
| 0
|}
| 0x9C0B1E61
 
| sceSysconLogStartWaitingForDriver. Sends 1 byte to Syscon: 0.
Calls Syscon command 0x898.
|-
 
| 0x90
Returns error 0x80250001 if offset is greater than 0xFF.
| ?0x3B?
 
| 0x299B1CE7
<source lang="C">
| sceSysconReadScratchPadForDriver
// offset: 0-0xFF
int sceSysconWriteCookieRegForDriver(SceUInt32 offset, SceUInt16 data);
</source>
 
== Commands ==
 
It seems like the command format is as follows: <code>(direction << 8) | cmd_id</code>, where <code>direction = 1</code> means write to syscon, and <code>direction = 0</code> means read from syscon.
 
{| class="wikitable"
! Command
! Return size (without considering the 2 bytes rx.size and rx.error_code)
! Functions NIDs
! Description
|-
|-
| 0x91
| 0x0
| ?0x3B?
| 0x0
| 0xE26488B9
| 0x0D0B6D25
| sceSysconWriteScratchPadForDriver
| sceSysconNopForDriver
|-
|-
| 0xA0
| 0x1
| ?0x10 or 0x28?
| 0x4
| second_loader
| module_start
| See [[Ernie Secure]].
| sceSysconGetErnieVersionForDriver. Used during SysconInit.
|-
|-
| 0xB0
| 0x2
| 0
| 0xC
| 0x058941D7
| module_start
| Probably a control command. Sends 2 bytes to Syscon.
| sceSysconGetTimeStampForDriver. Returns 12-byte string followed by at least 2-byte memory leak. Used during SysconInit.
|-
|-
| 0xB1
| 0x3
| 0
| 0x4
| 0xDF8C6D2D
| module_start
| sceSysconCtrlWirelessPowerDownForDriver
| sceSysconGetSleepFactor. Used during SysconInit.
|-
|-
| 0xB2
| 0x4
| 0
| 0x4
| 0xDECCB2B4
|  
| sceSysconCtrlHostOutputViaDongleForDriver. Sends 2 bytes to Syscon.
| Unknown. Run during boot. See [[Ernie#CMD_0x0004]].
|-
|-
| 0xB3
| 0x5
| at least 1
| 0x4
| 0x33B5CDB3
| 0xCBD6D8BC, module_start
| ??
| sceSysconGetHardwareInfoForDriver
|-
|-
| 0xB4
| 0x6
| at least 1
| 0x10
| 0xF6D4DDC4
| 0x965C68C3, module_start
| ??
| sceSysconGetHardwareInfo2ForDriver. Get Hardware Info 2. See [[KBL_Param#Hardware_Info_2]].
|-
|-
| 0xB5
| 0x10
| 0
| 0x2
| 0x00AE3AEB
| 0xCF5B2F2F
| Probably a control command. Sends 2 bytes to Syscon.
| sceSysconGetWakeupFactorForDriver
|-
|-
| 0xB6
| 0x11
| 0
| 0x4
| 0x0D300158
| 0xD7BEFF8B
| Probably a control command. Sends 2 bytes to Syscon.
| sceSysconGetClockForDriver
|-
|-
| 0xB7
| 0x12
| at least 1
| 0x5 or 0x6
| 0x91EF4EC3
| 0x3168F3AF
| ??
| SceSysconForDriver_3168F3AF. Gets information about alarm timer. Return value is 1 byte indicating data size then 4 or 5 bytes of data.
|-
|-
| 0xC0
| 0x13
| ?0x3E?
| 0x2
|  
| 0xBA09F171
|  
| SceSysconForDriver_BA09F171
|-
|-
| 0xC1
| 0x14
| 0
| ?between 0x1 and 0x4?
| 0x94AB13CC
| 0x93075DD1
| sceSysconErnieShutdownForDriver. Sends 2 bytes to Syscon.
| SceSysconForDriver_93075DD1
|-
|-
| 0xD0
| 0x15
| ?0x2A or 0x28?
| 0x4
|  
| 0x3E09A1F4
|  
| sceSysconGetManufacturesStatusForDriver
|-
|-
| 0xD1
| 0x80
| ?0x2?
| 0x0
|  
| module_start
|  
| ?? Used during SysconInit. Sends 2 bytes (ex: 0x0012) to Syscon.
|-
|-
| 0xD2
| 0x81
| ?0x30?
| ?
| second_loader, SNVS functions
| 0x9B6A6F64
| See [[Ernie Secure]]. SNVS RW.
| sceSysconSetClockForDriver. Sends 5 bytes to Syscon: 1 byte for size=5 and 4 bytes of data.
|-
|-
| 0xD3
| 0x82
| ?0x12?
| ?
|  
| 0x51164951
|  
| SceSysconForDriver_51164951
|-
|-
| 0x100
| 0x83
| 0x4
| ?
| 0x145F59A4
| 0x373ECF8A
| sceSysconGetControlsInfoForDriver. Used in SceCtrlVblankHandler in [[SceCtrl]].
| SceSysconForDriver_373ECF8A. Sends 3 bytes to Syscon.
|-
|-
| 0x101
| 0x84
| 0x8
| ?
|  
| 0x2659535C
| sceSysconGetControlsInfo2ForDriver. Used in SceCtrlVblankHandler in [[SceCtrl]]. Uses Ernie version and Ernie DL version.
| SceSysconForDriver_2659535C. Sends 1 byte to Syscon.
|-
|-
| 0x102
| 0x85
| 0xC
| ?
|  
| 0x4295D497
|  
| SceSysconForDriver_4295D497
|-
|-
| 0x103
| 0x86
| 0x4
| 8
| 0x1503D6A0
| 0x701535FC
| sceSysconGetMultiCnInfoForDriver
| sceSysconGetLogInfoForDriver
|-
|-
| 0x104
| 0x87
| 0xC
| 0
|  
| 0x4E55CF5E
| sceSysconGetControlsInfo3ForDriver. Used in SceCtrlVblankHandler in [[SceCtrl]].
| sceSysconLogStartForDriver. Sends 1 byte to Syscon: 0.
|-
|-
| 0x105
| 0x88
| ?
| 0x18
|  
| 0x487D97F3
| Uses string "PS" then "TUV".
| sceSysconLogReadDataForDriver. Sends 2 bytes to Syscon: offset.
|-
|-
| 0x106
| 0x89
| ?
| 0
|  
| 0x9C0B1E61
|  
| sceSysconLogStartWaitingForDriver. Sends 1 byte to Syscon: 0.
|-
|-
| 0x107
| 0x90
| ?
| ?0x3B?
|  
| 0x299B1CE7
|  
| sceSysconReadScratchPadForDriver
|-
|-
| 0x108
| 0x91
| ?
| ?0x3B?
|  
| 0xE26488B9
|  
| sceSysconWriteScratchPadForDriver
|-
|-
| 0x109
| 0xA0
| ?
| ?0x10 or 0x28?
|  
| second_loader
|  
| Handshake during boot. See [[Ernie_Secure#Ernie_Secure_Commands]].
|-
|-
| 0x110
| 0xB0
| ?
| 0
|  
| 0x058941D7
|  
| sceSysconOutputClockForDriver. Sends 2 bytes to Syscon.
|-
|-
| 0x120
| 0xB1
| ?
| 0
| 0x76272CB9
| 0xDF8C6D2D
| ??
| sceSysconCtrlWirelessPowerDownForDriver
|-
|-
| 0x121
| 0xB2
| ?
| 0
|  
| 0xDECCB2B4
|  
| sceSysconCtrlHostOutputViaDongleForDriver. Sends 2 bytes to Syscon.
|-
| 0xB3
| at least 1
| 0x33B5CDB3
| SceSysconForDriver_33B5CDB3
|-
|-
| 0x130
| 0xB4
| 0x4
| at least 1
| module_start, 0xD6F6D472
| 0xF6D4DDC4
| Get USB OTG device electric info (maybe intensity). Used during SysconInit.
| SceSysconForDriver_F6D4DDC4
|-
|-
| 0x131
| 0xB5
| ?0x1? (read)
| 0
| 0xF99BC858
| 0x00AE3AEB
| ?? Added on a FW > 2.50 and <= 3.100.081.
| SceSysconForDriver_00AE3AEB. Probably a control command. Sends 2 bytes to Syscon.
|-
|-
| 0x140
| 0xB6
| ?
| 0
|  
| 0x0D300158
|  
| SceSysconForDriver_0D300158. Probably a control command. Sends 2 bytes to Syscon.
|-
|-
| 0x141
| 0xB7
| ?
| at least 1
|  
| 0x91EF4EC3
|  
| SceSysconForDriver_91EF4EC3
|-
|-
| 0x142
| 0xC0
| ?
| ?0x3E?
|  
|  
|  
|  
|-
|-
| 0x143
| 0xC1
| ?
| 0
|  
| 0x94AB13CC
|  
| sceSysconErnieShutdownForDriver. Sends 2 bytes to Syscon.
|-
| 0xD0
| ?0x2A or 0x28?
| 0x4D03754A
| SceSysconForDriver_4D03754A. Handshake before SNVS RW. See [[Ernie_Secure#Ernie_Secure_Commands]].
|-
| 0xD1
| ?0x0 or 0x2?
| 0xC14BD637
| SceSysconForDriver_C14BD637
|-
|-
| 0x144
| 0xD2
| ?
| ?0x30?
|  
| 0xEBDF88B9, second_loader
|  
| sceSysconSnvsReadDataForDriver. See [[Ernie_Secure#Ernie_Secure_Commands]].
|-
|-
| 0x145
| 0xD3
| ?
| ?0x12?
|  
| 0x63683B9B
|  
| sceSysconSnvsWriteDataForDriver. See [[Ernie_Secure#Ernie_Secure_Commands]].
|-
|-
| 0x146
| 0x100
| ?
| 0x4
|  
| 0x145F59A4
|  
| sceSysconGetControlsInfoForDriver. Used in SceCtrlVblankHandler in [[SceCtrl]].
|-
|-
| 0x147
| 0x101
| ?
| 0x8
|  
|  
|  
| sceSysconGetControlsInfo2ForDriver. Used in SceCtrlVblankHandler in [[SceCtrl]]. Uses Ernie version and Ernie DL version.
|-
|-
| 0x148
| 0x102
| ?
| 0xC
|  
|  
|  
|  
|-
|-
| 0x150
| 0x103
| 0x4
| 0x1503D6A0
| sceSysconGetMultiCnInfoForDriver
|-
| 0x104
| 0xC
|
| sceSysconGetControlsInfo3ForDriver. Used in SceCtrlVblankHandler in [[SceCtrl]].
|-
| 0x105
| ?
| ?
|  
|  
|  
| Uses string "PS" then "TUV".
|-
|-
| 0x151
| 0x106
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x152
| 0x107
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x153
| 0x108
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x154
| 0x109
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x155
| 0x110
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x156
| 0x120
| ?
| ?
|  
| 0x76272CB9
|  
| SceSysconForDriver_76272CB9
|-
|-
| 0x157
| 0x121
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x160
| 0x130
| 0x4
| module_start (SysconInit), 0xD6F6D472
| SceSysconForDriver_D6F6D472
|-
| 0x131
| ?0x1? (read)
| 0xF99BC858
| SceSysconForDriver_F99BC858. Added on a FW > 3.01 and <= 3.100.081.
|-
| 0x140
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x161
| 0x141
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x162
| 0x142
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x163
| 0x143
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x168
| 0x144
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x170
| 0x145
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x171
| 0x146
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x172
| 0x147
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x180
| 0x148
| ?
| ?
|  
|  
| Set analog sampling. Sends 2 bytes to Syscon: 0 to disable, 1 to enable on Syscon version is < 0x90202, 3 to enable on Syscon version is >= 0x90202. Used in SceCtrlVblankHandler in [[SceCtrl]].
|  
|-
|-
| 0x181
| 0x150
| 0
| 0xCFCEE733
| Sends 2 bytes to Syscon.
|-
| 0x182
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x183
| 0x151
| 0x10
| 0xFDB3AE9D
| Gets some info.
|-
| 0x184
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x185
| 0x152
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x186
| 0x153
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x187
| 0x154
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x188
| 0x155
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x189
| 0x156
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x18A
| 0x157
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x18B
| 0x160
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x18C
| 0x161
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x18D
| 0x162
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x18E
| 0x163
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x18F
| 0x168
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x190
| 0x170
| 0
| 0x8AAB6308
| sceSysconSetMultiCnPortForDriver. Sends 3 bytes to Syscon.
|-
| 0x191
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x192
| 0x171
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1A0
| 0x172
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1A1
| 0x180
| ?
| ?
|  
|  
|  
| Set analog sampling. Sends 2 bytes to Syscon: 0 to disable, 1 to enable on Syscon version is < 0x90202, 3 to enable on Syscon version is >= 0x90202. Used in SceCtrlVblankHandler in [[SceCtrl]].
|-
|-
| 0x1B0
| 0x181
| 0
| 0
| 0xE7893732
| 0xCFCEE733
| Sends 3 bytes to Syscon.
| SceSysconForDriver_CFCEE733. Sends 2 bytes to Syscon.
|-
|-
| 0x1B2
| 0x182
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1C0
| 0x183
| 0x10
| 0xFDB3AE9D
| SceSysconForDriver_FDB3AE9D. Gets some information.
|-
| 0x184
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1C1
| 0x185
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1C2
| 0x186
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1C3
| 0x187
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1C4
| 0x188
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1D0
| 0x189
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1D1
| 0x18A
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1D2
| 0x18B
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1D3
| 0x18C
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1D4
| 0x18D
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1D5
| 0x18E
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1E0
| 0x18F
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1E1
| 0x190
| 0
| 0x8AAB6308
| sceSysconSetMultiCnPortForDriver. Sends 3 bytes to Syscon.
|-
| 0x191
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1E2
| 0x192
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x1E3
| 0x1A0
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x300
| 0x1A1
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x301
| 0x1B0
| 0
| 0xE7893732
| SceSysconForDriver_E7893732. Sends 3 bytes to Syscon.
|-
| 0x1B2
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x303
| 0x1C0
| ?
| ?
|  
|  
|  
|  
|-
|-
| 0x380
| 0x1C1
| at least 1
| ?
| 0xF492E69E
|  
| sceSysconGetTouchpanelDeviceInfoForDriver
|  
|-
|-
| 0x38A
| 0x1C2
| at least 1
| ?
| 0xA1F1B973
|  
| ??
|  
|-
|-
| 0x390
| 0x1C3
| at least 1
| 0x030D447F
| sceSysconGetTouchpanelDeviceInfo2ForDriver
|-
| 0x392
| ?
| ?
| 0x48ED8981, 060E55C1
|  
|  
|  
|-
|-
| 0x393
| 0x1C4
| ?
| ?
| 0x9A28BEEF, 0x8874EF45
|  
| Used in [[SceSblUpdateMgr]]
|  
|-
|-
| 0x3A9
| 0x1D0
| 0
| 0x010F95D9
| Sends 1 byte to Syscon.
|-
| 0x3AB
| ?
| ?
| 0x357CC9D9
|  
|  
|  
|-
|-
| 0x3AC
| 0x1D1
| ?
| ?
| 0x3664E2C0
|  
| ??
|  
|-
|-
| 0x3AF
| 0x1D2
| ?
| ?
| 0xB8F4F4E3
|  
|  
|  
|-
|-
| 0x3B9
| 0x1D3
| ?
| ?
| 0x42E599AC
|  
|  
|  
|-
|-
| 0x3BB
| 0x1D4
| ?
| ?
| 0xCCA56A16
|  
|  
|  
|-
|-
| 0x3BC
| 0x1D5
| ?
| ?
| 0x2E6D97CD
|  
| ??
|  
|-
|-
| 0x3BF
| 0x1E0
| ?
| ?
| 0x240A604E
|  
|  
|  
|-
|-
| 0x3C2
| 0x1E1
| ?
| ?
| 0x5946B29B, 0x10327C64
|  
| Used in [[SceSblUpdateMgr]]
|  
|-
|-
| 0x480
| 0x1E2
| ?
| ?
| 0xD01E64FC
|  
| ??
|  
|-
|-
| 0x481
| 0x1E3
| ?
| ?
| 0x9A7858B6
|  
| ??
|  
|-
|-
| 0x800
| 0x300
| ?0x4?
| ?
| 0xA2FE9BF9
|  
| SceSysconForDriver_A2FE9BF9. [[ScePower]] related.
|  
|-
|-
| 0x801
| 0x301
| 0x0
| ?
|  
|  
|  
| ??
|-
|-
| 0x802
| 0x303
| ?0x4?
| ?
| 0xC562AF3A
|  
| sceSysconGetBatteryRemainCapacityForDriver. Replaced by Syscon command 0x900 on Syscon version > 0x70503.
|  
|-
|-
| 0x803
| 0x380
| 0x4
| at least 1
| 0x03F11220
| 0xF492E69E
| sceSysconGetBatteryVoltForDriver. Replaced by Syscon command 0x901 on Syscon version > 0x70503.
| sceSysconGetTouchpanelDeviceInfoForDriver
|-
|-
| 0x804
| 0x38A
| ?
| at least 1
|  
| 0xA1F1B973
| ??
| ??
|-
|-
| 0x805
| 0x390
| ?0x0?
| at least 1
| 0xEF810687
| 0x030D447F
| sceSysconGetUsbDetStatusForDriver
| sceSysconGetTouchpanelDeviceInfo2ForDriver
|-
| 0x392
| ?
| 0x48ED8981, 0x060E55C1
| SceSysconForDriver_48ED8981 / SceSysconForDriver_060E55C1. Sends 2 bytes to Syscon: 0 or 1.
|-
|-
| 0x806
| 0x393
| ?0x1?
| ?
| 0xE7F5D3DC
| 0x9A28BEEF, 0x8874EF45
| Reboots PS Vita?
| SceSysconForDriver_9A28BEEF / SceSysconForDriver_8874EF45. Sends 2 bytes to Syscon: 0 or 1. Used in [[SceSblUpdateMgr]].
|-
|-
| 0x807
| 0x3A0
| 0x2
| ?
| 0x253CC522
| ??
| ??
| sceSysconTouchStartBlModeForDriver
|-
|-
| 0x820
| 0x3A1
| 0x0
| ?
| 0x727F985A
| ??
| sceSysconCtrlDolceLEDForDriver. PSTV LED on
| sceSysconTouchUnlockDeviceForDriver
|-
| 0x821
| 0x0
| 0x727F985A
| sceSysconCtrlDolceLEDForDriver. PSTV LED blink slow
|-
|-
| 0x822
| 0x3A2
| 0x0
| ?
| 0x727F985A
| sceSysconCtrlDolceLEDForDriver. PSTV LED blink fast
|-
| 0x840
| ?0x1?
| 0x4FEC564C
| sceSysconGetManualChargeModeForDriver
|-
| 0x841
| ?0x1?
| 0x3C3B949C
| ??
| ??
| sceSysconTouchSetProgramDataForDriver
|-
|-
| 0x842
| 0x3A3
| ?0x1?
| ?
| 0x1C29C00E
| ??
| ??
| sceSysconTouchExecProgramDataForDriver
|-
|-
| 0x843
| 0x3A4
| ?0x1?
| ?
| 0x730E4725
| ??
| ??
| sceSysconTouchGetBLStatusForDriver
|-
|-
| 0x880
| 0x3A9
| 0x4
| 0
| 0xA039B563
| 0x010F95D9
| sceSysconGetElmoVersionForDriver
| SceSysconForDriver_010F95D9. Sends 1 byte to Syscon.
|-
|-
| 0x881
| 0x3AB
| ?
| ?
| 0x9BF78047
| 0x357CC9D9
| sceSysconGetCookieVersionForDriver
| SceSysconForDriver_010F95D9. Sends 3 bytes to Syscon.
|-
| 0x3AC
| ?between 0x1 and 0x4?
| 0x3664E2C0
| SceSysconForDriver_3664E2C0. Gets information.
|-
|-
| 0x882
| 0x3AF
| 0x6
| ?
| 0x68E0031E
| 0xB8F4F4E3
| sceSysconGetBatteryVersionForDriver. Replaced by Syscon command 0x980 on Syscon version > 0x70503.
| SceSysconForDriver_B8F4F4E3. Sends 2 bytes to Syscon.
|-
|-
| 0x883
| 0x3B0
| 0x8
| ?
| 0x175CE5A1
| ??
| ??
| sceSysconTouchStartBlModeForDriver
|-
|-
| 0x884
| 0x3B1
| ?
| ?
| 0x3FDD29D6
| ??
| ??
| sceSysconTouchUnlockDeviceForDriver
|-
|-
| 0x885
| 0x3B2
| ?
| ?
| 0x79E6DD8B
| ??
| ??
| sceSysconTouchSetProgramDataForDriver
|-
|-
| 0x886
| 0x3B3
| ?0x2?
| 0x62155962
| sceSysconCtrlHdmiCecPowerForDriver
|-
| 0x887
| ?
| ?
| 0x063425AE
| ??
| maybe sceSysconCtrlMotionSensorPowerForDriver
| sceSysconTouchExecProgramDataForDriver
|-
|-
| 0x888
| 0x3B4
| ?0x2?
| 0xBE1ADE4F
| sceSysconCtrlSdPowerForDriver
|-
| 0x889
| ?0x2?
| 0x8D1D97E8
| sceSysconCtrlAccPowerForDriver
|-
| 0x88A
| ?
| ?
| 0x4FBDA504, 0xA2E85DB9
| ??
| sceSysconCtrlWirelessPowerForDriver, sceSysconCtrlWirelessPower2ForDriver
| sceSysconTouchGetBLStatusForDriver
|-
|-
| 0x88B
| 0x3B9
| ?
| ?
| 0x5A614349
| 0x42E599AC
| ??
| SceSysconForDriver_42E599AC. Sends 1 byte to Syscon.
|-
|-
| 0x88C
| 0x3BB
| ?
| ?
| 0xB872E904
| 0xCCA56A16
| ??
| SceSysconForDriver_CCA56A16. Sends 3 bytes to Syscon.
|-
| 0x3BC
| ?between 0x1 and 0x4?
| 0x2E6D97CD
| SceSysconForDriver_2E6D97CD. Gets information.
|-
| 0x3BF
| ?
| 0x240A604E
| SceSysconForDriver_240A604E. Sends 2 bytes to Syscon.
|-
|-
| 0x88D
| 0x3C2
| ?
| ?
| 0xDD16ABD9
| 0x5946B29B, 0x10327C64
| ??
| SceSysconForDriver_5946B29B / SceSysconForDriver_10327C64. Sends 2 bytes to Syscon: 0 or 1. Used in [[SceSblUpdateMgr]]
|-
|-
| 0x88E
| 0x400
| ?0x2?
| ?
| 0x7F198FA2
| 0x270B7B0B
| Maybe related to clock frequency. See [[Ernie#CMD_0x088E]].
| sceSysconMotionGetMeasureDataForDriver
|-
|-
| 0x88F
| 0x480
| ?0x2?
| 4
| 0x40FF3898
| 0xD01E64FC
| sceSysconCtrlDeviceResetForDriver. ?UsbEtherSmsc and WlanBt related?
| sceSysconMotionGetDeviceInfoForDriver
|-
|-
| 0x890
| 0x481
| ?
| ?
| 0x285594F8
| 0x9A7858B6
| ??
| SceSysconForDriver_9A7858B6. Sends 3 bytes to Syscon.
|-
|-
| 0x891
| 0x800
| ?0x2?
| ?0x2 or 0x4?
| 0x04EC7579
| 0xA2FE9BF9
| sceSysconCtrlLEDForDriver
| SceSysconForDriver_A2FE9BF9. [[ScePower#ScePowerForDriver_8C0D2051]] related.
|-
|-
| 0x892
| 0x801
| ?0?
| 0x0
| 0x596B17B7
|  
| SceSysconForDriver_596B17B7. [[ScePower]] related.
| ??
|-
|-
| 0x893
| 0x802
| ?0?
| ?0x4?
| 0x2A4B0437
| 0xC562AF3A
| SceSysconForDriver_2A4B0437. [[ScePower]] related.
| sceSysconGetBatteryRemainCapForDriver. Replaced by Syscon command 0x900 on Syscon version > 0x70503.
|-
|-
| 0x895
| 0x803
| ?
| 0x4
| 0x5BF765BB
| 0x03F11220
| sceSysconReadElmoRegForDriver
| sceSysconGetBatteryVoltForDriver. Replaced by Syscon command 0x901 on Syscon version > 0x70503.
|-
|-
| 0x896
| 0x804
| ?
| ?
| 0xCCC71C28
|  
| sceSysconWriteElmoRegForDriver
| ??
|-
|-
| 0x897
| 0x805
| ?
| 4
| 0x95975DD1
| 0xEF810687
| sceSysconReadCookieRegForDriver
| sceSysconGetUsbDetStatusForDriver
|-
|-
| 0x898
| 0x806
| ?
| ?0x1?
| 0xF39300D3
| 0xE7F5D3DC
| sceSysconWriteCookieRegForDriver
| SceSysconForDriver_E7F5D3DC. Reboots PS Vita?
|-
|-
| 0x899
| 0x807
| ?0?
| 0x2
| 0x5CDDA14D
| 0x253CC522
| ?Guessed name: sceSysconCtrlHpremoteForDriver? [[SceHpremote]] related.
| SceSysconForDriver_253CC522.
|-
|-
| 0x89A
| 0x820
| ?0?
| 0x0
| 0x59DC5938
| 0x727F985A
| sceSysconCtrlUsbStatusForDriver
| sceSysconCtrlDolceLEDForDriver. Set PS TV LED on.
|-
|-
| 0x89B
| 0x821
| ?0x2?
| 0x0
| 0x710A7CF0
| 0x727F985A
| sceSysconCtrlRMRPowerForDriver
| sceSysconCtrlDolceLEDForDriver. Set PS TV LED blink slowly.
|-
|-
| 0x89C
| 0x822
| ?0x2?
| 0x0
| 0xB1F88B11
| 0x727F985A
| sceSysconCtrlDevKitUsbPowerForDriver. [[SceUsbServ]] related.
| sceSysconCtrlDolceLEDForDriver. Set PS TV LED blink fast.
|-
|-
| 0x89D
| 0x840
| ?
| ?0x1?
| 0x6F586D1A
| 0x4FEC564C
| sceSysconConfigLEDForDriver
| sceSysconGetManualChargeModeForDriver
|-
|-
| 0x89E
| 0x841
| ?
| ?0x1?
| 0x9CA6EB70
| 0x3C3B949C
| [[ScePower]] related
| SceSysconForDriver_3C3B949C
|-
|-
| 0x89F
| 0x842
| ?
| ?0x1?
| 0xCB41B531
| 0x1C29C00E
| ??
| SceSysconForDriver_1C29C00E
|-
|-
| 0x8A0
| 0x843
| ?0x4?
| ?0x1?
| 0x9070F139
| 0x730E4725
| sceSysconGetBatteryTempForDriver. Replaced by Syscon command 0x981 on Syscon version > 0x70503.
| SceSysconForDriver_730E4725
|-
|-
| 0x8A1
| 0x880
| ?0x3B or 0x4?
| 0x4
| 0x00A65FC1
| 0xA039B563
| Replaced by Syscon command 0x982 on Syscon version > 0x70503. [[ScePower]] related.
| sceSysconGetElmoVersionForDriver
|-
|-
| 0x8A2
| 0x881
| 0x2
| ?
| 0x0826BA07
| 0x9BF78047
| sceSysconGetBatteryElecForDriver. Replaced by Syscon command 0x983 on Syscon version > 0x70503.
| sceSysconGetCookieVersionForDriver
|-
|-
| 0x8A3
| 0x882
| ?0x4?
| 0x6
| 0xB841C141
| 0x68E0031E
| sceSysconGetBatteryLifeTimeForDriver. Replaced by Syscon command 0x984 on Syscon version > 0x70503.
| sceSysconGetBatteryVersionForDriver. Replaced by Syscon command 0x980 on Syscon version > 0x70503.
|-
|-
| 0x8A4
| 0x883
| ?0x4?
| 0x8
| 0x91D3B7A3
| 0x175CE5A1
| sceSysconGetBatterySOHForDriver. Replaced by Syscon command 0x985 on Syscon version > 0x70503.
| sceSysconGetPowerStatusForDriver
|-
|-
| 0x8B0
| 0x884
| ?
| ?
| 0x2CEF078E / 0x4946538A
| 0x3FDD29D6
| sceSysconBatteryStartBLModeForDriver. Replaced by Syscon command 0x9B0 on Syscon version > 0x70503. Since FW 0.940, it is also sceSysconEnableHibernateIOForDriver independently of Syscon version.
| SceSysconForDriver_3FDD29D6. Same usage as command 0x885. Sends 2 bytes to Syscon.
|-
|-
| 0x8B1
| 0x885
| ?
| ?
| 0xE4AE7852
| 0x79E6DD8B
| sceSysconBatteryStopBLModeForDriver. Replaced by Syscon command 0x9B1 on Syscon version > 0x70503.
| SceSysconForDriver_79E6DD8B. Same usage as command 0x884. Sends 2 bytes to Syscon.
|-
|-
| 0x8B2
| 0x886
| ?
| ?0x2?
| 0xE4F29744
| 0x62155962
| sceSysconBatterySetBLCommandForDriver. Replaced by Syscon command 0x9B2 on Syscon version > 0x70503.
| sceSysconCtrlHdmiCecPowerForDriver
|-
|-
| 0x8B3
| 0x887
| ?
| ?
| 0x74B2AB55
| 0x063425AE
| sceSysconBatteryExecBLCommandForDriver. Replaced by Syscon command 0x9B3 on Syscon version > 0x70503.
| sceSysconCtrlMotionSensorPowerForDriver
|-
| 0x888
| ?0x2?
| 0xBE1ADE4F
| sceSysconCtrlSdPowerForDriver
|-
|-
| 0x8B4
| 0x889
| ?
| ?0x2?
| 0x448DAFF1
| 0x8D1D97E8
| sceSysconBatteryReadBLCommandForDriver. Replaced by Syscon command 0x9B4 on Syscon version > 0x70503.
| sceSysconCtrlAccPowerForDriver
|-
|-
| 0x8C0
| 0x88A
| ?
| ?
| 0xC6A2C9EF
| 0x4FBDA504, 0xA2E85DB9
| sceSysconCtrlManualChargeModeForDriver
| sceSysconCtrlWirelessPowerForDriver, sceSysconCtrlWirelessPower2ForDriver
|-
|-
| 0x8C5
| 0x88B
| ?0x2 or 0?
| 0x3274A925
| ??. [[SceUsbServ]] and [[SceUsbEtherSmsc]] related.
|-
| 0x8C6
| ?
| ?
| 0xDFB024C4
| 0x5A614349
| [[SceSblUpdateMgr]] related
| SceSysconForDriver_5A614349. Sends 2 bytes to Syscon.
|-
|-
| 0x8C7
| 0x88C
| ?
| ?
| 0x87FF8041
| 0xB872E904
| ??
| SceSysconForDriver_B872E904. Sends 2 bytes to Syscon.
|-
|-
| 0x8C8
| 0x88D
| ?
| ?
| 0x7BFA95DA
| 0xDD16ABD9
| ??
| SceSysconForDriver_DD16ABD9. Sends 2 bytes to Syscon.
|-
|-
| 0x8C9
| 0x88E
| ?
| 0x0
| 0x451C1662
| 0x7F198FA2
| ??
| sceSysconCtrlVoltageForDriver. See [[Ernie#CMD_0x088E_-_CtrlVoltage]].
|-
|-
| 0x8CA
| 0x88F
| ?
| ?0x2?
| 0x79074DE4
| 0x40FF3898
| ??
| sceSysconCtrlDeviceResetForDriver. ?UsbEtherSmsc and WlanBt related?
|-
|-
| 0x8CB
| 0x890
| ?
| ?
| 0x7D25F6D2
| 0x285594F8
| ??
| SceSysconForDriver_285594F8. Sends 2 bytes to Syscon.
|-
|-
| 0x8CC
| 0x891
| ?
| ?0x2?
| 0xD2ADABCA
| 0x04EC7579
| ??
| sceSysconCtrlLEDForDriver
|-
|-
| 0x8CE
| 0x892
| 0x10
| ?0?
| 0x3B354824
| 0x596B17B7
| sceSysconGetTemperatureLog
| sceSysconCtrlChargeACForDriver. [[ScePower]] related.
|-
|-
| 0x8CF
| 0x893
| 0
| ?0?
| 0x3843D657
| 0x2A4B0437
| sceSysconClearTemperatureLog. Sends 2 bytes to syscon.
| sceSysconCtrlChargeVBUSForDriver. [[ScePower]] related.
|-
| 0x895
| ?
| 0x5BF765BB
| sceSysconReadElmoRegForDriver
|-
| 0x896
| ?
| 0xCCC71C28
| sceSysconWriteElmoRegForDriver
|-
| 0x897
| ?
| 0x95975DD1
| sceSysconReadCookieRegForDriver
|-
| 0x898
| ?
| 0xF39300D3
| sceSysconWriteCookieRegForDriver
|-
| 0x899
| ?0?
| 0x5CDDA14D
| ?Guessed name: sceSysconCtrlHpremoteForDriver? [[SceHpremote]] related.
|-
| 0x89A
| ?0?
| 0x59DC5938
| sceSysconCtrlUsbStatusForDriver
|-
| 0x89B
| ?0x2?
| 0x710A7CF0
| sceSysconCtrlRMRPowerForDriver
|-
| 0x89C
| ?0x2?
| 0xB1F88B11
| sceSysconCtrlMultiCnPowerForDriver. [[SceUsbServ]] related.
|-
| 0x89D
| ?
| 0x6F586D1A
| sceSysconCtrlLedPwmBlinkForDriver
|-
| 0x89E
| ?
| 0x9CA6EB70
| sceSysconSetChargeLedCtrlForDriver. Sends 2 bytes to Syscon. [[ScePower]] related.
|-
| 0x89F
| ?
| 0xCB41B531
| sceSysconCtrlLedBlinkType2ForDriver. Sends 6 bytes to Syscon.
|-
| 0x8A0
| ?0x4?
| 0x9070F139
| sceSysconGetBatteryTempForDriver. Replaced by Syscon command 0x981 on Syscon version > 0x70503.
|-
| 0x8A1
| ?0x3B or 0x4?
| 0x00A65FC1
| sceSysconGetBatteryFullCapForDriver. Replaced by Syscon command 0x982 on Syscon version > 0x70503. [[ScePower]] related.
|-
| 0x8A2
| 0x2
| 0x0826BA07
| sceSysconGetBatteryElecForDriver. Replaced by Syscon command 0x983 on Syscon version > 0x70503.
|-
| 0x8A3
| ?0x4?
| 0xB841C141
| sceSysconGetBatteryTTEForDriver. Replaced by Syscon command 0x984 on Syscon version > 0x70503.
|-
| 0x8A4
| ?0x4?
| 0x91D3B7A3
| sceSysconGetBatterySOHForDriver. Replaced by Syscon command 0x985 on Syscon version > 0x70503.
|-
| 0x8A8
| 2
| 0xC2FB5565
| sceSysconReadBatteryRegForDriver. Replaced by Syscon command 0x986 on Syscon version > 0x70503.
|-
| 0x8A9
| ?
| 0x9B779DB0
| sceSysconWriteBatteryRegForDriver. Replaced by Syscon command 0x987 on Syscon version > 0x70503.
|-
| 0x8AA
| 2
| 0xA5AB19B1
| SceSysconForDriver_A5AB19B1. Replaced by Syscon command 0x988 on Syscon version > 0x70503.
|-
| 0x8B0
| ?
| 0x4946538A
| sceSysconBatteryStartBLModeForDriver. Replaced by Syscon command 0x9B0 on Syscon version > 0x70503. Since FW 0.940, it is also used by sceSysconEnableHibernateIOForDriver independently of Syscon version.
|-
| 0x8B1
| ?
| 0xE4AE7852
| sceSysconBatteryStopBLModeForDriver. Replaced by Syscon command 0x9B1 on Syscon version > 0x70503.
|-
| 0x8B2
| ?
| 0xE4F29744
| sceSysconBatterySetBLCommandForDriver. Replaced by Syscon command 0x9B2 on Syscon version > 0x70503.
|-
| 0x8B3
| ?
| 0x74B2AB55
| sceSysconBatteryExecBLCommandForDriver. Replaced by Syscon command 0x9B3 on Syscon version > 0x70503.
|-
| 0x8B4
| ?
| 0x448DAFF1
| sceSysconBatteryReadBLCommandForDriver. Replaced by Syscon command 0x9B4 on Syscon version > 0x70503.
|-
| 0x8C0
| ?
| 0xC6A2C9EF
| sceSysconCtrlManualChargeModeForDriver (accepts 0 / 1 as value)
|-
| 0x8C1
| ?
| ??
| sceSysconCtrlBatteryChargeForDriver (accepts 0 / 1 as value)
|-
| 0x8C2
| ?
| ??
| sceSysconCtrlChargingCurrentForDriver (accepts 0x00 - 0x1F as value)
|-
| 0x8C3
| ?
| ??
| sceSysconCtrlSupplyCurrentAcForDriver (accepts 0x00 - 0x19 as value)
|-
| 0x8C4
| ?
| ??
| sceSysconCtrlSupplyCurrentUsbForDriver (accepts 0x00 - 0x19 as value)
|-
| 0x8C5
| ?0x0 or 0x2?
| 0x3274A925
| SceSysconForDriver_3274A925. [[SceUsbServ]] and [[SceUsbEtherSmsc]] related.
|-
| 0x8C6
| ?
| 0xDFB024C4
| sceSysconReadCookieStatusForDriver. [[SceSblUpdateMgr]] related.
|-
| 0x8C7
| ?
| 0x87FF8041
| SceSysconForDriver_87FF8041. Sends 2 bytes to Syscon.
|-
| 0x8C8
| ?
| 0x7BFA95DA
| sceSysconCtrlUSBSupplyForDriver. Sends 2 bytes to Syscon.
|-
| 0x8C9
| ?0?
| 0x451C1662
| SceSysconForDriver_451C1662. Sends 2 bytes to Syscon.
|-
| 0x8CA
| 1
| 0x79074DE4
| SceSysconForDriver_79074DE4. Sends 0 byte to Syscon.
|-
| 0x8CB
| 1
| 0x7D25F6D2
| SceSysconForDriver_7D25F6D2. Sends 1 byte to Syscon.
|-
| 0x8CC
| ?0?
| 0xD2ADABCA
| SceSysconForDriver_D2ADABCA. Sends 2 bytes to Syscon.
|-
| 0x8CE
| 0x10
| 0x3B354824
| sceSysconGetTemperatureLogForDriver
|-
| 0x8CF
| 0
| 0x3843D657
| sceSysconClearTemperatureLogForDriver. Sends 2 bytes to syscon.
|-
|-
| 0x8D0
| 0x8D0
| ?
| ?
| 0xF87679EE
| 0xF87679EE
| ??
| SceSysconForDriver_F87679EE. Sends 2 bytes to Syscon.
|-
|-
| 0x900
| 0x900
| ?0x4?
| ?0x4?
| 0xC562AF3A
| 0xC562AF3A
| sceSysconGetBatteryRemainCapacityForDriver. Replaces Syscon command 0x802 on Syscon version > 0x70503.
| sceSysconGetBatteryRemainCapForDriver. Replaces Syscon command 0x802 on Syscon version > 0x70503.
|-
|-
| 0x901
| 0x901
Line 4,186: Line 4,746:
| ?0x4?
| ?0x4?
| 0x00A65FC1
| 0x00A65FC1
| Replaces Syscon command 0x8A1 on Syscon version > 0x70503. [[ScePower]] related.
| sceSysconGetBatteryFullCapForDriver. Replaces Syscon command 0x8A1 on Syscon version > 0x70503. [[ScePower]] related.
|-
|-
| 0x983
| 0x983
Line 4,196: Line 4,756:
| ?0x4?
| ?0x4?
| 0xB841C141
| 0xB841C141
| sceSysconGetBatteryLifeTimeForDriver. Replaces Syscon command 0x8A3 on Syscon version > 0x70503.
| sceSysconGetBatteryTTEForDriver. Replaces Syscon command 0x8A3 on Syscon version > 0x70503.
|-
|-
| 0x985
| 0x985
Line 4,202: Line 4,762:
| 0x91D3B7A3
| 0x91D3B7A3
| sceSysconGetBatterySOHForDriver. Replaces Syscon command 0x8A4 on Syscon version > 0x70503.
| sceSysconGetBatterySOHForDriver. Replaces Syscon command 0x8A4 on Syscon version > 0x70503.
|-
| 0x986
| 2
| 0xC2FB5565
| sceSysconReadBatteryRegForDriver. Replaces Syscon command 0x8A8 on Syscon version > 0x70503.
|-
| 0x987
| ?
| 0x9B779DB0
| sceSysconWriteBatteryRegForDriver. Replaces Syscon command 0x8A9 on Syscon version > 0x70503.
|-
| 0x988
| 2
| 0xA5AB19B1
| SceSysconForDriver_A5AB19B1. Replaces Syscon command 0x8AA on Syscon version > 0x70503.
|-
|-
| 0x989
| 0x989
Line 4,209: Line 4,784:
|-
|-
| 0x98A
| 0x98A
| ?0x4?
| ?between 0x2 and 0x4?
| 0xF93CF833
| 0xF93CF833
| sceSysconGetBatteryFullCapacityForDriver
| sceSysconGetBatteryFullCapForDriver
|-
|-
| 0x98B
| 0x98B
| ?
| ?between 0x2 and 0x4?
| 0xE1885F68
| 0xECFA7242 / 0xE1885F68
| ??
| sceSysconGetBicTempForDriver / sceSysconGetAbbyTempForDriver
|-
|-
| 0x98C
| 0x98C
Line 4,225: Line 4,800:
| 0x9B0
| 0x9B0
| ?
| ?
| 0x2CEF078E
| 0x2CEF078E / 0x4946538A
| sceSysconBatteryStartBLModeForDriver. Replaces Syscon command 0x8B0 on Syscon version > 0x70503.
| sceSysconBatteryStartBLModeForDriver. Replaces Syscon command 0x8B0 on Syscon version > 0x70503. Since FW 0.940, it is also used by sceSysconEnableHibernateIOForDriver independently of Syscon version.
|-
|-
| 0x9B1
| 0x9B1
Line 4,256: Line 4,831:
| ?
| ?
| 0x7BAFE083
| 0x7BAFE083
| ??
| SceSysconForDriver_7BAFE083. Sends 2 bytes to Syscon.
|-
|-
| 0x1080
| 0x1080
Line 4,269: Line 4,844:
|-
|-
| 0x1082
| 0x1082
| ?
| ?around 0x20?
| 0xACAFA2B8
| 0xACAFA2B8
| sceSysconNvsReadDataForDriver
| sceSysconNvsReadDataForDriver
Line 4,296: Line 4,871:
| ?
| ?
| 0x356B9696, 0x734544E4
| 0x356B9696, 0x734544E4
| sceSysconUpdaterLoadSegmentForDriver, sceSysconUpdaterLoadSegment2ForDriver
| sceSysconUpdaterSendProgramDataForDriver, sceSysconUpdaterSendProgramData2ForDriver
|-
|-
| 0x1182
| 0x1182
Line 4,316: Line 4,891:
| ?
| ?
| 0xCBA836FF
| 0xCBA836FF
| SceSysconForDriver_CBA836FF
| sceSysconUpdaterCheckSignatureForDriver. Sends 0x18 bytes to Syscon.
|-
|-
| 0x1300
| 0x1300
| 0x8
| 0x8
|  
| 0xCE48E8EB
| ??
| sceSysconGetConfigStorageInfoForDriver
|-
|-
| 0x1310
| 0x1310
| 0x1
| 0x1
| 0x351946B0
| 0x351946B0
| ??
| SceSysconForDriver_351946B0
|-
|-
| 0x1382
| 0x1382
| ?
| ?
| 0xA4968B8C
| 0xA4968B8C
| sceSysconBeginConfigstorageTransactionForDriver
| sceSysconBeginConfigstorageTransactionForDriver. Sends 1 byte to Syscon: 0.
|-
|-
| 0x1383
| 0x1383
| ?
| ?
| 0xFCC3E8EE
| 0xFCC3E8EE
| sceSysconEndConfigstorageTransactionForDriver
| sceSysconEndConfigstorageTransactionForDriver. Sends 1 byte to Syscon: 0.
|-
|-
| 0x1384
| 0x1384
| ?
| ?
| 0x7B9B3617
| 0x7B9B3617
| sceSysconCommitConfigstorageTransactionForDriver
| sceSysconCommitConfigstorageTransactionForDriver. Sends 1 byte to Syscon: 0.
|-
|-
| 0x1385
| 0x1385
| ?
| ?
| 0x89C5CFD6
| 0x89C5CFD6
| sceSysconLoadConfigstorageScriptForDriver
| sceSysconLoadConfigstorageScriptForDriver. Sends (3 + script_size) bytes to Syscon: script_size (1 byte), unk, script (variable length).
|-
|-
| 0x1386 (called from ARM Kernel but not implemented in Syscon FW)
| 0x1386 (called from ARM Kernel but not implemented in Syscon FW)
| ?
| ?
| 0xCC6F90A8
| 0xCC6F90A8
| sceSysconVerifyConfigstorageScriptForDriver
| sceSysconVerifyConfigstorageScriptForDriver. Sends (3 + script_size) bytes to Syscon: script_size (1 byte), unk, script (variable length).
|-
|-
| 0x1392
| 0x1392
| ?
| ?0?
| 0xFD65FFCB
| 0xFD65FFCB
| ??
| SceSysconForDriver_FD65FFCB. Sends 3 bytes to Syscon: 1 byte offset (between 0 and 0xFF), 2 bytes a2 (between 0 and 2).
|-
|-
| 0x1393
| 0x1393
| ?
| ?
| 0x02350352
| 0x02350352
| ??
| SceSysconForDriver_02350352. Sends 2 bytes to Syscon: offset (between 0 and 0xFF)
|-
|-
| 0x1394
| 0x1394
| ?
| ?
| 0x7DE84CE3
| 0x7DE84CE3
| ??
| SceSysconForDriver_7DE84CE3. Sends 2 bytes to Syscon: offset (between 0 and 0xFF)
|-
|-
| 0x2080
| 0x2080
Line 4,385: Line 4,960:
| 0x2083
| 0x2083
| ?
| ?
|  
| 0x3C80B529
|  
| receive_pm_sm_jig_msg_from_syscon
|-
|-
| 0x2084
| 0x2084
| ?
| ?
|  
| 0xCE346793
|  
| send_pm_sm_jig_short_msg_to_syscon
|-
|-
| 0x2085
| 0x2085
| ?
| ?
|  
| 0x7BFBA09E / 0x933D813F
|  
| send_pm_sm_jig_msg_to_syscon / send_pm_sm_stop_to_syscon
|}
|}


Line 4,414: Line 4,989:
| SYSCON_CB_ALARM || [[#sceSysconSetAlarmCallbackForDriver]] || NA || [[ScePower]] ||
| SYSCON_CB_ALARM || [[#sceSysconSetAlarmCallbackForDriver]] || NA || [[ScePower]] ||
|-
|-
| ? || [[#SceSysconForDriver_18A6F4D9]] || [[#SceSysconForDriver_C0F215B7]] || No use case seen. ||
| ?SYSCON_CB_WLANBT? || [[#SceSysconForDriver_18A6F4D9]] || [[#SceSysconForDriver_C0F215B7]] || [[SceWlanBt]] but not used on <= 0.996.090 ||
|-
|-
| ?SYSCON_CB_HEADPHONE? || [[#SceSysconForDriver_DE613081]] || [[#SceSysconForDriver_C3504ADE]] || [[SceHpremote]] ||
| ?SYSCON_CB_HEADPHONE? || [[#SceSysconForDriver_DE613081]] || [[#SceSysconForDriver_C3504ADE]] || [[SceHpremote]] ||
Line 4,450: Line 5,025:
| ? || [[#SceSysconForDriver_2E4BA4B8]] || [[#SceSysconForDriver_29CF4335]] || No use case seen. || Used in [[SceSblPostSsMgr]].
| ? || [[#SceSysconForDriver_2E4BA4B8]] || [[#SceSysconForDriver_29CF4335]] || No use case seen. || Used in [[SceSblPostSsMgr]].
|-
|-
| ? || [[#SceSysconForDriver_4E88B4D9]] || [[#SceSysconForDriver_4BC63A40]] || No use case seen. || Used in [[SceSblPostSsMgr]].
| ? || [[#SceSysconForDriver_4E88B4D9]] || [[#SceSysconForDriver_4BC63A40]] || [[SceBbmc]] || Used in [[SceSblPostSsMgr]].
|-
|-
| ? || [[#SceSysconForDriver_376CCCB8]] || [[#SceSysconForDriver_99A254A9]] || No use case seen. ||
| ? || [[#SceSysconForDriver_376CCCB8]] || [[#SceSysconForDriver_99A254A9]] || No use case seen. ||
Line 4,456: Line 5,031:
| ? || [[#SceSysconForDriver_3BAAC8A9]] || [[#SceSysconForDriver_9A4F4B7C]] || No use case seen. ||
| ? || [[#SceSysconForDriver_3BAAC8A9]] || [[#SceSysconForDriver_9A4F4B7C]] || No use case seen. ||
|-
|-
| ? || [[#SceSysconForDriver_85E5DEBF]] || [[#SceSysconForDriver_63B14156]] || No use case seen. ||
| ? || [[#SceSysconForDriver_85E5DEBF]] || [[#SceSysconForDriver_63B14156]] || [[SceBbmc]] ||
|-
|-
| ? || [[#SceSysconForDriver_14730196]] || NA || No use case seen. ||
| ? || [[#SceSysconForDriver_14730196]] || NA || No use case seen. ||
Line 4,471: Line 5,046:
See also [http://uofw.github.io/upspd/docs/SilverSpring_Blog/my.malloc.us/silverspring/2007/12/03g-model-psp/index.html SilverSpring's PSP Syscon callbacks enum] and [https://github.com/pspdev/pspsdk/blob/master/src/power/psppower.h PSPSDK power callbacks enum].
See also [http://uofw.github.io/upspd/docs/SilverSpring_Blog/my.malloc.us/silverspring/2007/12/03g-model-psp/index.html SilverSpring's PSP Syscon callbacks enum] and [https://github.com/pspdev/pspsdk/blob/master/src/power/psppower.h PSPSDK power callbacks enum].


 
[[Category:ARM]]
[[Category:Kernel]]
[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Library]]

Latest revision as of 21:59, 4 April 2024

SceSyscon is a kernel module in charge of interacting with the System Controller by executing commands.

Module

Version World Privilege
0.931.010-3.740.011 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.931.010-3.740.011 SceSysconForDriver Non-secure Kernel 0x60A35F64

Types

#define SCE_KERNEL_ERROR_SYSCON_ERROR     0x80250000
#define SCE_SYSCON_ERROR_INVALID_SIZE     0x80250001
#define SCE_SYSCON_ERROR_INVALID_ARGUMENT 0x80250002
#define SCE_SYSCON_ERROR_INVALID_POINTER  0x80250003
#define SCE_SYSCON_ERROR_INVALID_STATUS   0x80250004
#define SCE_SYSCON_ERROR_NOT_INTR_ALLOWED 0x80250005
#define SCE_SYSCON_ERROR_TX_SIZE_TOO_LONG 0x80250006

#define SCE_SYSCON_ERROR_ILLEGAL_SIZE     0x80250100
#define SCE_SYSCON_ERROR_ILLEGAL_STATUS   0x80250101
#define SCE_SYSCON_ERROR_NOEXEC           0x80250102
#define SCE_SYSCON_ERROR_INVALID_FLAGS    0x80250105

// Syscon error codes are gotten with 0x80250200 | rx[3], where rx is the data returned by Syscon

typedef struct SceSysconPacket { // size is 0x80
	struct SceSysconPacket *next;
	SceUInt32 status;		// Lower 16 bits contain flags
	SceUID semaId;
	SceUInt32 index;		// Out: returns to which packet list the packet was inserted into
	SceUInt8 tx[32];		// tx[0..1] = cmd, tx[2] = size i.e. sizeof(actual_data)+1, rx[3..31] = actual_data
	SceUInt8 rx[32];		// rx[0..1] = cmd, rx[2] = size i.e. sizeof(actual_data)+2, rx[3] = error_code, rx[4..31] = actual_data
	void *tx_extra;
	void *rx_extra;
	SceSize rx_extra_size;
	SceUInt32 rx_offset;
	int (*callback)(SceSysconPacket *packet, void *argp);
	void *argp;
	SceUInt32 time;
	SceUInt32 unk[5];
} SceSysconPacket;

typedef enum SceSysconControl {
	SCE_SYSCON_CTRL_UP        = 0x1,
	SCE_SYSCON_CTRL_RIGHT     = 0x2,
	SCE_SYSCON_CTRL_DOWN      = 0x4,
	SCE_SYSCON_CTRL_LEFT      = 0x8,
	SCE_SYSCON_CTRL_TRIANGLE  = 0x10,
	SCE_SYSCON_CTRL_CIRCLE    = 0x20,
	SCE_SYSCON_CTRL_CROSS     = 0x40,
	SCE_SYSCON_CTRL_SQUARE    = 0x80,
	SCE_SYSCON_CTRL_SELECT    = 0x100,
	SCE_SYSCON_CTRL_LTRIGGER  = 0x200,
	SCE_SYSCON_CTRL_RTRIGGER  = 0x400,
	SCE_SYSCON_CTRL_START     = 0x800,
	SCE_SYSCON_CTRL_PSBUTTON  = 0x1000,
	SCE_SYSCON_CTRL_POWER     = 0x4000,
	SCE_SYSCON_CTRL_VOLUP     = 0x10000,
	SCE_SYSCON_CTRL_VOLDOWN   = 0x20000,
	SCE_SYSCON_CTRL_HEADPHONE = 0x8000000
} SceSysconControl;

Flags (passed to sceSysconCmdExecForDriver, etc), also lower bits of status:

Flags Meaning
0x1 Some kind of priority that helps to select to which packet list the packet is inserted into.
0x100 Do not insert packet checksum (at tx_buf[2 + len]), where len = tx_buf[2]. And don't memset the rest of the buffer to -1 (memset(tx_buf + len + 3, -1, 29 - len)) if len < 29.
0x400 When set, use rx_extra to receive the data. rx_extra_size must be greater than 32.
0x800 When set, use tx_extra instead of tx for sending data. The size is contained in tx_extra[2] and must be smaller or equal to 253. When cleared: use tx and the size is contained in tx[2], which has to be smaller or equal 29.

SceSysconForDriver

sceSysconErnieShutdownForDriver

Version NID
0.931.010-3.740.011 0x94AB13CC

Calls Syscon command 0xC1.

#define ERNIE_SHUTDOWN_SHUTDOWN 0
#define ERNIE_SHUTDOWN_REBOOT 1

int sceSysconErnieShutdownForDriver(int mode);

sceSysconErnieResetForDriver

Version NID
0.931.010-3.740.011 0x14B99945

This is a guessed name. Temp name was sceSysconPowerCtrlKermitResetForDriver.

It issues SMC 0x11A with type=RESET and mode=0: return sceSysconSetPowerModeForDriver(2, 0);.

int sceSysconErnieResetForDriver(void);

sceSysconErnieHibernateForDriver

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0x4278E614

It issues SMC 0x11A with type=HIBERNATE and mode=0: return sceSysconSetPowerModeForDriver(5, 0);.

int sceSysconErnieHibernateForDriver(void);

sceSysconBatterySWResetForDriver

Version NID
0.931.010-3.740.011 0x87DA378D

If Syscon version <= 0x70503, it does nothing and returns error 0x8025023F.

int sceSysconBatterySWResetForDriver(void);

sceSysconGetBatteryFullCapForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0xF93CF833

Temp name was sceSysconGetBatteryFullCapacityForDriver.

Used in ScePower's module_start.

int sceSysconGetBatteryFullCapForDriver(SceUInt32 *pCap);

sceSysconGetBicTempForDriver

Version NID
0.931.010-0.940 not present
0.990.000 0xECFA7242
1.000.041-3.740.011 not present. Renamed to sceSysconGetAbbyTempForDriver.

This is a guessed name. Another possible name is sceSysconGetBatteryInternalTempForDriver.

Replaced (just renaming) by #sceSysconGetAbbyTempForDriver.

Calls Syscon command 0x98B.

int sceSysconGetBicTempForDriver(SceUInt32 *pTemp);

sceSysconGetAbbyTempForDriver

Version NID
0.931.010-0.990.000 not present. Was named sceSysconGetBicTempForDriver.
1.000.041-3.740.011 0xE1885F68

This is a guessed name. Another possible name is sceSysconGetBatteryInternalTempForDriver.

Replacement (just renaming) for #sceSysconGetBicTempForDriver.

Calls Syscon command 0x98B.

int sceSysconGetAbbyTempForDriver(SceUInt32 *pTemp);

sceSysconGetBatteryCycleCountForDriver

Version NID
0.931.010-0.990.000 not present
0.996.090-3.740.011 0xCD73079D

Calls Syscon command 0x98C.

Used in ScePower.

int sceSysconGetBatteryCycleCountForDriver(SceUInt32 *pCount);

sceSysconBatteryStartBLModeForDriver

Version NID
0.931.010-3.740.011 0x2CEF078E
int sceSysconBatteryStartBLModeForDriver(void);

sceSysconBatteryStopBLModeForDriver

Version NID
0.931.010-3.740.011 0xE4AE7852
int sceSysconBatteryStopBLModeForDriver(void);

sceSysconBatterySetBLCommandForDriver

Version NID
0.931.010-3.740.011 0xE4F29744

BL command (1 byte at most) must be contained in either unk_byte or pSrc.

int sceSysconBatterySetBLCommandForDriver(SceUInt16 ctx, SceUInt8 unk_byte, void *pSrc, SceUInt8 size);

sceSysconBatteryExecBLCommandForDriver

Version NID
0.931.010-3.740.011 0x74B2AB55
int sceSysconBatteryExecBLCommandForDriver(SceUInt16 ctx);

sceSysconBatteryReadBLCommandForDriver

Version NID
0.931.010-3.740.011 0x448DAFF1
// size must be between 0 and 0x10
int sceSysconBatteryReadBLCommandForDriver(SceUInt16 ctx, SceUInt8 unk1, SceUInt8 unk2, void *pDst, SceUInt8 size);

sceSysconGetManualChargeModeForDriver

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x4FEC564C
int sceSysconGetManualChargeModeForDriver(int *piMode);

sceSysconCtrlManualChargeModeForDriver

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0xC6A2C9EF
int sceSysconCtrlManualChargeModeForDriver(int mode);

sceSysconSetClockForDriver

Version NID
0.931.010-3.740.011 0x9B6A6F64

Calls Syscon command 0x81.

Sets current Syscon power on time in ticks of 0.5 second. The set value can be get with #sceSysconGetClockForDriver.

Used in SceRtc. Set to 0 just before setting Current Tick, to reset syscon power on time.

int sceSysconSetClockForDriver(SceUInt32 time);

SceSysconForDriver_51164951

Version NID
0.931.010-3.740.011 0x51164951

Calls Syscon command 0x82. On Syscon version < 0x90907, 4 bytes are sent to Syscon, whilst on Syscon version >= 0x90907, 5 bytes are sent to Syscon.

Sets an alarm tick. The set tick can be get using Syscon command 0x12 via #SceSysconForDriver_3168F3AF.

Used in SceRtc#sceRtcSetAlarmTickForDriver.

// FW 0.931.010
int SceSysconForDriver_51164951(void *tick);

// FW 3.600.011-3.740.011
// tick_low: seen value: 0xffffffff during Syscon Init
// tick_hi: some 8-bit flag, seen value: 0 during Syscon Init
int SceSysconForDriver_51164951(SceUint32 tick_low, SceUInt8 tick_hi);

SceSysconForDriver_373ECF8A

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0x373ECF8A

Calls Syscon command 0x83. Sends 3 bytes to Syscon. Used only if Hardware Info indicates that the motherboard is not IRT-001 or IRT-002 or type 0x10 (maybe named IRS-001) and if console is not in manufacturing mode.

int SceSysconForDriver_373ECF8A(SceUInt32 unk);

SceSysconForDriver_2659535C

Version NID
0.931.010 not present
0.990.000-3.740.011 0x2659535C

Calls Syscon command 0x84. Sends 1 byte to Syscon: 0.

int SceSysconForDriver_2659535C(void);

SceSysconForDriver_4295D497

Version NID
0.931.010 not present
0.990.000-3.740.011 0x4295D497

Calls Syscon command 0x85. Sends 1 byte to Syscon: 0.

int SceSysconForDriver_4295D497(void);

sceSysconGetLogInfoForDriver

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0x701535FC

Calls Syscon command 0x86.

typedef struct SceSysconLogInfo { // size is 8 on FW 3.600.011
   uint8_t unk_0[8];
} SceSysconLogInfo;

int sceSysconGetLogInfoForDriver(SceSysconLogInfo *pInfo);

sceSysconLogStartForDriver

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0x4E55CF5E

Calls Syscon command 0x87. Sends 1 byte to Syscon: 0.

int sceSysconLogStartForDriver(void);

sceSysconLogReadDataForDriver

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0x487D97F3

Calls Syscon command 0x88.

int sceSysconLogReadDataForDriver(SceUInt16 offset, void *pData, SceSize size);

sceSysconLogStartWaitingForDriver

Version NID
0.931.010-2.12 not present
2.500.071-3.740.011 0x9C0B1E61

Calls Syscon command 0x89.

int sceSysconLogStartWaitingForDriver(void);

sceSysconCtrlUSBSupplyForDriver

Version NID
3.600.011-3.740.011 0x7BFA95DA

This function is used instead of #sceSysconCtrlChargeVBUSForDriver on PS Vita Slim.

Calls Syscon command 0x8C8. Sends 1 byte to Syscon. Gets 0 byte from Syscon.

Used in factTest module.

int sceSysconCtrlUSBSupplyForDriver(SceUInt8 data);

SceSysconForDriver_451C1662

Version NID
3.600.011-3.740.011 0x451C1662

Calls Syscon command 0x8C9. Sends 1 byte to Syscon. Gets 0 byte from Syscon.

int SceSysconForDriver_451C1662(SceUInt8 data);

SceSysconForDriver_79074DE4

Version NID
3.600.011-3.740.011 0x79074DE4

Calls Syscon command 0x8CA. Sends 0 byte to Syscon. Gets 1 bytes from Syscon: data.

int SceSysconForDriver_79074DE4(SceUInt8* pData);

SceSysconForDriver_7D25F6D2

Version NID
3.600.011-3.740.011 0x7D25F6D2

Calls Syscon command 0x8CB. Sends 1 byte to Syscon: id. Gets 1 bytes from Syscon: data.

int SceSysconForDriver_7D25F6D2(SceUInt8 id, SceUInt8* pData);

SceSysconForDriver_D2ADABCA

Version NID
3.600.011-3.740.011 0xD2ADABCA

Calls Syscon command 0x8CC. Sends 2 bytes from Syscon: id, data.

int SceSysconForDriver_D2ADABCA(SceUInt8 id, SceUInt8 data);

sceSysconGetTemperatureLogForDriver

Version NID
0.931.010-2.12 not present
2.500.071-3.740.011 0x3B354824

Calls Syscon command 0x8CE. Gets 0x10 bytes from Syscon.

typedef struct SceSysconTemperatureLog { // size is 0x10 bytes
    char log[16];
} SceSysconTemperatureLog;

int sceSysconGetTemperatureLogForDriver(SceSysconTemperatureLog *pLog);

sceSysconClearTemperatureLogForDriver

Version NID
0.931.010-2.12 not present
2.500.071-3.740.011 0x3843D657

Calls Syscon command 0x8CF. Sends 2 bytes to Syscon.

int sceSysconClearTemperatureLogForDriver(SceUInt32 unk);

SceSysconForDriver_F87679EE

Version NID
0.931.010-2.12 not present
3.600.011-3.740.011 0xF87679EE

Calls Syscon command 0x8D0. Sends 2 bytes to Syscon.

Probably related to Syscon Temperature Log.

int SceSysconForDriver_F87679EE(SceUInt32 unk);

sceSysconGetUsbDetStatusForDriver

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0xEF810687

Calls Syscon command 0x805.

Maybe supported by PS TV or PS Vita Slim only.

int sceSysconGetUsbDetStatusForDriver(SceUInt32 *pStatus);

SceSysconForDriver_E7F5D3DC

Version NID
0.931.010-1.692.000 not present
2.100.081-3.740.011 0xE7F5D3DC

Calls Syscon command 0x806.

Maybe supported by PS TV or PS Vita Slim only.

On PS TV returns data 0x00000000

int SceSysconForDriver_E7F5D3DC(SceUInt32 *pResult);

SceSysconForDriver_253CC522

Version NID
0.931.010-1.692.000 not present
2.100.081-3.740.011 0x253CC522

Calls Syscon command 0x807. Gets 2 bytes from Syscon.

On DevKit, it returns 0x8025023F. Maybe supported by PS TV or PS Vita Slim only.

On PS TV returns data 0xca1a

int SceSysconForDriver_253CC522(SceUInt16 *pResult);

sceSysconCtrlDolceLEDForDriver

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x727F985A

This is a guessed name.

#define STATE_ON 0
#define STATE_BLINK_SLOW 1
#define STATE_BLINK_FAST 2

int sceSysconCtrlDolceLEDForDriver(SceUInt32 state);

sceSysconGetTimeStampForDriver

Version NID
0.931.010-3.740.011 0x4D588A0A

This is a guessed named, derived from PSP. Temp name was sceSysconGetBaryonTimestampForDriver.

Returns the timestamp of latest installed Syscon firmware patch, formatted as YYYYMMDDhhmm. This comes from a string stored in Syscon firmware under another format: $Date:: YYYY-MM-DD hh:mm:ss +0900#$

Example: $Date:: 2013-12-13 15:52:05 +0900#$ in Syscon firmware becomes 201312131552 in Syscon command 2.

// pTimestamp will point to a buffer of size 0x10 bytes, containing a string of size 13 (12: length + 1: terminal character)
int sceSysconGetTimeStampForDriver(char *pTimestamp);

sceSysconGetWakeupFactorForDriver

Version NID
0.931.010-3.740.011 0xCF5B2F2F

Result is 2 bytes wakeup factor coming from Syscon command 0x10.

Used in SceWlanBt.

int sceSysconGetWakeupFactorForDriver(SceUInt32 *pWakeupFactor);

sceSysconCtrlHdmiCecPowerForDriver

Version NID
0.931.010-3.740.011 0x62155962

If Syscon version is strictly lower than 0x40000, it does nothing and returns 0.

Sets the pin CDC Hot Plug Detect (HPD) state of the HDMI bridge (AD80244 / ADV7533).

int sceSysconCtrlHdmiCecPowerForDriver(SceBool enable_HDMI_CDC_HPD_pin);

sceSysconCtrlMotionSensorPowerForDriver

Version NID
0.931.010-3.740.011 0x063425AE

This is a guessed name.

If Syscon version is strictly lower than 0x40000, it does nothing and returns 0.

int sceSysconCtrlMotionSensorPowerForDriver(SceBool enable);

SceSysconForDriver_3FDD29D6

Version NID
0.931.010-3.740.011 0x3FDD29D6

Calls Syscon command 0x884. Sends 2 bytes to Syscon.

int SceSysconForDriver_3FDD29D6(int value, SceBool use_flag);

SceSysconForDriver_79E6DD8B

Version NID
0.931.010-3.740.011 0x79E6DD8B

Calls Syscon command 0x885. Sends 2 bytes to Syscon.

int SceSysconForDriver_79E6DD8B(int value, SceBool use_flag);

sceSysconCtrlVoltageForDriver

Version NID
0.920.050-3.740.011 0x7F198FA2

Temp name was sceSysconSetVoltageForDriver.

Calls Syscon command 0x88E.

Used in ScePower.

/*
type:
0: Reserved
1: DD1 (VDD - IFTU, DMAC, Internal bus, SPM 32KiB/128KiB) SetSysClockFrequency, SetDmac5ClockFrequency, SetBusClockFrequency, SetCameraBusClockFrequency
2: DD2 (VDDA - ARM core, L2 cache) SetArmClockFrequency
3: DD3 (VDDC - Codec Engine, AVC Decoder) SetVipClockFrequency, SetVeneziaClockFrequency
4: DD4 (VDDG - GPU core) SetGpuClockFrequencyInternal, SetGpuXbarClockFrequency, SetCompatClockFrequency

vid:
0x22 (0.34V)
0x8A (1.38V) - (something got from ScePervasiveForDriver)
*/

#define SCE_SYSCON_VOLTAGE_DD1 (1)
#define SCE_SYSCON_VOLTAGE_DD2 (2)
#define SCE_SYSCON_VOLTAGE_DD3 (3)
#define SCE_SYSCON_VOLTAGE_DD4 (4)

int sceSysconCtrlVoltageForDriver(SceUInt32 type, SceUInt32 vid);

sceSysconSetPowerModeForDriver

Version NID
0.931.010-3.740.011 0x8A95D35C

Temp name was sceSysconResetDeviceForDriver.

It issues SMC 0x11A.

The mode argument is usually set to 0x2 or sometimes 0x8002 (which seems to correspond to some request by the UDC and BT drivers).

The type argument determines what to do.

Real definition names are like: "SCE_SYSCON_POWERMODE_MODE_STANDBY".

Type Description Syscon command arguments {cmd_no_low, cmd_no_hi, args_size, args}
0 Power off {0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}
1 Suspend (low-power state) {0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}
2 Reset (cold reset) {0x01, 8, 1, 0}
3 Reset to external boot mode {0xC1, 0, 2, 0}
4 ?Reset to update mode? {0xC1, 0, 2, 1}
5 Hibernate {0xC2, 0, 2, 0x5A}
16 ?Resume? {0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}
17 Resume (soft reset: suspend and immediately resume) {0xC0, 0, 5, type, (~mode) & 0xFF, (~mode >> 8) & 0xFF, (mode >> 16) & 0xFF}
int sceSysconSetPowerModeForDriver(int type, int mode);

sceSysconEnableHibernateIOForDriver

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0x4946538A
int sceSysconEnableHibernateIOForDriver(int maybe_enable);

sceSysconWaitReadyForDriver

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0x55DF1C9B

Temp name was sceSysconWaitInitializedForDriver.

int sceSysconWaitReadyForDriver(void);

sceSysconCmdSyncForDriver

Version NID
0.931.010-3.740.011 0x6E517D22
int sceSysconCmdSyncForDriver(SceSysconPacket *packet, int noWait);

sceSysconCmdExecForDriver

Version NID
0.931.010-3.740.011 0x9ADDCA4A
int sceSysconCmdExecForDriver(SceSysconPacket *packet, unsigned int flags);

sceSysconCmdExecAsyncForDriver

Version NID
0.931.010-3.740.011 0xC2224E82
int sceSysconCmdExecAsyncForDriver(SceSysconPacket *packet, u32 flags, int (*callback)(SceSysconPacket *, void *), void *argp);

sceSysconCtrlSdPowerForDriver

Version NID
0.931.010-3.740.011 0xBE1ADE4F

If Syscon version is strictly lower than 0x40000, it does nothing and returns 0. Calls Syscon command 0x888.

Enables/disables GameCard reader.

Used in SceSdstor.

// param: 1 = enable SD (GameCard reader) power, 0 = disable SD (GameCard reader) power
int sceSysconCtrlSdPowerForDriver(SceUInt16 param);

sceSysconCtrlWirelessPowerForDriver

Version NID
0.931.010-0.995.000 0x4FBDA504
0.996.090-3.740.011 not present

If Syscon version is strictly lower than 0x40000, it does nothing and returns 0. Calls Syscon command 0x88A.

Replaced by function #sceSysconCtrlWirelessPower2ForDriver.

int sceSysconCtrlWirelessPowerForDriver(SceUInt16 param);

sceSysconCtrlWirelessPower2ForDriver

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0xA2E85DB9

Replacement function for #sceSysconCtrlWirelessPowerForDriver. Calls Syscon command 0x88A.

Used in SceWlanBt:

        scePowerSetWakeupConditionForDriver(4, 0);
        uVar2 = 0;
        sceSysconCtrlDeviceResetForDriver(0x10, 0);
        sceSysconCtrlWirelessPower2ForDriver(0);
        sceClockgenWlanBtClkDisableForDriver();
int sceSysconCtrlWirelessPower2ForDriver(SceUInt16 enable);

sceSysconCtrlWirelessPowerDownForDriver

Version NID
0.931.010-0.995.000 0xDF8C6D2D
0.996.090-3.740.011 not present

If motherboard is not "hardware info third byte 0x10" (probably IRS-001), it does nothing and returns 0, probably because missing hardware. Calls Syscon command 0xB1. Wireless power down might be a button to enable/disable Wireless, like on PSP.

int sceSysconCtrlWirelessPowerDownForDriver(SceUInt16 param);

sceSysconGetConfigStorageInfoForDriver

Version NID
0.995.000-3.740.011 0xCE48E8EB

Get Syscon Config Storage Info using Syscon command 0x1300.

Config Storage Info is part of the Syscon "ConfZZ" header.

typedef struct SceKernelConfigStorageInfo { // size is 8 bytes
    SceUInt16 version;
    SceUInt16 unk_2;
    SceUInt32 unk_4;
} SceKernelConfigStorageInfo;

int sceSysconGetConfigStorageInfoForDriver(SceKernelConfigStorageInfo *pInfo);

sceSysconLoadConfigstorageScriptForDriver

Version NID
0.931.010-0.990.000 not present
0.995.000-3.740.011 0x89C5CFD6

Calls Syscon command 0x1385.

The OS uses this function to change between modes: IDU mode, Show Mode, no mode. This works by spoofing or rewriting Hardware Info. This is reboot persistent.

int sceSysconLoadConfigstorageScriptForDriver(int a1, void *pScript, SceSize size);

sceSysconVerifyConfigstorageScriptForDriver

Version NID
0.931.010-0.990.000 not present
0.995.000-3.740.011 0xCC6F90A8

Calls Syscon command 0x1386.

This function is not used in the OS and anyway it would always return error because it calls a command that is not implemented in Syscon FW.

int sceSysconVerifyConfigstorageScriptForDriver(int a1, void *pScript, SceSize size);

SceSysconForDriver_FD65FFCB

Version NID
3.600.011-3.740.011 0xFD65FFCB

Calls Syscon command 0x1392.

int SceSysconForDriver_FD65FFCB(SceUInt8 offset, SceUInt16 a2);

sceSysconBeginConfigstorageTransactionForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0xA4968B8C
int sceSysconBeginConfigstorageTransactionForDriver(void);

sceSysconCommitConfigstorageTransactionForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0x7B9B3617
int sceSysconCommitConfigstorageTransactionForDriver(void);

sceSysconEndConfigstorageTransactionForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0xFCC3E8EE
int sceSysconEndConfigstorageTransactionForDriver(void);

sceSysconSetDebugHandlersForDriver

Version NID
0.931.010-3.740.011 0xF245CD6F
/** A set of debug handlers for syscon, that you can set in sceSysconSetDebugHandlersForDriver(). */
typedef struct SceSysconDebugHandlers {
    /** Structure size (probably, unused). */
    s32 size;
    /** Callback ran right before running a packet, with a pointer to it passed as the first argument. */
    void (*start)(SceSysconPacket *packet);
    /** Callback ran right after finishing running a packet, with a pointer to it passed as the first argument. */
    void (*end)(SceSysconPacket *packet);
} SceSysconDebugHandlers;

int sceSysconSetDebugHandlersForDriver(SceSysconDebugHandlers *debug_handlers);

sceSysconGetBatteryCalibDataForDriver

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x9ADC9936
int sceSysconGetBatteryCalibDataForDriver(int *piData1, int *piData2, int *piData3, int *piData4);

sceSysconGetTouchpanelDeviceInfoForDriver

Version NID
0.931.010-3.740.011 0xF492E69E
typedef struct SceKernelTouchpanelDeviceInfo { // size is 8 bytes
  uint16_t FrontVendorID;
  uint16_t FrontFirmwareRev;
  uint16_t RearVendorID;
  uint16_t RearFirmwareRev;
} SceKernelTouchpanelDeviceInfo;

int sceSysconGetTouchpanelDeviceInfoForDriver(SceKernelTouchpanelDeviceInfo *pInfo);

sceSysconGetTouchpanelDeviceInfo2ForDriver

Version NID
0.931.010-1.50 not present
1.690.011-3.740.011 0x030D447F

This is a guessed name.

Returns extended touchpanel info.

// this is a guessed name
typedef struct SceKernelTouchpanelInfo { // size is 0xA bytes
	SceUInt16 vendorID;
	SceUInt16 firmwareRev;
	SceUInt16 configRev;
	SceUInt8 hwVersion;
	SceUInt8 vendorInfo;
	SceUInt16 reserved;
} SceKernelTouchpanelInfo;

// this is a guessed name
typedef struct SceKernelTouchpanelDeviceInfo2 { // size is 0x14 bytes
	SceKernelTouchpanelInfo front;
	SceKernelTouchpanelInfo rear;
} SceKernelTouchpanelDeviceInfo2;

int sceSysconGetTouchpanelDeviceInfo2ForDriver(SceKernelTouchpanelDeviceInfo2 *pInfo);

sceSysconMotionGetMeasureDataForDriver

Version NID
0.931.010-3.740.011 0x270B7B0B

Calls Syscon command 0x400.

sceSysconMotionGetDeviceInfoForDriver

Version NID
0.931.010-3.740.011 0xD01E64FC

Returns motion sensor device info.

Calls Syscon command 0x480.

See SceMotionDev#sceMotionDevGetDeviceInfoForDriver for the SceKernelMotionDeviceInfo structure.

int sceSysconMotionGetDeviceInfoForDriver(SceKernelMotionDeviceInfo *pInfo);

SceSysconForDriver_9A7858B6

Version NID
0.931.010-3.740.011 0x9A7858B6

Calls Syscon command 0x481. Sends 3 bytes to Syscon.

Probably used to send information to the motion sensor device.

int SceSysconForDriver_9A7858B6(SceBool a1, SceUint16 a2);

sceSysconGetHardwareInfoForDriver

Version NID
0.931.010-3.740.011 0xCBD6D8BC

Returns Hardware Info obtained from Syscon command 0x5.

int sceSysconGetHardwareInfoForDriver(void);

sceSysconGetHardwareInfo2ForDriver

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x965C68C3

Returns Hardware Info 2 obtained from Syscon command 0x6.

This function was certainly added for PS Vita Slim or PS TV support because Hardware Info risked being fulfilled if too many hardware revisions were made.

Used in SceAudioIn (maybe to check Conexant IC), SceCodec (maybe to check Conexant IC), and _vshSysconGetHardwareInfo2.

typedef struct SceKernelHardwareInfo2 {
  SceUInt8 flags[0x10];
} SceKernelHardwareInfo2;

int sceSysconGetHardwareInfo2ForDriver(SceKernelHardwareInfo2 *pInfo);

sceSysconGetErnieVersionForDriver

Version NID
0.931-3.740.011 0xFF86F4C5

This is a guessed name. Temp name was sceSysconGetBaryonVersionForDriver.

int sceSysconGetErnieVersionForDriver(void);

SceSysconForDriver_EBE3262C

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0xEBE3262C

In SceSblPostSsMgr, used just after #sceSysconGetErnieVersionForDriver.

Returns 8 bits of some Syscon Mode information. Bit 6 (from right) is Syscon DownLoader Mode flag. Bit 3 (from right) is Power Online flag.

SceUInt8 SceSysconForDriver_EBE3262C(void);

sceSysconIsDownLoaderModeForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0x9ADD60D2
int sceSysconIsDownLoaderModeForDriver(void);

sceSysconIsDealDownLoaderModeForDriver

Version NID
0.931.010-3.740.011 0xB7BCC638
int sceSysconIsDealDownLoaderModeForDriver(void);

sceSysconNopForDriver

Version NID
0.931.010-3.740.011 0x0D0B6D25
int sceSysconNopForDriver(void);

sceSysconIsPowerOnlineForDriver

Version NID
0.931.010-3.740.011 0x9DA2A5AB

Returns true iff Syscon information bit 3 (from right) is set. See also #SceSysconForDriver_EBE3262C.

Used in many ScePower functions for example before setting display brightness (to save battery).

SceBool sceSysconIsPowerOnlineForDriver(void);

sceSysconGetErnieDLVersionForDriver

Version NID
0.931.010-3.740.011 0xD2F456DC

Calls Syscon command 0x1100.

void sceSysconGetErnieDLVersionForDriver(SceUInt32 *pVersion);

sceSysconGetBatteryVersionForDriver

Version NID
0.931.010-3.740.011 0x68E0031E

Battery IC codename: if HWinfo > 7 "Abby" else unknown codename, maybe just "Bic".

int sceSysconGetBatteryVersionForDriver(SceUInt16 *HWinfo, SceUInt16 *FWinfo, SceUInt16 *DFinfo);

sceSysconReadCookieStatusForDriver

Version NID
0.931.010-1.81 not present
2.000.081-3.740.011 0xDFB024C4

This is a guessed name.

Temp name was sceSysconAbbySyncForDriver.

int sceSysconReadCookieStatusForDriver(SceUInt32 *puiStatus);

sceSysconGetManufacturesStatusForDriver

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0x3E09A1F4

In theory, this function should only be called when Product Mode is already set.

int sceSysconGetManufacturesStatusForDriver(int *piStatus);

sceSysconReadScratchPadForDriver

Version NID
0.931.010-3.740.011 0x299B1CE7

Temp name was sceSysconReadCommandForDriver, sceSysconVsReadDataForDriver.

Calls Syscon command 0x90.

Used in SceRtc.

See also Syscon Scratchpad structure.

// size: On FW 3.60, must be between 0 and 0x18. On FW 0.931, must be 2, 4 or 8.
// offset: Must be between 0 and 0xFF.
// offset + size must not exceed 0x100
int sceSysconReadScratchPadForDriver(SceUInt32 offset, void *buffer, SceSize size);

sceSysconWriteScratchPadForDriver

Version NID
0.931.010-3.740.011 0xE26488B9

Temp name was sceSysconSendCommandForDriver, sceSysconVsWriteDataForDriver.

Calls Syscon command 0x91.

Used in SceRtc and ScePower.

See also Syscon Scratchpad structure.

// size: On FW 3.60, must be between 0 and 0x18. On FW 0.931, must be 2, 4 or 8.
// offset: Must be between 0 and 0xFF.
// offset + size must not exceed 0x100
int sceSysconWriteScratchPadForDriver(SceUInt32 offset, void *buffer, SceSize size);

sceSysconNvsSetRunModeForDriver

Version NID
0.931.010-3.740.011 0x81A6060D

Used in sceSblNvsReadDataForKernel and sceSblNvsWriteDataForKernel.

// mode: 0 before NVS read/write
int sceSysconNvsSetRunModeForDriver(int mode);

sceSysconNvsSetUnkModeForDriver

Version NID
0.931.010-3.740.011 0x2EC6D55D
// mode: unk
int sceSysconNvsSetUnkModeForDriver(int mode);

sceSysconNvsReadDataForDriver

Version NID
0.931.010-3.740.011 0xACAFA2B8

Used in sceSblNvsReadDataForKernel and sceSblSsGetNvsDataForDriver.

int sceSysconNvsReadDataForDriver(SceUInt32 offset, void *buffer, SceSize size);

sceSysconNvsWriteDataForDriver

Version NID
0.931.010-3.740.011 0x10C9657A

Used in sceSblNvsWriteDataForKernel and sceSblSsSetNvsDataForDriver.

int sceSysconNvsWriteDataForDriver(SceUInt32 offset, void *buffer, SceSize size);

sceSysconGetMultiCnInfoForDriver

Version NID
0.931.010-3.740.011 0x1503D6A0

Returns data obtained by Syscon command 0x103.

Returns 0x4ff00 when nothing is connected.

Returns 0x40080 when pin 12 is pulled to GND while pin 11 pulled to GND. MultiCn host mode enabled

Returns 0x40180 when pin 12 is pulled to GND while pin 11 pulled to GND via 25K resistor. MultiCn host mode disabled

Returns 0x40280 when pin 12 is pulled to GND while pin 11 pulled to GND via 50K resistor. MultiCn host mode disabled

Returns 0x40380 when pin 12 is pulled to GND while pin 11 pulled to GND via 75K resistor. MultiCn host mode disabled. Sets "dock" flag in hpremote

Returns 0x40480 when pin 12 is pulled to GND while pin 11 pulled to GND via 200K resistor. MultiCn host mode enabled

Returns 0x40580 when pin 12 is pulled to GND while pin 11 pulled to GND via 325K resistor. MultiCn host mode disabled

Returns 0x40680 when pin 12 is pulled to GND while pin 11 is floating. MultiCn host mode disabled

Returns 0x40000 on PSTV

Bits 8 and 9 indicate that an audio-out dock is connected.

Bits 8, 9, 11, 12, 13, 14 and 15 indicate that UDC pins are connected.

Used in SceHpremote, SceUsbServ.

int sceSysconGetMultiCnInfoForDriver(SceUInt32 *pInfo);

sceSysconSetMultiCnPortForDriver

Version NID
0.931.010-3.740.011 0x8AAB6308

Used in SceSblPostSsMgr.

// port: 0: for Jig mode, 1 for UART0 logging mode, 0x10000: for normal mode
int sceSysconSetMultiCnPortForDriver(int port);

sceSysconCtrlLedPwmBlinkForDriver

Version NID
0.996.090-3.740.011 0x6F586D1A

Used in ScePower.

#define DEVICE_UNK 0x40 // maybe PS button or CP power LED or maybe color (blue)

// unk: SceLedConfig.unk_4

int sceSysconCtrlLedPwmBlinkForDriver(int device, SceUInt32 unk);

sceSysconSetChargeLedCtrlForDriver

Version NID
0.931.010 not present
1.000.071-3.740.011 0x9CA6EB70

This is a guessed name.

On motherboards IRT-001 and older, it does nothing and returns 0, probably because missing hardware that could be a LED, else it sends 2 bytes using Syscon command 0x89E.

Used in ScePower#ScePowerForDriver_38415146. Related to LED.

int sceSysconSetChargeLedCtrlForDriver(SceBool state);

sceSysconCtrlAccPowerForDriver

Version NID
0.931-3.60 0x8D1D97E8
int sceSysconCtrlAccPowerForDriver(SceBool enable);

sceSysconCtrlUsbStatusForDriver

Version NID
0.931-3.60 0x59DC5938

Sends 3 bytes to Syscon command 0x89A.

Related to SceUdcd and ScePower.

int sceSysconCtrlUsbStatusForDriver(SceUInt32 value);

sceSysconCtrlRMRPowerForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0x710A7CF0

Temp name was sceSysconCtrlMsPowerForDriver.

int sceSysconCtrlRMRPowerForDriver(int enable_power);

sceSysconCtrlMultiCnPowerForDriver

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0xB1F88B11
int sceSysconCtrlMultiCnPowerForDriver(SceBool enable);

SceSysconForDriver_3274A925

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0x3274A925

Temp name was sceSysconCtrlDolceUsbPowerForDriver.

This function enables/disables a USB bus related to either PS Vita IRS-1001 Wlan/Bt module USB or PS Vita 3G modem USB. This also affects PS TV USB host and maybe also PS TV ethernet.

Used in SceUsbEtherSmsc, SceUsbServ.

This function was maybe added to support IRS-1001 motherboard.

int SceSysconForDriver_3274A925(SceBool enable);

sceSysconJigOpenPortForDriver

Version NID
0.931.010-3.740.011 0x44A173F5
int sceSysconJigOpenPortForDriver(void);

sceSysconJigClosePortForDriver

Version NID
0.931.010-3.740.011 0x483FAE05
int sceSysconJigClosePortForDriver(void);

sceSysconJigSetConfigForDriver

Version NID
0.931.010-3.740.011 0xD24BF916
int sceSysconJigSetConfigForDriver(SceUInt8 a1, SceUInt8 a2);

sceSysconOutputClockForDriver

Version NID
0.990.000-3.740.011 0x058941D7

Sends 2 bytes to Syscon using Syscon command 0xB0.

sceSysconCtrlHostOutputViaDongleForDriver

Version NID
0.931.010 not present
0.990.000-3.740.011 0xDECCB2B4

Enables / disables Kermit UART0 output (logs) via Dongle (Jig).

Sends 2 bytes to Syscon using Syscon command 0xB2.

int sceSysconCtrlHostOutputViaDongleForDriver(SceBool enable);

SceSysconForDriver_33B5CDB3

Version NID
0.996.090-3.740.011 0x33B5CDB3

Reads from Syscon using Syscon command 0xB3.

This function was probably added to support IRS-002 motherboard.

SceSysconForDriver_F6D4DDC4

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0xF6D4DDC4

Guessed name is sceSysconGetWlanGpioStateForDriver

Reads from Syscon using Syscon command 0xB4. It is probably the "get" equivalent of #SceSysconForDriver_00AE3AEB.

This function was added to support IRS-1001 motherboard.

SceSysconForDriver_00AE3AEB

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0x00AE3AEB

Guessed name is sceSysconSetWlanGpioStateForDriver

Sends 2 bytes to Syscon using Syscon command 0xB5. It is probably the "set" equivalent of #SceSysconForDriver_F6D4DDC4.

This function was added to support IRS-1001 motherboard.

SceSysconForDriver_0D300158

Version NID
3.100.081-3.740.011 0x0D300158

It is probably a "sceSysconCtrl...ForDriver" function.

Sends 2 bytes to Syscon using Syscon command 0xB6. It is probably the "set" equivalent of #SceSysconForDriver_91EF4EC3.

This function was added to support DOL-1002 motherboard.

SceSysconForDriver_91EF4EC3

Version NID
3.100.081-3.740.011 0x91EF4EC3

Reads from Syscon using Syscon command 0xB7. It is probably the "get" equivalent of #SceSysconForDriver_0D300158.

This function was added to support DOL-1002 motherboard.

receive_pm_sm_jig_msg_from_syscon

Version NID
0.931.010-3.740.011 0x3C80B529

Calls Syscon command 0x2083.

int receive_pm_sm_jig_msg_from_syscon(SceUInt8 offset, SceUInt8 size, void *pMsg);

send_pm_sm_jig_short_msg_to_syscon

Version NID
3.600.011-3.740.011 0xCE346793

Calls Syscon command 0x2084.

Sends a message of maximum 0x18 bytes.

int send_pm_sm_jig_short_msg_to_syscon(SceUInt8 size, void *pMsg);

send_pm_sm_jig_msg_to_syscon

Version NID
0.931.010-3.740.011 0x7BFBA09E

Calls Syscon command 0x2085.

Sends a message by chunks of 0x18 bytes.

int send_pm_sm_jig_msg_to_syscon(SceUInt8 a1, SceUInt8 offset, SceUInt8 size, void *pMsg);

send_pm_sm_stop_to_syscon

Version NID
0.931.010-3.740.011 0x933D813F

Calls Syscon command 0x2085.

Used just after send_pm_sm_jig_msg_to_syscon or when it fails before.

int send_pm_sm_stop_to_syscon(SceUInt8 a1, SceUInt8 offset, SceUInt8 size);

sceSysconIduModeSetForDriver

Version NID
0.931.010-0.996.090 not present
1.030.071-3.740.011 0x956D07CB
int sceSysconIduModeSetForDriver(void);

sceSysconIduModeClearForDriver

Version NID
0.931.010-0.996.090 not present
1.030.071-3.740.011 0x34574496
int sceSysconIduModeClearForDriver(void);

sceSysconShowModeSetForDriver

Version NID
0.931.010-1.50 not present
1.600.061-3.740.011 0x6D65B70F
int sceSysconShowModeSetForDriver(void);

sceSysconShowModeClearForDriver

Version NID
0.931.010-1.50 not present
1.600.061-3.740.011 0x8D7724C0
int sceSysconShowModeClearForDriver(void);

sceSysconSetWlanCallbackForDriver

Version NID
0.931.010-0.996.090 0x4DEB8712
1.03-3.740.011 not present

This is a guessed name.

Registers a Wlan-related callback.

index 5 on FWs 0.931.010-0.940.

SceSysconForDriver_18A6F4D9

Version NID
0.990.000-3.740.011 0x18A6F4D9

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0 on FW 3.600.011.

No use case seen.

Related to #SceSysconForDriver_C0F215B7.

int SceSysconForDriver_18A6F4D9(void *cb_0, void *cb_1);

SceSysconForDriver_DE613081

Version NID
0.990.000-3.740.011 0xDE613081

A guessed name is sceSysconSetHeadphoneCallbackForDriver.

Registers an headphone remote related callback.

index 1 on FW 3.600.011.

Used in SceHpremote.

Related to #SceSysconForDriver_C3504ADE.

int SceSysconForDriver_DE613081(void *cb_0, void *cb_1);

SceSysconForDriver_229A07C2

Version NID
0.990.000-3.740.011 0x229A07C2

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 2 on FW 3.600.011.

No use case seen.

Related to #SceSysconForDriver_B832B72C.

int SceSysconForDriver_229A07C2(void *cb_0, void *cb_1);

SceSysconForDriver_8351526D

Version NID
0.990.000-3.740.011 0x8351526D

A guessed name is sceSysconSetAlarmTimerCallbackForDriver.

Registers a callback.

index 3 on FW 3.600.011.

Used in SceRtc.

Related to #SceSysconForDriver_86BAAF7D.

int SceSysconForDriver_8351526D(void *cb_0, void *cb_1);

SceSysconForDriver_9F8340FF

Version NID
0.990.000-3.740.011 0x9F8340FF

A guessed name is sceSysconSetResumeRequestCallbackForDriver.

Registers the "is resume requested" callback.

Used in ScePower to register a callback that sets the ScePower global variable g_resume_requested to SCE_TRUE.

index 4 on FW 3.600.011.

Related to #SceSysconForDriver_A57B5433.

int SceSysconForDriver_9F8340FF(void *cb_0, void *cb_1);

SceSysconForDriver_35E1689F

Version NID
0.990.000-3.740.011 0x35E1689F

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback, maybe dock callback, but not remote callback.

Used in SceHpremote.

index 5 on FW 3.600.011.

Related to #SceSysconForDriver_ACC7F71E.

int SceSysconForDriver_35E1689F(void *cb_0, void *cb_1);

SceSysconForDriver_474A9EA7

Version NID
0.931.010-3.740.011 0x474A9EA7

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0xC on FWs 0.931.010-0.940. index 6 on FW 3.600.011.

Related to #SceSysconForDriver_769F9AC4.

No use case seen.

int SceSysconForDriver_474A9EA7(void *cb_0, void *cb_1);

SceSysconForDriver_4E88B4D9

Version NID
0.990.000-3.740.011 0x4E88B4D9

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 8 on FW 3.600.011.

Related to #SceSysconForDriver_4BC63A40.

Used in SceBbmc

int SceSysconForDriver_4E88B4D9(void *cb_0, void *cb_1);

SceSysconForDriver_376CCCB8

Version NID
0.990.000-3.740.011 0x376CCCB8

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 9 on FW 3.600.011.

Related to #SceSysconForDriver_99A254A9.

No use case seen.

int SceSysconForDriver_376CCCB8(void *cb_0, void *cb_1);

SceSysconForDriver_3BAAC8A9

Version NID
0.931.010-0.995.000 not present
0.996.090-3.740.011 0x3BAAC8A9

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0xA on FW 3.600.011.

Related to #SceSysconForDriver_9A4F4B7C.

No use case seen.

int SceSysconForDriver_3BAAC8A9(void *cb_0, void *cb_1);

sceSysconSetAccCallbackForDriver

Version NID
0.931.010-0.940 not present
0.995.000-3.740.011 0x4A42712F

This is a guessed name.

Registers 2 callbacks (maybe constructor and destructor or callback and args) for accessory port.

index 0xF on FW 3.600.011.

Used in SceUsbServ.

int sceSysconSetAccCallbackForDriver(void *cb_0, void *cb_1);

sceSysconSetLowBatteryCallbackForDriver

Version NID
0.931.010-3.740.011 0x3F0DB7C0

Registers the low-battery callback.

index 6 on FWs 0.931-0.940. index 0x10 on FW 3.600.011.

int sceSysconSetLowBatteryCallbackForDriver(void *cb_0, void *cb_1);

SceSysconForDriver_80D6E061

Version NID
1.000.071-3.740.011 0x80D6E061

A guessed name is sceSysconSetBatteryOnlineCallbackForDriver.

Registers a callback. Maybe related to Battery online status.

index 0x11 on FW 3.600.011.

int SceSysconForDriver_80D6E061(void *cb_0, void *cb_1);

SceSysconForDriver_7682FE69

Version NID
1.000.071-3.740.011 0x7682FE69

A guessed name is sceSysconSet...Battery...CallbackForDriver.

Registers a battery-related callback.

No use case seen.

index 0x12 on FW 3.600.011.

Related to #SceSysconForDriver_4A184B7C.

int SceSysconForDriver_7682FE69(void *cb_0, void *cb_1);

SceSysconForDriver_E0D52DF0

Version NID
0.990.000-3.740.011 0xE0D52DF0

A guessed name is sceSysconSet...Battery...CallbackForDriver.

Registers a battery-related callback.

No use case seen.

index 0x13 on FW 3.600.011.

Related to #SceSysconForDriver_ACEE1C70.

int SceSysconForDriver_E0D52DF0(void *cb_0, void *cb_1);

SceSysconForDriver_2D471528

Version NID
0.931.010-0.940 not present
1.000.071-3.740.011 0x2D471528

A guessed name is sceSysconSet...Battery...CallbackForDriver.

Registers a callback very similar to the low battery callback.

Used in ScePower.

index 0x14 on FW 3.600.011.

Related to #SceSysconForDriver_03C50DC3.

int SceSysconForDriver_2D471528(void *cb_0, void *cb_1);

SceSysconForDriver_129EA022

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x129EA022

A guessed name is sceSysconSet...CallbackForDriver.

Used in ScePower.

index 0x15 on FW 3.600.011.

Related to #SceSysconForDriver_BFDA5590.

int SceSysconForDriver_129EA022(void *cb_0, void *cb_1);

SceSysconForDriver_85E5DEBF

Version NID
0.931.010-0.996.090 not present
1.000.071-3.740.011 0x85E5DEBF

A guessed name is sceSysconSet...CallbackForDriver.

index 0x16 on FW 3.600.011.

Related to #SceSysconForDriver_63B14156.

Used by SceBbmc

int SceSysconForDriver_85E5DEBF(void *cb_0, void *cb_1);

sceSysconSetThermalAlertCallbackForDriver

Version NID
0.931.010-0.996.090 not present
1.000.071-3.740.011 0x773B8126

Registers the thermal alert callback.

index 0x17 on FW 3.600.011.

Related to #SceSysconForDriver_50CAE242.

int sceSysconSetThermalAlertCallbackForDriver(void *cb_0, void *cb_1);

SceSysconForDriver_2E4BA4B8

Version NID
0.990.000-3.740.011 0x2E4BA4B8

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0x19 on FW 3.600.011.

Related to #SceSysconForDriver_29CF4335.

No use case seen. Maybe used in internal modules for Jig.

int SceSysconForDriver_2E4BA4B8(void *cb_0, void *cb_1);

SceSysconForDriver_C442D0BE

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0xC442D0BE

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0x1A on FW 3.600.011.

Related to #SceSysconForDriver_9F4042F8.

No use case seen.

int SceSysconForDriver_C442D0BE(void *cb_0, void *cb_1);

SceSysconForDriver_61AE3970

Version NID
0.931.010-3.01 not present
3.100.081-3.740.011 0x61AE3970

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0x1B on FW 3.600.011.

Related to #SceSysconForDriver_C50568E9.

No use case seen.

int SceSysconForDriver_61AE3970(void *cb_0, void *cb_1);

sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x94678881

This is a guessed name.

Registers the low-battery-inhibit-update-reboot callback.

index 0x1C on FW 3.600.011.

No use case seen.

int sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver(void *cb_0, void *cb_1);

sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x7AA00C01

This is a guessed name.

Registers the low-battery-inhibit-update-download callback.

index 0x1D on FW 3.600.011.

No use case seen.

int sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver(void *cb_0, void *cb_1);

sceSysconSetStandbyButtonCallbackForDriver

Version NID
0.990.000-3.740.011 0x423D0C58

Registers a callback.

index 0x20 on FW 3.600.011.

No use case seen.

int sceSysconSetStandbyButtonCallbackForDriver(void *cb_0, void *cb_1);

SceSysconForDriver_154676F1

Version NID
0.990.000-3.740.011 0x154676F1

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0x21 on FW 3.600.011.

No use case seen.

int SceSysconForDriver_154676F1(void *cb_0, void *cb_1);

SceSysconForDriver_63352A39

Version NID
0.990.000-3.740.011 0x63352A39

A guessed name is sceSysconSetMicrophoneCallbackForDriver.

Registers a callback.

index 0x22 on FW 3.600.011.

Used in SceHpremote.

int SceSysconForDriver_63352A39(void *cb_0, void *cb_1);

SceSysconForDriver_14730196

Version NID
0.990.000-3.740.011 0x14730196

A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0x23 on FW 3.600.011.

No use case seen.

int SceSysconForDriver_14730196(void *cb_0, void *cb_1);

sceSysconSetAlarmCallbackForDriver

Version NID
0.931.010-3.740.011 0x32418370

Registers the alarm callback.

index 0 on FWs 0.931.010-0.940. index 0x24 on FW 3.600.011.

int sceSysconSetAlarmCallbackForDriver(void *cb_0, void *cb_1);

sceSysconSetMultiCnOtgCallbackForDriver

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0xA26586B2

This is a guessed name.

Registers 2 callbacks (maybe constructor and destructor or callback and args) for multi-connector OTG on PS Vita Fat.

index 0x25 on FW 3.600.011.

Used in SceUsbServ.

int sceSysconSetMultiCnOtgCallbackForDriver(void *cb_0, void *cb_1);

sceSysconSetMiniUsbOtgCallbackForDriver

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x67A4CB9F

This is a guessed name.

Registers 2 callbacks (maybe constructor and destructor or callback and args) for mini-USB OTG on PS Vita Slim.

index 0x26 on FW 3.600.011.

Used in SceUsbServ.

int sceSysconSetMiniUsbOtgCallbackForDriver(void *cb_0, void *cb_1);

sceSysconUpdaterSetSegmentForDriver

Version NID
0.931.010-3.740.011 0x9B00BC7F

Used in SceSblUpdateMgr.

// segment_no: a 8bit value
int sceSysconUpdaterSetSegmentForDriver(SceUInt32 segment_no);

sceSysconUpdaterSendProgramDataForDriver

Version NID
0.931.010-3.740.011 0x356B9696

This is a guessed name. Temp name was sceSysconUpdaterLoadSegmentForDriver.

Buffer overflow if (size > 0x80 - 6).

Used in SceSblUpdateMgr.

// pSegment: the encrypted Syscon firmware segment to send
// offset
// size: should be between 0 and 0x80 but usual chunks are 0x10 or 0x40, last chunk being less (no padding)
int sceSysconUpdaterSendProgramDataForDriver(void *pSegment, SceUInt32 offset, SceSize size);

sceSysconUpdaterSendProgramData2ForDriver

Version NID
0.931.010-3.740.011 0x734544E4

This is a guessed name. Temp name was sceSysconUpdaterLoadSegment2ForDriver.

Same functionality as #sceSysconUpdaterLoadSegmentForDriver except that the segment is copied to an intermediate 0x7A-byte zeroed buffer. This implementation seems bad as the Syscon packet first 6 bytes are written twice.

Buffer overflow if (size > 0x80 - 6).

Used in SceSblUpdateMgr.

// pSegment: the encrypted Syscon firmware segment to send
// offset
// size: should be between 0 and 0x80 but usual chunks are 0x10 or 0x40, last chunk being less (no padding)
int sceSysconUpdaterSendProgramData2ForDriver(void *pSegment, SceUInt32 offset, SceSize size);

sceSysconUpdaterCalcChecksumForDriver

Version NID
0.931.010-3.740.011 0xD27C3D80

Computes checksum to use with #sceSysconUpdaterExecProgrammingForDriver. It does not call any Syscon command.

Used in SceSblUpdateMgr.

int sceSysconUpdaterCalcChecksumForDriver(void *data, SceSize size, int *puiChecksum);

sceSysconUpdaterExecProgrammingForDriver

Version NID
0.931.010-3.740.011 0x69AD76E4

Executes programming, i.e writes segments to Syscon Flash memory.

Used in SceSblUpdateMgr.

// checksum: value got from sceSysconUpdaterCalcChecksumForDriver
int sceSysconUpdaterExecProgrammingForDriver(int checksum);

sceSysconUpdaterSetRunModeForDriver

Version NID
0.931.010-3.740.011 0xB487C2FB

Used in SceSblUpdateMgr.

int sceSysconUpdaterSetRunModeForDriver(int mode);

sceSysconUpdaterExecFinalizeForDriver

Version NID
0.931.010-3.740.011 0xC7747A63

Finalize Syscon update by sending checksum from ARM to Syscon.

Calls Syscon command 0x1184.

Used in SceSblUpdateMgr.

// digest: sha1 of decrypted concatenated segments, comes from Syscon Update package packet type 0x20
// size: usually 0x14 (sha1 size)
int sceSysconUpdaterExecFinalizeForDriver(void *digest, SceSize size);

sceSysconUpdaterCheckSignatureForDriver

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0xCBA836FF

Sends a 0x18-byte buffer to Syscon command 0x1185. This Syscon command 0x1185 seems to be unimplemented in recent Syscon firmwares: it does not do anything. It can be explained by the fact that the signature packet is not embedded in Syscon Update SPKGs.

Used in SceSblUpdateMgr.

// size: must be 0x18
int sceSysconUpdaterCheckSignatureForDriver(void *pSig, SceSize size);

SceSysconForDriver_4D03754A

Version NID
0.931.010-0.990 not present
0.996.090-3.740.011 0x4D03754A

Temp name was syscon_update_command_0xD00002.

Calls Syscon command 0xD0.

Used in SceSblUpdateMgr with update_service_sm function 0xD0002.

// in_buf: buffer that embeds input data, usually 0xD0002 command request + 8
// in_size: usually 0x28
// out_buf: buffer to receive result, usually 0xD0002 command request + 0x30
// out_size: usually 0x28
int SceSysconForDriver_4D03754A(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);

SceSysconForDriver_C14BD637

Version NID
0.931.010-0.990 not present
1.000.041-3.740.011 0xC14BD637

Calls Syscon command 0xD1.

Seems unused.

int SceSysconForDriver_C14BD637(void);

sceSysconSnvsReadDataForDriver

Version NID
0.931.010-0.990 not present
0.996.090-3.740.011 0xEBDF88B9

This is a guessed name.

Calls Syscon command 0xD2.

Used in SceSblPostSsMgr to read data from SNVS with pm_sm command 8. Also used in SceSblUpdateMgr with update_service_sm commands 0xB0002 and 0xC0002.

// in_size: 0x10
// out_size: 0x30
int sceSysconSnvsReadDataForDriver(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);

sceSysconSnvsWriteDataForDriver

Version NID
0.931.010-0.990 not present
0.996.090-3.740.011 0x63683B9B

This is a guessed name.

Calls Syscon command 0xD3.

Used in SceSblPostSsMgr to write data to SNVS with pm_sm command 8. Also used in SceSblUpdateMgr with update_service_sm functions 0xB0002 and 0xC0002.

// in_size: 0x30
// out_size: 0x10
int sceSysconSnvsWriteDataForDriver(void *in_buf, SceSize in_size, void *out_buf, SceSize out_size);

sceSysconSetAffirmativeRertyModeForDriver

Version NID
0.931.010-3.740.011 0x901D6CD4

This is an official name. Typo is the name is intentional.

Sets AffirmativeRertyMode flag in kernel memory. During SceSyscon initialization, AffirmativeRertyMode is enabled by default.

AffirmativeRertyMode flag is used by SceSyscon kernel module when executing Syscon commands.

Used in SceCtrl, ScePower.

int sceSysconSetAffirmativeRertyModeForDriver(int enable);

sceSysconGetControlsInfoForDriver

Version NID
0.931.010-3.740.011 0x145F59A4

This is a guessed name.

See Boot Controls Info.

Calls Syscon command 0x100.

int sceSysconGetControlsInfoForDriver(SceUInt32 *pCtrl);

SceSysconForDriver_76272CB9

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0x76272CB9

Calls Syscon command 0x120. Gets a 4-byte value.

int SceSysconForDriver_76272CB9(SceUInt32 *pRes);

sceSysconGetClockForDriver

Version NID
0.931.010-3.740.011 0xD7BEFF8B

Gets Syscon power-on time in ticks of 0.5 second. Each second the counter automatically increases by 2.

Calls Syscon command 0x11.

Used in SceRtc to calculate the current time and date.

int sceSysconGetClockForDriver(SceUInt32 *puiTime);

SceSysconForDriver_3168F3AF

Version NID
0.931.010-3.740.011 0x3168F3AF

Calls Syscon command 0x12.

Gets the tick of an alarm timer. The alarm tick must be set using Syscon command 0x82 via #SceSysconForDriver_51164951.

// FW 0.931.010
int SceSysconForDriver_3168F3AF(SceUInt32 *pTick);

// FW 3.600.011-3.740.011
int SceSysconForDriver_3168F3AF(SceUInt32 *pTickLow, SceUInt8 *pTickHi);

SceSysconForDriver_BA09F171

Version NID
0.931.010-0.940 not present
0.990.000-3.740.011 0xBA09F171

Calls Syscon command 0x13.

It might be related to alarm/timer. Sends 0 byte to Syscon. Gets 2 bytes from Syscon.

int SceSysconForDriver_BA09F171(SceUInt8 *pResult, SceUInt8 *pResult2);

SceSysconForDriver_93075DD1

Version NID
0.931.010-3.740.011 0x93075DD1

Calls Syscon command 0x14. Sends 0 byte to Syscon. Gets ?1-4? bytes from Syscon.

int SceSysconForDriver_93075DD1(SceUInt32 *pResult);

sceSysconGetPowerStatusForDriver

Version NID
0.931.010-3.740.011 0x175CE5A1

Calls Syscon command 0x883. Gets 8 bytes from Syscon. Reads Elmo registers 0xA0 through 0xA3.

// pStatus: pointer to a buffer of at least 8 bytes
int sceSysconGetPowerStatusForDriver(void *pStatus);

sceSysconCtrlDeviceResetForDriver

Version NID
0.931.010-3.740.011 0x40FF3898

Sends 2 bytes to Syscon command 0x88F.

// The following defines are guessed names
#define SCE_SYSCON_CTRL_DEVICE_RESET_UNK_1 1
#define SCE_SYSCON_CTRL_DEVICE_RESET_MOTION 2
#define SCE_SYSCON_CTRL_DEVICE_RESET_TP_FRONT 4
#define SCE_SYSCON_CTRL_DEVICE_RESET_TP_REAR 8
#define SCE_SYSCON_CTRL_DEVICE_RESET_WLANBT 0x10
#define SCE_SYSCON_CTRL_DEVICE_RESET_SMSC_ETH 0x20

// mode: 0 or 1, probably for the reset type such as reset or shutdown
int sceSysconCtrlDeviceResetForDriver(SceUInt8 device, SceBool mode);

SceSysconForDriver_285594F8

Version NID
0.931.010-3.740.011 0x285594F8

Calls Syscon command 0x890.

int SceSysconForDriver_285594F8(SceUInt16 value);

sceSysconCtrlLEDForDriver

Version NID
0.931.010-3.740.011 0x04EC7579
#define STATE_ON 1
#define STATE_OFF 0

#define DEVICE_UNK 0x40 // maybe PS button or CP power LED or maybe color (blue)

int sceSysconCtrlLEDForDriver(SceUInt16 device, SceBool state);

sceSysconCtrlChargeACForDriver

Version NID
0.931.010-3.740.011 0x596B17B7

Sends 2 bytes to Syscon command 0x892. Related to Battery. Maybe enables/disables battery charging.

Used in ScePower's module_start.

int sceSysconCtrlChargeACForDriver(SceBool enable);

sceSysconCtrlChargeVBUSForDriver

Version NID
0.931.010-3.740.011 0x2A4B0437

Sends 3 bytes to Syscon command 0x893. Related to Battery. Maybe enables/disables battery charging.

Used in ScePower's module_start.

// a1: ex: 0, 1
// a2: ex: 0, 1

// FW 0.931.010
int sceSysconCtrlChargeVBUSForDriver(SceUInt32 a1);

// FW 3.600.011-3.740.011
int sceSysconCtrlChargeVBUSForDriver(SceUInt32 a1, SceUInt32 a2);

SceSysconForDriver_5CDDA14D

Version NID
0.931.010-3.740.011 0x5CDDA14D

A guessed name is sceSysconCtrlHpremoteForDriver.

If Syscon version < 0x80001, it does nothing and returns 0, else it sends 2 bytes to Syscon command 0x899.

Maybe enables/disables Jack power.

Used in SceHpremote.

int SceSysconForDriver_5CDDA14D(SceBool enable);

SceSysconForDriver_A2FE9BF9

Version NID
0.931.010-3.740.011 0xA2FE9BF9

Calls Syscon command 0x800.

Gets information related to battery charge status, or USB power connection. See also Ernie#CMD_0x0800_-_SceSysconForDriver_A2FE9BF9.

Used in ScePower's module_start.

int SceSysconForDriver_A2FE9BF9(void *pResult);

sceSysconCtrlLedBlinkType2ForDriver

Version NID
0.931.010-3.740.011 0xCB41B531

This is a guessed name.

Calls Syscon command 0x89F.

sceSysconGetBatteryTempForDriver

Version NID
0.931.010-3.740.011 0x9070F139

If Syscon version <= 0x70503, it calls Syscon command 0x8A0, else Syscon command 0x981.

Used in ScePower's module_start.

int sceSysconGetBatteryTempForDriver(int *pResult);

sceSysconGetBatteryRemainCapForDriver

Version NID
0.931.010-3.740.011 0xC562AF3A

Temp name was sceSysconGetBatteryRemainCapacityForDriver.

If Syscon version <= 0x70503, it calls Syscon command 0x802, else Syscon command 0x900.

Only used in ScePower.

int sceSysconGetBatteryRemainCapForDriver(SceUInt32 *pResult);

sceSysconGetBatteryVoltForDriver

Version NID
0.931.010-3.740.011 0x03F11220

If Syscon version <= 0x70503, it calls Syscon command 0x803, else Syscon command 0x901.

Used in ScePower.

int sceSysconGetBatteryVoltForDriver(SceUInt32 *pResult);

sceSysconGetBatteryLifePercentForDriver

Version NID
0.931.010-1.06 not present
1.500.151-3.740.011 0xAD0A8275

Used in ScePower.

int sceSysconGetBatteryLifePercentForDriver(SceUInt32 *pResult);

sceSysconGetBatteryFullCapForDriver

Version NID
0.931.010-3.740.011 0x00A65FC1

If Syscon version <= 0x70503, it calls Syscon command 0x8A1, else Syscon command 0x982.

Used in ScePower.

int sceSysconGetBatteryFullCapForDriver(int *pResult);

sceSysconGetBatteryElecForDriver

Version NID
0.931.010-3.740.011 0x0826BA07

If Syscon version <= 0x70503, it calls Syscon command 0x8A2, else Syscon command 0x983.

Used in ScePower.

int sceSysconGetBatteryElecForDriver(SceUInt16 *pResult);

sceSysconGetBatteryTTEForDriver

Version NID
0.931.010-3.740.011 0xB841C141

Temp name was sceSysconGetBatteryLifeTimeForDriver.

If Syscon version <= 0x70503, it calls Syscon command 0x8A3, else Syscon command 0x984.

Used in ScePower.

int sceSysconGetBatteryTTEForDriver(SceUInt16 *pTTE);

sceSysconGetBatterySOHForDriver

Version NID
0.931.010-3.740.011 0x91D3B7A3

If Syscon version <= 0x70503, it calls Syscon command 0x8A4, else Syscon command 0x985.

Used in ScePower.

int sceSysconGetBatterySOHForDriver(void *pSOH);

sceSysconReadBatteryRegForDriver

Version NID
0.931.010-3.740.011 0xC2FB5565

If Syscon version <= 0x70503, it calls Syscon command 0x8A8, else Syscon command 0x986.

int sceSysconReadBatteryRegForDriver(SceUInt16 offset, SceUInt16 *pRes);

sceSysconWriteBatteryRegForDriver

Version NID
0.931.010-3.740.011 0x9B779DB0

If Syscon version <= 0x70503, it calls Syscon command 0x8A9, else Syscon command 0x987.

int sceSysconWriteBatteryRegForDriver(SceUInt16 offset, SceUInt16 value);

SceSysconForDriver_A5AB19B1

Version NID
0.931.010-3.740.011 0xA5AB19B1

Guessed name is sceSysconBatteryControlCommandForDriver

Writes 2 byte command to Abby control register and returns 2 byte result. Use carefully as there are commands to seal dataflash!

If Syscon version <= 0x70503, it calls Syscon command 0x8AA, else Syscon command 0x988.

Command must be between 0 and 0xFFFF else returns error 0x80250001.

int SceSysconForDriver_A5AB19B1(SceUInt16 command, SceUInt16 *pResult);

SceSysconForDriver_CFCEE733

Version NID
0.931.010-3.740.011 0xCFCEE733

Sends 2 bytes from Syscon command 0x181.

int SceSysconForDriver_CFCEE733(SceUInt32 unk);

SceSysconForDriver_FDB3AE9D

Version NID
0.931.010-3.740.011 0xFDB3AE9D

Gets 0x10 bytes from Syscon command 0x183.

int SceSysconForDriver_FDB3AE9D(int *pResult);

SceSysconForDriver_C3504ADE

Version NID
0.931.010-3.740.011 0xC3504ADE

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_DE613081.

Used in SceHpremote.

SceBool SceSysconForDriver_C3504ADE(void);

SceSysconForDriver_B832B72C

Version NID
0.931.010-3.740.011 0xB832B72C

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_229A07C2.

SceBool SceSysconForDriver_B832B72C(void);

SceSysconForDriver_86BAAF7D

Version NID
0.931.010-3.740.011 0x86BAAF7D

A guessed name is sceSysconIsAlarmTimerExistForDriver.

Returns the global variable related to #SceSysconForDriver_8351526D.

Used in SceRtc.

SceBool SceSysconForDriver_86BAAF7D(void);

SceSysconForDriver_A57B5433

Version NID
0.931.010-3.740.011 0xA57B5433

A guessed name is sceSysconIsResumeRequestedForDriver.

Related to #SceSysconForDriver_9F8340FF.

SceBool SceSysconForDriver_A57B5433(void);

SceSysconForDriver_ACC7F71E

Version NID
0.931.010-3.740.011 0xACC7F71E

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_35E1689F.

Used in SceHpremote.

SceBool SceSysconForDriver_ACC7F71E(void);

SceSysconForDriver_769F9AC4

Version NID
0.931.010-3.740.011 0x769F9AC4

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_474A9EA7.

Returns always SCE_TRUE on PS TV. This function could be related to USB or ethernet availability.

No use case seen.

SceBool SceSysconForDriver_769F9AC4(void);

SceSysconForDriver_4BC63A40

Version NID
0.931.010-3.740.011 0x4BC63A40

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_4E88B4D9.

Used in SceSblPostSsMgr.

SceBool SceSysconForDriver_4BC63A40(void);

SceSysconForDriver_99A254A9

Version NID
0.931.010-3.740.011 0x99A254A9

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_376CCCB8.

No use case seen.

SceBool SceSysconForDriver_99A254A9(void);

SceSysconForDriver_9A4F4B7C

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0x9A4F4B7C

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_3BAAC8A9.

No use case seen.

SceBool SceSysconForDriver_9A4F4B7C(void);

SceSysconForDriver_92D2C6A4

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x92D2C6A4
int SceSysconForDriver_92D2C6A4(void);

SceSysconForDriver_B9EA2FA8

Version NID
0.931.010-0.940 not present
0.995.000-3.740.011 0xB9EA2FA8

A guessed name is sceSysconIsAccExistForDriver.

Only used in SceUsbServ.

SceBool SceSysconForDriver_B9EA2FA8(void);

SceSysconForDriver_29CF4335

Version NID
0.931.010-3.740.011 0x29CF4335

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_2E4BA4B8.

It is related to Ernie DL Mode.

Used in SceSblPostSsMgr.

SceBool SceSysconForDriver_29CF4335(void);

SceSysconForDriver_32B2DB3D

Version NID
0.931.010-3.740.011 0x32B2DB3D
int SceSysconForDriver_32B2DB3D(void);

sceSysconIsHeadphoneExistForDriver

Version NID
0.931.010-3.740.011 0x142D5E82

Used in SceHpremote#sceHprmIsHeadphoneExistForDriver.

SceBool sceSysconIsHeadphoneExistForDriver(void);

sceSysconIsMotionDevExistForDriver

Version NID
0.931.010-3.740.011 0x490C5548

This is a guessed name.

Used in SceMotionDev.

SceBool sceSysconIsMotionDevExistForDriver(void);

SceSysconForDriver_012B57B3

Version NID
0.931.010 not present
0.940-3.740.011 0x012B57B3
int SceSysconForDriver_012B57B3(void);

SceSysconForDriver_27758A64

Version NID
0.931.010-0.940 not present
1.000.071-3.740.011 0x27758A64

A guessed name is sceSysconIsBatteryOnlineForDriver, deriving from #sceSysconIsPowerOnlineForDriver.

Used in ScePower#scePowerGetBatteryRemainLevelForDriver, ScePower#scePowerIsLowBatteryForDriver, ScePower's module_start.

Returns the global variable related to #SceSysconForDriver_80D6E061.

SceBool SceSysconForDriver_27758A64(void);

SceSysconForDriver_4A184B7C

Version NID
0.931.010-0.940 not present
1.000.071-3.740.011 0x4A184B7C

A guessed name is sceSysconIs...ForDriver.

Returns some information about battery.

Used in ScePower#ScePowerForDriver_627A89C6.

Returns the global variable related to #SceSysconForDriver_7682FE69.

SceBool SceSysconForDriver_4A184B7C(void);

SceSysconForDriver_ACEE1C70

Version NID
0.931.010-0.940 not present
0.996.090-3.740.011 0xACEE1C70

A guessed name is sceSysconIs...ForDriver.

Returns information about battery. Only used when battery is working.

Used in ScePower#ScePowerForDriver_0D56C601.

Returns the global variable related to #SceSysconForDriver_E0D52DF0.

SceBool SceSysconForDriver_ACEE1C70(void);

SceSysconForDriver_03C50DC3

Version NID
0.931.010-0.940 not present
1.000.071-3.740.011 0x03C50DC3

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_2D471528.

SceBool SceSysconForDriver_03C50DC3(void);

SceSysconForDriver_BFDA5590

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0xBFDA5590

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_129EA022.

SceBool SceSysconForDriver_BFDA5590(void);

SceSysconForDriver_63B14156

Version NID
0.931.010-0.996.090 not present
1.000.071-3.740.011 0x63B14156

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_85E5DEBF.

SceBool SceSysconForDriver_63B14156(void);

SceSysconForDriver_50CAE242

Version NID
0.931.010-0.940 not present
1.000.071-3.740.011 0x50CAE242

A guessed name is sceSysconIsThermalAlertForDriver.

Returns the global variable related to #sceSysconSetThermalAlertCallbackForDriver.

Used in ScePower.

SceBool SceSysconForDriver_50CAE242(void);

SceSysconForDriver_9F4042F8

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0x9F4042F8

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_C442D0BE.

No use case seen.

SceBool SceSysconForDriver_9F4042F8(void);

SceSysconForDriver_C50568E9

Version NID
0.931.010-3.01 not present
3.100.081-3.740.011 0xC50568E9

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_61AE3970.

This function was added to support DOL-1002 motherboard.

No use case seen.

SceBool SceSysconForDriver_C50568E9(void);

sceSysconIsLowBatteryForDriver

Version NID
0.931.010-3.740.011 0xD7F5A797

This is a guessed name.

Only used in ScePower.

SceBool sceSysconIsLowBatteryForDriver(void);

sceSysconIsLowBatteryInhibitUpdateRebootForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x1A0C140F

This function was added along with ScePower#scePowerIsLowBatteryInhibitUpdateReboot.

Used in ScePower#scePowerIsLowBatteryInhibitUpdateReboot.

SceBool sceSysconIsLowBatteryInhibitUpdateRebootForDriver(void);

sceSysconIsLowBatteryInhibitUpdateDownloadForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x1E3130EE

This function was added along with ScePower#scePowerIsLowBatteryInhibitUpdateDownload.

Used in ScePower#scePowerIsLowBatteryInhibitUpdateDownload.

SceBool sceSysconIsLowBatteryInhibitUpdateDownloadForDriver(void);

sceSysconGetBatteryRemainLevelForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x26F9D729

Only used if Syscon version >= 0x1040105.

This function was added along with ScePower#scePowerGetBatteryRemainLevelForDriver.

Used in ScePower#scePowerGetBatteryRemainLevelForDriver.

int sceSysconGetBatteryRemainLevelForDriver(SceUInt8 *pResult1, SceUInt8 *pResult2);

SceSysconForDriver_C0F215B7

Version NID
0.931.010-0.990.000 not present
0.996.090-3.740.011 0xC0F215B7

A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to #SceSysconForDriver_18A6F4D9.

The global variable is updated by #sceSysconCmdSyncForDriver.

It looks like it checks for WlanBt presence (used in SceWlanBt, skipping sdio/etc initialization if SceSysconForDriver_C0F215B7 returns 0).

SceBool SceSysconForDriver_C0F215B7(void);

SceSysconForDriver_D6F6D472

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0xD6F6D472

Guessed name is sceSysconGetMicroUsbInfoForDriver.

Gets electric information (maybe intensity) of the device connected to USB OTG on PS Vita Slim.

Returns a global variable updated by #sceSysconCmdSyncForDriver, obtained using Syscon command 0x130.

int SceSysconForDriver_D6F6D472(int *pInfo);

SceSysconForDriver_F99BC858

Version NID
0.931.010-3.01 not present
3.100.081-3.740.011 0xF99BC858

Detects microSD swap.

Calls syscon command 0x131.

This function was maybe added to support a prototype motherboard that has a microSD port.

int SceSysconForDriver_F99BC858(SceBool *isSwapped);

SceSysconForDriver_E7893732

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0xE7893732

Guessed name is sceSysconSetMicroUsbPortForDriver.

Calls Syscon command 0x1B0. Related to UART or Jig on PS Vita Slim or PS TV.

// value holds 3 useful bytes and 1 byte not sent to syscon
int SceSysconForDriver_E7893732(int value);

sceSysconGetElmoVersionForDriver

Version NID
0.931.010-3.740.011 0xA039B563

Temp name was sceSysconGetElmoFwVersionForDriver.

Calls Syscon command 0x880. Read Elmo registers 0xD0 through 0xEF.

On PS Vita 1000 series with IRS-001 motherboard, Elmo Fw Version is 0x192.

int sceSysconGetElmoVersionForDriver(SceUInt32 *pVersion);

sceSysconGetCookieVersionForDriver

Version NID
0.931.010-3.740.011 0x9BF78047

Temp name was sceSysconGetCookieFwVersionForDriver.

Calls Syscon command 0x881.

int sceSysconGetCookieVersionForDriver(SceUInt32 *pVersion);

sceSysconReadElmoRegForDriver

Version NID
0.931.010-3.740.011 0x5BF765BB

Calls Syscon command 0x895.

sceSysconWriteElmoRegForDriver

Version NID
0.931.010-3.740.011 0xCCC71C28

Calls Syscon command 0x896.

sceSysconReadCookieRegForDriver

Version NID
0.931.010-3.740.011 0x95975DD1

Calls Syscon command 0x897.

sceSysconWriteCookieRegForDriver

Version NID
0.931.010-3.740.011 0xF39300D3

Calls Syscon command 0x898.

Returns error 0x80250001 if offset is greater than 0xFF.

// offset: 0-0xFF
int sceSysconWriteCookieRegForDriver(SceUInt32 offset, SceUInt16 data);

Commands

It seems like the command format is as follows: (direction << 8) | cmd_id, where direction = 1 means write to syscon, and direction = 0 means read from syscon.

Command Return size (without considering the 2 bytes rx.size and rx.error_code) Functions NIDs Description
0x0 0x0 0x0D0B6D25 sceSysconNopForDriver
0x1 0x4 module_start sceSysconGetErnieVersionForDriver. Used during SysconInit.
0x2 0xC module_start sceSysconGetTimeStampForDriver. Returns 12-byte string followed by at least 2-byte memory leak. Used during SysconInit.
0x3 0x4 module_start sceSysconGetSleepFactor. Used during SysconInit.
0x4 0x4 Unknown. Run during boot. See Ernie#CMD_0x0004.
0x5 0x4 0xCBD6D8BC, module_start sceSysconGetHardwareInfoForDriver
0x6 0x10 0x965C68C3, module_start sceSysconGetHardwareInfo2ForDriver. Get Hardware Info 2. See KBL_Param#Hardware_Info_2.
0x10 0x2 0xCF5B2F2F sceSysconGetWakeupFactorForDriver
0x11 0x4 0xD7BEFF8B sceSysconGetClockForDriver
0x12 0x5 or 0x6 0x3168F3AF SceSysconForDriver_3168F3AF. Gets information about alarm timer. Return value is 1 byte indicating data size then 4 or 5 bytes of data.
0x13 0x2 0xBA09F171 SceSysconForDriver_BA09F171
0x14 ?between 0x1 and 0x4? 0x93075DD1 SceSysconForDriver_93075DD1
0x15 0x4 0x3E09A1F4 sceSysconGetManufacturesStatusForDriver
0x80 0x0 module_start ?? Used during SysconInit. Sends 2 bytes (ex: 0x0012) to Syscon.
0x81 ? 0x9B6A6F64 sceSysconSetClockForDriver. Sends 5 bytes to Syscon: 1 byte for size=5 and 4 bytes of data.
0x82 ? 0x51164951 SceSysconForDriver_51164951
0x83 ? 0x373ECF8A SceSysconForDriver_373ECF8A. Sends 3 bytes to Syscon.
0x84 ? 0x2659535C SceSysconForDriver_2659535C. Sends 1 byte to Syscon.
0x85 ? 0x4295D497 SceSysconForDriver_4295D497
0x86 8 0x701535FC sceSysconGetLogInfoForDriver
0x87 0 0x4E55CF5E sceSysconLogStartForDriver. Sends 1 byte to Syscon: 0.
0x88 0x18 0x487D97F3 sceSysconLogReadDataForDriver. Sends 2 bytes to Syscon: offset.
0x89 0 0x9C0B1E61 sceSysconLogStartWaitingForDriver. Sends 1 byte to Syscon: 0.
0x90 ?0x3B? 0x299B1CE7 sceSysconReadScratchPadForDriver
0x91 ?0x3B? 0xE26488B9 sceSysconWriteScratchPadForDriver
0xA0 ?0x10 or 0x28? second_loader Handshake during boot. See Ernie_Secure#Ernie_Secure_Commands.
0xB0 0 0x058941D7 sceSysconOutputClockForDriver. Sends 2 bytes to Syscon.
0xB1 0 0xDF8C6D2D sceSysconCtrlWirelessPowerDownForDriver
0xB2 0 0xDECCB2B4 sceSysconCtrlHostOutputViaDongleForDriver. Sends 2 bytes to Syscon.
0xB3 at least 1 0x33B5CDB3 SceSysconForDriver_33B5CDB3
0xB4 at least 1 0xF6D4DDC4 SceSysconForDriver_F6D4DDC4
0xB5 0 0x00AE3AEB SceSysconForDriver_00AE3AEB. Probably a control command. Sends 2 bytes to Syscon.
0xB6 0 0x0D300158 SceSysconForDriver_0D300158. Probably a control command. Sends 2 bytes to Syscon.
0xB7 at least 1 0x91EF4EC3 SceSysconForDriver_91EF4EC3
0xC0 ?0x3E?
0xC1 0 0x94AB13CC sceSysconErnieShutdownForDriver. Sends 2 bytes to Syscon.
0xD0 ?0x2A or 0x28? 0x4D03754A SceSysconForDriver_4D03754A. Handshake before SNVS RW. See Ernie_Secure#Ernie_Secure_Commands.
0xD1 ?0x0 or 0x2? 0xC14BD637 SceSysconForDriver_C14BD637
0xD2 ?0x30? 0xEBDF88B9, second_loader sceSysconSnvsReadDataForDriver. See Ernie_Secure#Ernie_Secure_Commands.
0xD3 ?0x12? 0x63683B9B sceSysconSnvsWriteDataForDriver. See Ernie_Secure#Ernie_Secure_Commands.
0x100 0x4 0x145F59A4 sceSysconGetControlsInfoForDriver. Used in SceCtrlVblankHandler in SceCtrl.
0x101 0x8 sceSysconGetControlsInfo2ForDriver. Used in SceCtrlVblankHandler in SceCtrl. Uses Ernie version and Ernie DL version.
0x102 0xC
0x103 0x4 0x1503D6A0 sceSysconGetMultiCnInfoForDriver
0x104 0xC sceSysconGetControlsInfo3ForDriver. Used in SceCtrlVblankHandler in SceCtrl.
0x105 ? Uses string "PS" then "TUV".
0x106 ?
0x107 ?
0x108 ?
0x109 ?
0x110 ?
0x120 ? 0x76272CB9 SceSysconForDriver_76272CB9
0x121 ?
0x130 0x4 module_start (SysconInit), 0xD6F6D472 SceSysconForDriver_D6F6D472
0x131 ?0x1? (read) 0xF99BC858 SceSysconForDriver_F99BC858. Added on a FW > 3.01 and <= 3.100.081.
0x140 ?
0x141 ?
0x142 ?
0x143 ?
0x144 ?
0x145 ?
0x146 ?
0x147 ?
0x148 ?
0x150 ?
0x151 ?
0x152 ?
0x153 ?
0x154 ?
0x155 ?
0x156 ?
0x157 ?
0x160 ?
0x161 ?
0x162 ?
0x163 ?
0x168 ?
0x170 ?
0x171 ?
0x172 ?
0x180 ? Set analog sampling. Sends 2 bytes to Syscon: 0 to disable, 1 to enable on Syscon version is < 0x90202, 3 to enable on Syscon version is >= 0x90202. Used in SceCtrlVblankHandler in SceCtrl.
0x181 0 0xCFCEE733 SceSysconForDriver_CFCEE733. Sends 2 bytes to Syscon.
0x182 ?
0x183 0x10 0xFDB3AE9D SceSysconForDriver_FDB3AE9D. Gets some information.
0x184 ?
0x185 ?
0x186 ?
0x187 ?
0x188 ?
0x189 ?
0x18A ?
0x18B ?
0x18C ?
0x18D ?
0x18E ?
0x18F ?
0x190 0 0x8AAB6308 sceSysconSetMultiCnPortForDriver. Sends 3 bytes to Syscon.
0x191 ?
0x192 ?
0x1A0 ?
0x1A1 ?
0x1B0 0 0xE7893732 SceSysconForDriver_E7893732. Sends 3 bytes to Syscon.
0x1B2 ?
0x1C0 ?
0x1C1 ?
0x1C2 ?
0x1C3 ?
0x1C4 ?
0x1D0 ?
0x1D1 ?
0x1D2 ?
0x1D3 ?
0x1D4 ?
0x1D5 ?
0x1E0 ?
0x1E1 ?
0x1E2 ?
0x1E3 ?
0x300 ?
0x301 ?
0x303 ?
0x380 at least 1 0xF492E69E sceSysconGetTouchpanelDeviceInfoForDriver
0x38A at least 1 0xA1F1B973 ??
0x390 at least 1 0x030D447F sceSysconGetTouchpanelDeviceInfo2ForDriver
0x392 ? 0x48ED8981, 0x060E55C1 SceSysconForDriver_48ED8981 / SceSysconForDriver_060E55C1. Sends 2 bytes to Syscon: 0 or 1.
0x393 ? 0x9A28BEEF, 0x8874EF45 SceSysconForDriver_9A28BEEF / SceSysconForDriver_8874EF45. Sends 2 bytes to Syscon: 0 or 1. Used in SceSblUpdateMgr.
0x3A0 ? ?? sceSysconTouchStartBlModeForDriver
0x3A1 ? ?? sceSysconTouchUnlockDeviceForDriver
0x3A2 ? ?? sceSysconTouchSetProgramDataForDriver
0x3A3 ? ?? sceSysconTouchExecProgramDataForDriver
0x3A4 ? ?? sceSysconTouchGetBLStatusForDriver
0x3A9 0 0x010F95D9 SceSysconForDriver_010F95D9. Sends 1 byte to Syscon.
0x3AB ? 0x357CC9D9 SceSysconForDriver_010F95D9. Sends 3 bytes to Syscon.
0x3AC ?between 0x1 and 0x4? 0x3664E2C0 SceSysconForDriver_3664E2C0. Gets information.
0x3AF ? 0xB8F4F4E3 SceSysconForDriver_B8F4F4E3. Sends 2 bytes to Syscon.
0x3B0 ? ?? sceSysconTouchStartBlModeForDriver
0x3B1 ? ?? sceSysconTouchUnlockDeviceForDriver
0x3B2 ? ?? sceSysconTouchSetProgramDataForDriver
0x3B3 ? ?? sceSysconTouchExecProgramDataForDriver
0x3B4 ? ?? sceSysconTouchGetBLStatusForDriver
0x3B9 ? 0x42E599AC SceSysconForDriver_42E599AC. Sends 1 byte to Syscon.
0x3BB ? 0xCCA56A16 SceSysconForDriver_CCA56A16. Sends 3 bytes to Syscon.
0x3BC ?between 0x1 and 0x4? 0x2E6D97CD SceSysconForDriver_2E6D97CD. Gets information.
0x3BF ? 0x240A604E SceSysconForDriver_240A604E. Sends 2 bytes to Syscon.
0x3C2 ? 0x5946B29B, 0x10327C64 SceSysconForDriver_5946B29B / SceSysconForDriver_10327C64. Sends 2 bytes to Syscon: 0 or 1. Used in SceSblUpdateMgr
0x400 ? 0x270B7B0B sceSysconMotionGetMeasureDataForDriver
0x480 4 0xD01E64FC sceSysconMotionGetDeviceInfoForDriver
0x481 ? 0x9A7858B6 SceSysconForDriver_9A7858B6. Sends 3 bytes to Syscon.
0x800 ?0x2 or 0x4? 0xA2FE9BF9 SceSysconForDriver_A2FE9BF9. ScePower#ScePowerForDriver_8C0D2051 related.
0x801 0x0 ??
0x802 ?0x4? 0xC562AF3A sceSysconGetBatteryRemainCapForDriver. Replaced by Syscon command 0x900 on Syscon version > 0x70503.
0x803 0x4 0x03F11220 sceSysconGetBatteryVoltForDriver. Replaced by Syscon command 0x901 on Syscon version > 0x70503.
0x804 ? ??
0x805 4 0xEF810687 sceSysconGetUsbDetStatusForDriver
0x806 ?0x1? 0xE7F5D3DC SceSysconForDriver_E7F5D3DC. Reboots PS Vita?
0x807 0x2 0x253CC522 SceSysconForDriver_253CC522.
0x820 0x0 0x727F985A sceSysconCtrlDolceLEDForDriver. Set PS TV LED on.
0x821 0x0 0x727F985A sceSysconCtrlDolceLEDForDriver. Set PS TV LED blink slowly.
0x822 0x0 0x727F985A sceSysconCtrlDolceLEDForDriver. Set PS TV LED blink fast.
0x840 ?0x1? 0x4FEC564C sceSysconGetManualChargeModeForDriver
0x841 ?0x1? 0x3C3B949C SceSysconForDriver_3C3B949C
0x842 ?0x1? 0x1C29C00E SceSysconForDriver_1C29C00E
0x843 ?0x1? 0x730E4725 SceSysconForDriver_730E4725
0x880 0x4 0xA039B563 sceSysconGetElmoVersionForDriver
0x881 ? 0x9BF78047 sceSysconGetCookieVersionForDriver
0x882 0x6 0x68E0031E sceSysconGetBatteryVersionForDriver. Replaced by Syscon command 0x980 on Syscon version > 0x70503.
0x883 0x8 0x175CE5A1 sceSysconGetPowerStatusForDriver
0x884 ? 0x3FDD29D6 SceSysconForDriver_3FDD29D6. Same usage as command 0x885. Sends 2 bytes to Syscon.
0x885 ? 0x79E6DD8B SceSysconForDriver_79E6DD8B. Same usage as command 0x884. Sends 2 bytes to Syscon.
0x886 ?0x2? 0x62155962 sceSysconCtrlHdmiCecPowerForDriver
0x887 ? 0x063425AE sceSysconCtrlMotionSensorPowerForDriver
0x888 ?0x2? 0xBE1ADE4F sceSysconCtrlSdPowerForDriver
0x889 ?0x2? 0x8D1D97E8 sceSysconCtrlAccPowerForDriver
0x88A ? 0x4FBDA504, 0xA2E85DB9 sceSysconCtrlWirelessPowerForDriver, sceSysconCtrlWirelessPower2ForDriver
0x88B ? 0x5A614349 SceSysconForDriver_5A614349. Sends 2 bytes to Syscon.
0x88C ? 0xB872E904 SceSysconForDriver_B872E904. Sends 2 bytes to Syscon.
0x88D ? 0xDD16ABD9 SceSysconForDriver_DD16ABD9. Sends 2 bytes to Syscon.
0x88E 0x0 0x7F198FA2 sceSysconCtrlVoltageForDriver. See Ernie#CMD_0x088E_-_CtrlVoltage.
0x88F ?0x2? 0x40FF3898 sceSysconCtrlDeviceResetForDriver. ?UsbEtherSmsc and WlanBt related?
0x890 ? 0x285594F8 SceSysconForDriver_285594F8. Sends 2 bytes to Syscon.
0x891 ?0x2? 0x04EC7579 sceSysconCtrlLEDForDriver
0x892 ?0? 0x596B17B7 sceSysconCtrlChargeACForDriver. ScePower related.
0x893 ?0? 0x2A4B0437 sceSysconCtrlChargeVBUSForDriver. ScePower related.
0x895 ? 0x5BF765BB sceSysconReadElmoRegForDriver
0x896 ? 0xCCC71C28 sceSysconWriteElmoRegForDriver
0x897 ? 0x95975DD1 sceSysconReadCookieRegForDriver
0x898 ? 0xF39300D3 sceSysconWriteCookieRegForDriver
0x899 ?0? 0x5CDDA14D ?Guessed name: sceSysconCtrlHpremoteForDriver? SceHpremote related.
0x89A ?0? 0x59DC5938 sceSysconCtrlUsbStatusForDriver
0x89B ?0x2? 0x710A7CF0 sceSysconCtrlRMRPowerForDriver
0x89C ?0x2? 0xB1F88B11 sceSysconCtrlMultiCnPowerForDriver. SceUsbServ related.
0x89D ? 0x6F586D1A sceSysconCtrlLedPwmBlinkForDriver
0x89E ? 0x9CA6EB70 sceSysconSetChargeLedCtrlForDriver. Sends 2 bytes to Syscon. ScePower related.
0x89F ? 0xCB41B531 sceSysconCtrlLedBlinkType2ForDriver. Sends 6 bytes to Syscon.
0x8A0 ?0x4? 0x9070F139 sceSysconGetBatteryTempForDriver. Replaced by Syscon command 0x981 on Syscon version > 0x70503.
0x8A1 ?0x3B or 0x4? 0x00A65FC1 sceSysconGetBatteryFullCapForDriver. Replaced by Syscon command 0x982 on Syscon version > 0x70503. ScePower related.
0x8A2 0x2 0x0826BA07 sceSysconGetBatteryElecForDriver. Replaced by Syscon command 0x983 on Syscon version > 0x70503.
0x8A3 ?0x4? 0xB841C141 sceSysconGetBatteryTTEForDriver. Replaced by Syscon command 0x984 on Syscon version > 0x70503.
0x8A4 ?0x4? 0x91D3B7A3 sceSysconGetBatterySOHForDriver. Replaced by Syscon command 0x985 on Syscon version > 0x70503.
0x8A8 2 0xC2FB5565 sceSysconReadBatteryRegForDriver. Replaced by Syscon command 0x986 on Syscon version > 0x70503.
0x8A9 ? 0x9B779DB0 sceSysconWriteBatteryRegForDriver. Replaced by Syscon command 0x987 on Syscon version > 0x70503.
0x8AA 2 0xA5AB19B1 SceSysconForDriver_A5AB19B1. Replaced by Syscon command 0x988 on Syscon version > 0x70503.
0x8B0 ? 0x4946538A sceSysconBatteryStartBLModeForDriver. Replaced by Syscon command 0x9B0 on Syscon version > 0x70503. Since FW 0.940, it is also used by sceSysconEnableHibernateIOForDriver independently of Syscon version.
0x8B1 ? 0xE4AE7852 sceSysconBatteryStopBLModeForDriver. Replaced by Syscon command 0x9B1 on Syscon version > 0x70503.
0x8B2 ? 0xE4F29744 sceSysconBatterySetBLCommandForDriver. Replaced by Syscon command 0x9B2 on Syscon version > 0x70503.
0x8B3 ? 0x74B2AB55 sceSysconBatteryExecBLCommandForDriver. Replaced by Syscon command 0x9B3 on Syscon version > 0x70503.
0x8B4 ? 0x448DAFF1 sceSysconBatteryReadBLCommandForDriver. Replaced by Syscon command 0x9B4 on Syscon version > 0x70503.
0x8C0 ? 0xC6A2C9EF sceSysconCtrlManualChargeModeForDriver (accepts 0 / 1 as value)
0x8C1 ? ?? sceSysconCtrlBatteryChargeForDriver (accepts 0 / 1 as value)
0x8C2 ? ?? sceSysconCtrlChargingCurrentForDriver (accepts 0x00 - 0x1F as value)
0x8C3 ? ?? sceSysconCtrlSupplyCurrentAcForDriver (accepts 0x00 - 0x19 as value)
0x8C4 ? ?? sceSysconCtrlSupplyCurrentUsbForDriver (accepts 0x00 - 0x19 as value)
0x8C5 ?0x0 or 0x2? 0x3274A925 SceSysconForDriver_3274A925. SceUsbServ and SceUsbEtherSmsc related.
0x8C6 ? 0xDFB024C4 sceSysconReadCookieStatusForDriver. SceSblUpdateMgr related.
0x8C7 ? 0x87FF8041 SceSysconForDriver_87FF8041. Sends 2 bytes to Syscon.
0x8C8 ? 0x7BFA95DA sceSysconCtrlUSBSupplyForDriver. Sends 2 bytes to Syscon.
0x8C9 ?0? 0x451C1662 SceSysconForDriver_451C1662. Sends 2 bytes to Syscon.
0x8CA 1 0x79074DE4 SceSysconForDriver_79074DE4. Sends 0 byte to Syscon.
0x8CB 1 0x7D25F6D2 SceSysconForDriver_7D25F6D2. Sends 1 byte to Syscon.
0x8CC ?0? 0xD2ADABCA SceSysconForDriver_D2ADABCA. Sends 2 bytes to Syscon.
0x8CE 0x10 0x3B354824 sceSysconGetTemperatureLogForDriver
0x8CF 0 0x3843D657 sceSysconClearTemperatureLogForDriver. Sends 2 bytes to syscon.
0x8D0 ? 0xF87679EE SceSysconForDriver_F87679EE. Sends 2 bytes to Syscon.
0x900 ?0x4? 0xC562AF3A sceSysconGetBatteryRemainCapForDriver. Replaces Syscon command 0x802 on Syscon version > 0x70503.
0x901 0x4 0x03F11220 sceSysconGetBatteryVoltForDriver. Replaces Syscon command 0x803 on Syscon version > 0x70503.
0x902 ?0x4? 0xAD0A8275 sceSysconGetBatteryLifePercentForDriver
0x903 0x2 0x26F9D729 sceSysconGetBatteryRemainLevelForDriver. Added on a FW higher than 2.50 and Syscon version >= 0x1040105.
0x904 ? 0x9ADC9936 sceSysconGetBatteryCalibDataForDriver
0x910 ?
0x911 ?
0x912 ?
0x913 ?
0x914 ?
0x915 ?
0x916 ?
0x917 ?
0x932 ?
0x944 ?
0x945 ?
0x952 ? Uses string "PC" then "TUV".
0x953 ?
0x954 ?
0x961 ?
0x962 ?
0x963 ?
0x964 ?
0x965 ?
0x966 ?
0x967 ?
0x968 ?
0x969 ?
0x980 0x6 0x68E0031E sceSysconGetBatteryVersionForDriver. Replaces Syscon command 0x882 on Syscon version > 0x70503.
0x981 ?0x4? 0x9070F139 sceSysconGetBatteryTempForDriver. Replaces Syscon command 0x8A0 on Syscon version > 0x70503.
0x982 ?0x4? 0x00A65FC1 sceSysconGetBatteryFullCapForDriver. Replaces Syscon command 0x8A1 on Syscon version > 0x70503. ScePower related.
0x983 0x2 0x0826BA07 sceSysconGetBatteryElecForDriver. Replaces Syscon command 0x8A2 on Syscon version > 0x70503.
0x984 ?0x4? 0xB841C141 sceSysconGetBatteryTTEForDriver. Replaces Syscon command 0x8A3 on Syscon version > 0x70503.
0x985 ?0x4? 0x91D3B7A3 sceSysconGetBatterySOHForDriver. Replaces Syscon command 0x8A4 on Syscon version > 0x70503.
0x986 2 0xC2FB5565 sceSysconReadBatteryRegForDriver. Replaces Syscon command 0x8A8 on Syscon version > 0x70503.
0x987 ? 0x9B779DB0 sceSysconWriteBatteryRegForDriver. Replaces Syscon command 0x8A9 on Syscon version > 0x70503.
0x988 2 0xA5AB19B1 SceSysconForDriver_A5AB19B1. Replaces Syscon command 0x8AA on Syscon version > 0x70503.
0x989 ? 0x87DA378D sceSysconBatterySWResetForDriver
0x98A ?between 0x2 and 0x4? 0xF93CF833 sceSysconGetBatteryFullCapForDriver
0x98B ?between 0x2 and 0x4? 0xECFA7242 / 0xE1885F68 sceSysconGetBicTempForDriver / sceSysconGetAbbyTempForDriver
0x98C ?0x4? 0xCD73079D sceSysconGetBatteryCycleCountForDriver
0x9B0 ? 0x2CEF078E / 0x4946538A sceSysconBatteryStartBLModeForDriver. Replaces Syscon command 0x8B0 on Syscon version > 0x70503. Since FW 0.940, it is also used by sceSysconEnableHibernateIOForDriver independently of Syscon version.
0x9B1 ? 0xE4AE7852 sceSysconBatteryStopBLModeForDriver. Replaces Syscon command 0x8B1 on Syscon version > 0x70503.
0x9B2 ? 0xE4F29744 sceSysconBatterySetBLCommandForDriver. Replaces Syscon command 0x8B2 on Syscon version > 0x70503.
0x9B3 ? 0x74B2AB55 sceSysconBatteryExecBLCommandForDriver. Replaces Syscon command 0x8B3 on Syscon version > 0x70503.
0x9B4 ? 0x448DAFF1 sceSysconBatteryReadBLCommandForDriver. Replaces Syscon command 0x8B4 on Syscon version > 0x70503.
0xA00 0x0 ??
0xA82 ? 0x7BAFE083 SceSysconForDriver_7BAFE083. Sends 2 bytes to Syscon.
0x1080 ?0x0 or 0x2? 0x81A6060D sceSysconNvsSetRunModeForDriver
0x1081 ?0x0 or 0x2? 0x2EC6D55D sceSysconNvsSetUnkModeForDriver
0x1082 ?around 0x20? 0xACAFA2B8 sceSysconNvsReadDataForDriver
0x1083 ?0x2? 0x10C9657A sceSysconNvsWriteDataForDriver
0x1100 0x4 0xD2F456DC sceSysconGetErnieDLVersionForDriver
0x1101 0x4
0x1180 ? 0x9B00BC7F sceSysconUpdaterSetSegmentForDriver
0x1181 ? 0x356B9696, 0x734544E4 sceSysconUpdaterSendProgramDataForDriver, sceSysconUpdaterSendProgramData2ForDriver
0x1182 ? 0x69AD76E4 sceSysconUpdaterExecProgrammingForDriver
0x1183 ? 0xB487C2FB sceSysconUpdaterSetRunModeForDriver
0x1184 ? 0xC7747A63 sceSysconUpdaterExecFinalizeForDriver
0x1185 ? 0xCBA836FF sceSysconUpdaterCheckSignatureForDriver. Sends 0x18 bytes to Syscon.
0x1300 0x8 0xCE48E8EB sceSysconGetConfigStorageInfoForDriver
0x1310 0x1 0x351946B0 SceSysconForDriver_351946B0
0x1382 ? 0xA4968B8C sceSysconBeginConfigstorageTransactionForDriver. Sends 1 byte to Syscon: 0.
0x1383 ? 0xFCC3E8EE sceSysconEndConfigstorageTransactionForDriver. Sends 1 byte to Syscon: 0.
0x1384 ? 0x7B9B3617 sceSysconCommitConfigstorageTransactionForDriver. Sends 1 byte to Syscon: 0.
0x1385 ? 0x89C5CFD6 sceSysconLoadConfigstorageScriptForDriver. Sends (3 + script_size) bytes to Syscon: script_size (1 byte), unk, script (variable length).
0x1386 (called from ARM Kernel but not implemented in Syscon FW) ? 0xCC6F90A8 sceSysconVerifyConfigstorageScriptForDriver. Sends (3 + script_size) bytes to Syscon: script_size (1 byte), unk, script (variable length).
0x1392 ?0? 0xFD65FFCB SceSysconForDriver_FD65FFCB. Sends 3 bytes to Syscon: 1 byte offset (between 0 and 0xFF), 2 bytes a2 (between 0 and 2).
0x1393 ? 0x02350352 SceSysconForDriver_02350352. Sends 2 bytes to Syscon: offset (between 0 and 0xFF)
0x1394 ? 0x7DE84CE3 SceSysconForDriver_7DE84CE3. Sends 2 bytes to Syscon: offset (between 0 and 0xFF)
0x2080 ? 0x44A173F5 sceSysconJigOpenPortForDriver
0x2081 ? 0x483FAE05 sceSysconJigClosePortForDriver
0x2082 ? 0xD24BF916 sceSysconJigSetConfigForDriver
0x2083 ? 0x3C80B529 receive_pm_sm_jig_msg_from_syscon
0x2084 ? 0xCE346793 send_pm_sm_jig_short_msg_to_syscon
0x2085 ? 0x7BFBA09E / 0x933D813F send_pm_sm_jig_msg_to_syscon / send_pm_sm_stop_to_syscon

Callbacks

All the following exported functions have this function prototype: int sceSysconSet...Callback(void (*func)(int enable, void *argp), void *argp);.

Callback name Callback setter function State getter function Callback setter caller Comments
SYSCON_CB_ACC #sceSysconSetAccCallbackForDriver #SceSysconForDriver_B9EA2FA8 SceUsbServ
SYSCON_CB_MULTI_CN_OTG #sceSysconSetMultiCnOtgCallbackForDriver NA SceUsbServ
SYSCON_CB_MINI_USB_OTG #sceSysconSetMiniUsbOtgCallbackForDriver NA SceUsbServ
SYSCON_CB_ALARM #sceSysconSetAlarmCallbackForDriver NA ScePower
?SYSCON_CB_WLANBT? #SceSysconForDriver_18A6F4D9 #SceSysconForDriver_C0F215B7 SceWlanBt but not used on <= 0.996.090
?SYSCON_CB_HEADPHONE? #SceSysconForDriver_DE613081 #SceSysconForDriver_C3504ADE SceHpremote
?SYSCON_CB_MICROPHONE? #SceSysconForDriver_63352A39 NA SceHpremote
?SYSCON_CB_REMOTE? #SceSysconForDriver_35E1689F #SceSysconForDriver_ACC7F71E SceHpremote
SYSCON_CB_LOW_BATTERY #sceSysconSetLowBatteryCallbackForDriver #sceSysconIsLowBatteryForDriver ScePower
SYSCON_CB_THERMAL_ALERT #sceSysconSetThermalAlertCallbackForDriver #SceSysconForDriver_50CAE242 ScePower
SYSCON_CB_LOW_BATTERY_INIHIBIT_UPDATE_REBOOT #sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver #sceSysconIsLowBatteryInhibitUpdateRebootForDriver ScePower
SYSCON_CB_LOW_BATTERY_INIHIBIT_UPDATE_DOWNLOAD #sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver #sceSysconIsLowBatteryInhibitUpdateDownloadForDriver ScePower
SYSCON_CB_BATTERY_ONLINE #SceSysconForDriver_80D6E061 #SceSysconForDriver_27758A64 ScePower
SYSCON_CB_RESUME_REQUEST #SceSysconForDriver_9F8340FF #SceSysconForDriver_A57B5433 ScePower
? #SceSysconForDriver_2D471528 #SceSysconForDriver_03C50DC3 ScePower Very similar to SYSCON_CB_LOW_BATTERY.
? #SceSysconForDriver_7682FE69 #SceSysconForDriver_4A184B7C No use case seen. Related to battery.
? #SceSysconForDriver_E0D52DF0 #SceSysconForDriver_ACEE1C70 No use case seen. Related to battery.
? #SceSysconForDriver_229A07C2 #SceSysconForDriver_B832B72C No use case seen.
? #SceSysconForDriver_474A9EA7 #SceSysconForDriver_769F9AC4 No use case seen.
? #SceSysconForDriver_129EA022 #SceSysconForDriver_BFDA5590 ScePower
SYSCON_CB_ALARM_TIMER #SceSysconForDriver_8351526D #SceSysconForDriver_86BAAF7D SceRtc
? #SceSysconForDriver_2E4BA4B8 #SceSysconForDriver_29CF4335 No use case seen. Used in SceSblPostSsMgr.
? #SceSysconForDriver_4E88B4D9 #SceSysconForDriver_4BC63A40 SceBbmc Used in SceSblPostSsMgr.
? #SceSysconForDriver_376CCCB8 #SceSysconForDriver_99A254A9 No use case seen.
? #SceSysconForDriver_3BAAC8A9 #SceSysconForDriver_9A4F4B7C No use case seen.
? #SceSysconForDriver_85E5DEBF #SceSysconForDriver_63B14156 SceBbmc
? #SceSysconForDriver_14730196 NA No use case seen.
? #SceSysconForDriver_C442D0BE #SceSysconForDriver_9F4042F8 No use case seen.
? #SceSysconForDriver_61AE3970 #SceSysconForDriver_C50568E9 No use case seen.
? #SceSysconForDriver_423D0C58 NA No use case seen.
? #SceSysconForDriver_154676F1 NA No use case seen.

See also SilverSpring's PSP Syscon callbacks enum and PSPSDK power callbacks enum.