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 in ScePower's module_start.

sceSysconGetBatteryCycleCountForDriver
Used in 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 in ScePower. when setting a device clock frequency. Maybe sets 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 definition 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 in SceSdstor.

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

Replaced by function.

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

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

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 touchpanel info.

sceSysconGetHardwareInfoForDriver
Returns Hardware Info obtained from Syscon command 0x5.

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

This function was certainly added for PS Vita Slim or PS TV support.

sceSysconGetBaryonVersionForDriver
Baryon is the PSP Syscon. A more proper name would have been sceSysconGetErnieVersionForDriver but old name was kept.

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.

SceSysconForDriver_0D0B6D25
Maybe exits Syscon Deal DownLoader mode.

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

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

sceSysconGetErnieDLVersionForDriver
Calls 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 in SceRtc.

See also Syscon Scratchpad structure.

sceSysconWriteScratchPadForDriver
Temp name was sceSysconSendCommandForDriver, sceSysconVsWriteDataForDriver.

Calls Syscon command 0x91.

Used in SceRtc and ScePower.

See also Syscon Scratchpad structure.

sceSysconNvsSetRunModeForDriver
Used in sceSblNvsReadDataForKernel and sceSblNvsWriteDataForKernel.

sceSysconNvsReadDataForDriver
Used in sceSblNvsReadDataForKernel and sceSblSsGetNvsDataForDriver.

sceSysconNvsWriteDataForDriver
Used in 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 in 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.

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

SceSysconForDriver_058941D7
It is probably a "sceSysconCtrl...ForDriver" function.

Sends 2 bytes to Syscon using Syscon command 0xB0.

sceSysconCtrlHostOutputViaDongleForDriver
Enables / disables Kermit UART0 output (logs) via Dongle (Jig).

Sends 2 bytes to Syscon using Syscon command 0xB2.

SceSysconForDriver_33B5CDB3
Reads from Syscon using Syscon command 0xB3.

This function was probably added to support IRS-002 motherboard.

SceSysconForDriver_F6D4DDC4
Reads from Syscon using Syscon command 0xB4. It is probably the "get" equivalent of.

This function was added to support IRS-1001 motherboard.

SceSysconForDriver_00AE3AEB
It is probably a "sceSysconCtrl...ForDriver" function.

Sends 2 bytes to Syscon using Syscon command 0xB5. It is probably the "set" equivalent of.

This function was added to support IRS-1001 motherboard.

SceSysconForDriver_0D300158
It is probably a "sceSysconCtrl...ForDriver" function.

Sends 2 bytes to Syscon using Syscon command 0xB6. It is probably the "set" equivalent of.

This function was added to support DOL-1002 motherboard.

SceSysconForDriver_91EF4EC3
Reads from Syscon using Syscon command 0xB7. It is probably the "get" equivalent of.

This function was added to support DOL-1002 motherboard.

send_pm_sm_stop_to_syscon
Used just after send_pm_sm_jig_msg_to_syscon or when it fails before.

sceSysconSetWlanCallbackForDriver
This is a guessed name.

Registers a Wlan-related callback.

index 5 on FWs 0.931.010-0.940

SceSysconForDriver_18A6F4D9
A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0 on FW 3.600.011.

No use case seen.

Related to.

SceSysconForDriver_DE613081
A guessed name is sceSysconSetHeadphoneCallbackForDriver.

Registers an headphone remote related callback.

index 1 on FW 3.600.011.

Used in SceHpremote.

Related to.

SceSysconForDriver_9F8340FF
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_474A9EA7
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.

No use case seen.

sceSysconSetLowBatteryCallbackForDriver
Registers the low-battery callback.

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

SceSysconForDriver_80D6E061
A guessed name is sceSysconSetBatteryOnlineCallbackForDriver.

Registers a callback. Maybe related to Battery online status.

index 0x11 on FW 3.600.011.

SceSysconForDriver_7682FE69
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_E0D52DF0
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_2D471528
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_129EA022
A guessed name is sceSysconSet...CallbackForDriver.

Used in ScePower.

index 0x15 on FW 3.600.011.

Related to.

sceSysconSetThermalAlertCallbackForDriver
Registers the thermal alert callback.

index 0x17 on FW 3.600.011.

sceSysconSetLowBatteryInhibitUpdateRebootCallbackForDriver
This is a guessed name.

Registers the low-battery-inhibit-update-reboot callback.

index 0x1C on FW 3.600.011.

sceSysconSetLowBatteryInhibitUpdateDownloadCallbackForDriver
This is a guessed name.

Registers the low-battery-inhibit-update-download callback.

index 0x1D on FW 3.600.011.

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

SceSysconForDriver_63352A39
A guessed name is sceSysconSetMicrophoneCallbackForDriver.

Registers a callback.

index 0x22 on FW 3.600.011.

Used in SceHpremote.

SceSysconForDriver_14730196
A guessed name is sceSysconSet...CallbackForDriver.

Registers a callback.

index 0x23 on FW 3.600.011.

No use case seen.

sceSysconSetAlarmCallbackForDriver
Registers the alarm callback.

index 0 on FWs 0.931.010-0.940. index 0x24 on FW 3.600.011.

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

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

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

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

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

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

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

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

syscon_update_command_0xD00002
This is a guessed name.

Calls Syscon command 0xD0.

Used in SceSblUpdateMgr with update_service_sm command 0xD0002.

SceSysconForDriver_901D6CD4
Sets a flag used internally by SceSyscon.

Used in SceCtrl, ScePower.

sceSysconGetControlsInfoForDriver
This is a guessed name.

See Boot Controls Info.

Calls Syscon command 0x100.

SceSysconForDriver_76272CB9
Gets a 4 byte value.

Calls 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 in SceRtc 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 in 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 in 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 returns 0x8025023F. Maybe limited by model: PS TV? PS Vita Slim?.

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

sceSysconCtrlDeviceResetForDriver
Sends 2 bytes to Syscon command 0x88F.

0xC/0 : Touch Front or Back device

0xC/1 : Touch Front or Back device

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 in ScePower's module_start.

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

Used in ScePower's module_start.

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

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

Used in ScePower's module_start.

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

Used in ScePower's module_start.

sceSysconGetBatteryRemainCapacityForDriver
Only used in 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 in ScePower.

sceSysconGetBatteryLifePercentForDriver
Used in ScePower.

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

Used in ScePower.

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

Used in ScePower.

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

Used in ScePower.

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

Used in ScePower.

SceSysconForDriver_FDB3AE9D
Gets 0x10 bytes from Syscon command 0x183.

SceSysconForDriver_C3504ADE
A guessed name is sceSysconIsHeadphoneExistForDriver.

Returns the global variable related to.

Used in SceHpremote.

SceSysconForDriver_B832B72C
Returns a global variable.

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

Used in SceRtc.

SceSysconForDriver_A57B5433
A guessed name is sceSysconIsResumeRequestedForDriver.

Related to.

SceSysconForDriver_769F9AC4
A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to.

Returns always SCE_TRUE on PS TV. This function could be related to USB or ethernet availability.

No use case seen.

SceSysconForDriver_B9EA2FA8
A guessed name is sceSysconIsAccExistForDriver.

Only used in SceUsbServ.

sceSysconIsHeadphoneExistForDriver
Used in SceHpremote.

SceSysconForDriver_27758A64
A guessed name is sceSysconIsBatteryOnlineForDriver, deriving from.

Used in ScePower, ScePower, ScePower's module_start.

Returns the global variable related to.

SceSysconForDriver_4A184B7C
A guessed name is sceSysconIs...ForDriver.

Returns some information about battery.

Used in ScePower.

Returns the global variable related to.

SceSysconForDriver_ACEE1C70
A guessed name is sceSysconIs...ForDriver.

Returns information about battery. Only used when battery is working.

Used in ScePower.

Returns the global variable related to.

SceSysconForDriver_03C50DC3
A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to.

SceSysconForDriver_BFDA5590
A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to.

SceSysconForDriver_50CAE242
A guessed name is sceSysconIsThermalAlertForDriver.

SceSysconForDriver_C50568E9
This function was added to support DOL-1002 motherboard.

sceSysconIsLowBatteryForDriver
This is a guessed name.

Only used in ScePower.

sceSysconIsLowBatteryInhibitUpdateRebootForDriver
This function was added along with ScePower.

Used in ScePower.

sceSysconIsLowBatteryInhibitUpdateDownloadForDriver
This function was added along with ScePower.

Used in ScePower.

sceSysconGetBatteryRemainLevelForDriver
Only used if Syscon version >= 0x1040105.

This function was added along with ScePower.

Used in ScePower.

SceSysconForDriver_C0F215B7
A guessed name is sceSysconIs...ForDriver.

Returns the global variable related to.

The global variable is updated by.

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

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

SceSysconForDriver_F99BC858
Calls syscon command 0x131.

This function was maybe added to support DOL-1002 motherboard.

SceSysconForDriver_E7893732
Calls Syscon command 0x1B0. Related to UART or JIG on PS Vita Slim or PS TV.

sceSysconGetElmoVersionForDriver
This is a guessed name.

Calls Syscon command 0x880.

sceSysconGetCookieVersionForDriver
This is a guessed name.

Calls Syscon command 0x881.

sceSysconReadElmoRegForDriver
This is a guessed name.

Calls Syscon command 0x895.

sceSysconWriteElmoRegForDriver
This is a guessed name.

Calls Syscon command 0x896.

sceSysconReadCookieRegForDriver
This is a guessed name.

Calls Syscon command 0x897. Probably reads data from Cookie.

sceSysconWriteCookieRegForDriver
This is a guessed name.

Calls Syscon command 0x898. Probably writes data to Cookie.

Returns error 0x80250001 if offset is greater than 0xFF.

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 and PSPSDK power callbacks enum.