SceSyscon

System Controller.

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

sceSysconPowerCtrlKermitResetForDriver
Executes SMC 0x11A:

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

sceSysconGetBatteryFullCapacityForDriver
Used by ScePower.

sceSysconGetBatteryCycleCountForDriver
Used by ScePower.

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

sceSysconCtrlDolceLEDForDriver
This is a guessed name.

sceSysconGetBaryonTimestampForDriver
A temp name was sceSysconGetTimeStampForDriver, derived from PSP.

Returns the timestamp of latest installed Syscon FW patch, formatted as. This comes from a string stored in Syscon FW under another format:

Example:  in Syscon FW becomes   in Syscon command 2.

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

sceSysconCtrlHdmiCecPowerForDriver
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).

SceSysconForDriver_7F198FA2
Used by ScePower. when setting a device clock frequency. Maybe set the voltage.

sceSysconSetPowerModeForDriver
Temp name was sceSysconResetDeviceForDriver.

It issues  with.

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

The  argument determines what to do.

Real define names are like: "SCE_SYSCON_POWERMODE_MODE_STANDBY".

sceSysconWaitReadyForDriver
Temp name was sceSysconWaitInitializedForDriver.

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

Enables/disables GameCard reader.

Used by SceSdstor.

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

sceSysconCtrlWirelessPower2ForDriver
Replacement function for. Calls Syscon command 0x88A.

sceSysconCtrlWirelessPowerDownForDriver
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, a bit like on PSP.

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

sceSysconLoadConfigstorageScriptForDriver
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.

sceSysconGetTouchpanelDeviceInfo2ForDriver
This is a guessed name.

Returns extended panel info.

sceSysconGetHardwareInfoForDriver
Returns Hardware Info obtained from Syscon command 0x5.

sceSysconGetHardwareInfo2ForDriver
Returns Hardware Info, ID and Hardware Type obtained from Syscon command 0x6.

sceSysconGetBaryonVersionForDriver
Baryon is the PSP Syscon. A more proper name would be Ernie version.

SceSysconForDriver_0D0B6D25
Maybe exits Syscon Deal DownLoader mode.

SceSysconForDriver_EBE3262C
In SceSblPostSsMgr, used just after.

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.

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

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

sceSysconGetErnieDLVersionForDriver
Runs Syscon command 0x1100.

sceSysconGetBatteryVersionForDriver
Battery IC name: if HWinfo > 7 "Abby" else "Bert".

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

sceSysconReadScratchPadForDriver
Temp name was sceSysconReadCommandForDriver, sceSysconVsReadDataForDriver.

Calls syscon command 0x90.

Used by SceRtc.

See scratchpad content here

sceSysconWriteScratchPadForDriver
Temp name was sceSysconSendCommandForDriver, sceSysconVsWriteDataForDriver.

Calls syscon command 0x91.

Used by SceRtc and ScePower.

sceSysconNvsSetRunModeForDriver
Used by sceSblNvsReadDataForKernel and sceSblNvsWriteDataForKernel.

sceSysconNvsReadDataForDriver
Used by sceSblNvsReadDataForKernel and sceSblSsGetNvsDataForDriver.

sceSysconNvsWriteDataForDriver
Used by sceSblNvsWriteDataForKernel and sceSblSsSetNvsDataForDriver.

sceSysconGetMultiCnInfoForDriver
Returns data obtained by Syscon command 0x103.

sceSysconConfigLEDForDriver
This is a guessed name.

SceSysconForDriver_9CA6EB70
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 by ScePower. Related to LED.

sceSysconCtrlUsbStatusForDriver
Sends 3 bytes to Syscon command 0x89A.

Related to SceUdcd and ScePower.

sceSysconCtrlRMRPowerForDriver
Temp name was sceSysconCtrlMsPowerForDriver.

sceSysconCtrlDevKitUsbPowerForDriver
This is a guessed name.

sceSysconCtrlDolceUsbPowerForDriver
This is a guessed name.

sceSysconCtrlHostOutputViaDongleForDriver
Enables/Disables kermit uart0 via jig.

send_pm_sm_stop_to_syscon
Used just after send_pm_sm_jig_msg_to_syscon or when it fails before.

sceSysconSetAlarmCallbackForDriver
index 0 on FWs 0.931-0.940. index 0x24 on FW 3.60.

sceSysconSetWlanCallbackForDriver
This is a guessed name.

index 5 on FWs 0.931-0.940

sceSysconSetLowBatteryCallbackForDriver
index 6 on FWs 0.931-0.940. index 0x10 on FW 3.60.

sceSysconSetCallback_474A9EA7ForDriver
This is a temp name.

index 0xC on FWs 0.931-0.940. index 6 on FW 3.60.

sceSysconSetThermalAlertCallbackForDriver
index 0x17 on FW 3.60

sceSysconSetMultiCnOtgCallbackForDriver
This is a temp name.

Registers 2 callbacks (maybe constructor and destructor) for multi-connector OTG.

index 0x25 on FW 3.60

sceSysconSetMiniUsbOtgCallbackForDriver
This is a temp name.

Registers 2 callbacks (maybe constructor and destructor) for mini-USB OTG.

index 0x26 on FW 3.60

sceSysconSetAccCallbackForDriver
This is a temp name.

Registers 2 callbacks (maybe constructor and destructor) for accessory port.

index 0xF on FW 3.60

sceSysconUpdaterCalcChecksumForDriver
Computes checksum to use with sceSysconUpdaterExecProgrammingForDriver. It does not call any Syscon command.

sceSysconUpdaterExecProgrammingForDriver
Executes programming, i.e writes segments to Syscon Flash memory.

sceSysconUpdaterSetRunModeForDriver
On 3.60 Ernie FW, only updater run mode 0x72BA seems to be actually useful. Modes 0x9A54 and 0x152E are recognized but just returns without doing anything. Mode 0xC5E7 is not recognized by Ernie FW, although it is present on ARM side.

SceSysconForDriver_CBA836FF
Sends a 0x18-byte buffer to Syscon command 0x1185. This Syscon command 0x1185 seems to be unimplemented in recent Syscon FWs: it does not do anything.

snvs_read
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.

snvs_write
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.

syscon_update_command_0xD00002
Calls Syscon command 0xD0.

Used in SceSblUpdateMgr with update_service_sm command 0xD0002.

SceSysconForDriver_901D6CD4
Sets a flag used internally by SceSyscon.

Used by SceCtrl, ScePower.

sceSysconGetControlsInfoForDriver
This is a guessed name.

See Boot Controls Info.

Runs syscon command 0x100.

SceSysconForDriver_76272CB9
Gets a 4 byte value.

Runs syscon command 0x120.

SceSysconForDriver_D7BEFF8B
Gets Syscon power on time in ticks of 0.5 second. Each second the counter automatically increases by 2.

Calls Syscon command 0x11.

Used to calculate the current time and date.

SceSysconForDriver_3168F3AF
Calls Syscon command 0x12.

It is an alarm timer. It must be initialized using Syscon command 0x82 via.

SceSysconForDriver_BA09F171
Calls Syscon command 0x13.

It might be related to alarm/timer.

SceSysconForDriver_9B6A6F64
Calls Syscon command 0x81.

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

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

SceSysconForDriver_51164951
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.

Used by SceRtc.

The set value can be get with.

SceSysconForDriver_373ECF8A
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.

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

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

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

On DevKit, it returned 0x8025023F. Maybe limited by model.

SceSysconForDriver_175CE5A1
Calls Syscon command 0x883. Gets 8 bytes from Syscon.

sceSysconCtrlDeviceResetForDriver
Sends 2 bytes to Syscon command 0x88F.

SceSysconForDriver_285594F8
Sends 2 bytes to Syscon command 0x890.

SceSysconForDriver_596B17B7
Sends 2 bytes to Syscon command 0x892. Related to Battery. Maybe enables/disables battery charging.

Used by ScePower.

SceSysconForDriver_2A4B0437
Sends 3 bytes to Syscon command 0x893. Related to Battery. Maybe enables/disables battery charging.

Used by ScePower.

SceSysconForDriver_5CDDA14D
If Syscon version < 0x80001, it does nothing and returns 0, else it sends 2 bytes to Syscon command 0x899.

Related to SceHpremote. Maybe enables/disables Jack power.

Used by ScePower.

SceSysconForDriver_A2FE9BF9
Gets info related to battery charge status, or USB power connection. See also Ernie.

Used by ScePower.

sceSysconGetBatteryTempForDriver
If Syscon version <= 0x70503, it calls Syscon command 0x8A0, else Syscon command 0x981.

Used by ScePower.

sceSysconGetBatteryRemainCapacityForDriver
Only used by ScePower.

If Syscon version <= 0x70503, it calls Syscon command 0x802, else Syscon command 0x900.

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

Used by ScePower.

sceSysconGetBatteryLifePercentForDriver
Used by ScePower.

sceSysconGetBatteryRemainLevelForDriver
Only used if Syscon version >= 0x1040105.

Used by ScePower.

SceSysconForDriver_00A65FC1
If Syscon version <= 0x70503, it calls Syscon command 0x8A1, else Syscon command 0x982.

Used by ScePower.

sceSysconGetBatteryElecForDriver
If Syscon version <= 0x70503, it calls Syscon command 0x8A2, else Syscon command 0x983.

Used by ScePower.

sceSysconGetBatteryLifeTimeForDriver
If Syscon version <= 0x70503, it calls Syscon command 0x8A3, else Syscon command 0x984.

Used by ScePower.

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

Used by ScePower.

SceSysconForDriver_FDB3AE9D
Gets 0x10 bytes from Syscon command 0x183.

SceSysconForDriver_C3504ADE
Gets a global variable.

SceSysconForDriver_B832B72C
Gets a global variable.

SceSysconForDriver_86BAAF7D
Returns a 8-bit global variable casted to 32-bit for convenience.

Used by SceRtc.

SceSysconForDriver_769F9AC4
Returns a global variable initialized during SceSyscon initialization. Returns always SCE_TRUE (1) on PS TV.

SceSysconForDriver_B9EA2FA8
Only used by SceUsbServ.

SceSysconForDriver_D7F5A797
Only used by ScePower.

SceSysconForDriver_4A184B7C
Related to battery, called by ScePower.

SceSysconForDriver_ACEE1C70
Related to battery. Only used when battery is working.

Used by ScePower.

sceSysconIsLowBatteryInhibitUpdateRebootForDriver
used by scePowerIsLowBatteryInhibitUpdateReboot

sceSysconIsLowBatteryInhibitUpdateDownloadForDriver
used by scePowerIsLowBatteryInhibitUpdateDownload

SceSysconForDriver_C0F215B7
Gets a global variable (one byte) updated by.

SceSysconForDriver_D6F6D472
Gets electric information (maybe intensity) of the device connected to USB OTG on Slim PS Vita.

Returns a global variable updated by, obtained using Syscon command 0x130.

SceSysconForDriver_E7893732
Calls Syscon command 0x1B0. Related to UART, JIG or MultiCn.

SceSysconForDriver_A039B563
Calls Syscon command 0x880.

Commands
It seems like the command format is as follows:, where   means write to syscon, and   means read from syscon.

Callbacks
All the following exports have this function prototype:.

Maybe we will find more same as on PSP: SilverSpring's PSP Syscon callbacks enum.