Difference between revisions of "PTM services"
(oof - On the other hand, CPU boost mode should not drain more battery, it can even result to the opposite. That's because of total throttle of GPU.) |
(PerformanceMode official names) |
||
Line 367: | Line 367: | ||
! Value || Name | ! Value || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || Normal |
|- | |- | ||
− | | 1 || | + | | 1 || Boost |
|} | |} | ||
Revision as of 18:11, 16 February 2020
fan
This is "nn::fan::detail::IManager".
Cmd | Name |
---|---|
0 | OpenController |
IController
This is "nn::fan::detail::IController".
Cmd | Name |
---|---|
0 | SetRotationSpeedLevel |
1 | SetRotationSpeedLevelByDiff |
2 | GetRotationSpeedLevel |
3 | SetRotationRate |
4 | GetRotationRate |
5 | [1.0.0-6.2.0] EnableFan |
6 | [1.0.0-6.2.0] DisableFan |
7 | [1.0.0-6.2.0] GetActualRotationSpeedLevel |
[7.0.0+] SetRotationSpeedLevelByDiff/SetRotationRate no longer takes any input. GetRotationRate no longer returns output. These were presumably replaced with new cmds?
psm
This is "nn::psm::IPsmServer".
Cmd | Name |
---|---|
0 | #GetBatteryChargePercentage |
1 | #GetChargerType |
2 | #EnableBatteryCharging |
3 | #DisableBatteryCharging |
4 | #IsBatteryChargingEnabled |
5 | #AcquireControllerPowerSupply |
6 | #ReleaseControllerPowerSupply |
7 | #OpenSession |
8 | #EnableEnoughPowerChargeEmulation |
9 | #DisableEnoughPowerChargeEmulation |
10 | #EnableFastBatteryCharging |
11 | #DisableFastBatteryCharging |
12 | #GetBatteryVoltageState |
13 | #GetRawBatteryChargePercentage |
14 | #IsEnoughPowerSupplied |
15 | #GetBatteryAgePercentage |
16 | #GetBatteryChargeInfoEvent |
17 | #GetBatteryChargeInfoFields |
18 | [3.0.0+] GetBatteryChargeCalibratedEvent |
GetBatteryChargePercentage
No input, returns an output u32.
GetChargerType
No input, returns an output u32.
EnableBatteryCharging
No input/output.
DisableBatteryCharging
No input/output.
IsBatteryChargingEnabled
No input, returns an output u8.
AcquireControllerPowerSupply
No input/output.
ReleaseControllerPowerSupply
No input/output.
OpenSession
No input, returns an output #IPsmSession.
EnableEnoughPowerChargeEmulation
No input/output.
DisableEnoughPowerChargeEmulation
No input/output.
EnableFastBatteryCharging
No input/output.
DisableFastBatteryCharging
No input/output.
GetBatteryVoltageState
No input, returns an output u32.
GetRawBatteryChargePercentage
No input, returns an output u64.
IsEnoughPowerSupplied
No input, returns an output u8.
GetBatteryAgePercentage
No input, returns an output u64.
GetBatteryChargeInfoEvent
No input, returns an output event.
GetBatteryChargeInfoFields
No input, returns an output 0x40-byte struct.
IPsmSession
This is "nn::psm::IPsmSession".
Cmd | Name |
---|---|
0 | #BindStateChangeEvent |
1 | #UnbindStateChangeEvent |
2 | #SetChargerTypeChangeEventEnabled |
3 | #SetPowerSupplyChangeEventEnabled |
4 | #SetBatteryVoltageStateChangeEventEnabled |
BindStateChangeEvent
No input, returns an output event with autoclear disabled.
UnbindStateChangeEvent
No input/output.
SetChargerTypeChangeEventEnabled
Takes an input u8 bool, no output.
SetPowerSupplyChangeEventEnabled
Takes an input u8 bool, no output.
SetBatteryVoltageStateChangeEventEnabled
Takes an input u8 bool, no output.
tc
This is "nn::tc::IManager".
Cmd | Name |
---|---|
0 | SetOperatingMode |
1 | GetThermalEvent |
2 | IsActionAllowed |
3 | EnableVirtualTemperature |
4 | DisableVirtualTemperature |
5 | SetVirtualTemperature |
6 | EnableFanControl |
7 | DisableFanControl |
8 | IsFanControlEnabled |
9 | [5.0.0+] GetSkinTemperatureMilliC |
ts
This is "nn::ts::server::IMeasurementServer".
Cmd | Name |
---|---|
0 | #GetTemperatureRange |
1 | #GetTemperature |
2 | #SetMeasurementMode |
3 | #GetTemperatureMilliC |
4 | [8.0.0+] ? (Takes a total of 4-bytes of input, returns an #IUnknown0) |
IUnknown0
Added with [8.0.0+].
Cmd | Name |
---|---|
0 | |
1 | |
2 | |
3 |
GetTemperatureRange
Takes an u8 #Location and returns an s32 minimum temperature + s32 maximum temperature.
The returned temperature values are in Celsius.
GetTemperature
Takes an u8 #Location and returns an output s32.
The output is the temperature in Celsius.
SetMeasurementMode
Takes an u8 #Location and an u8 MeasurementMode, no output.
GetTemperatureMilliC
Takes an u8 #Location and returns an output s32.
The output is the temperature in MilliC.
Location
Value | Name |
---|---|
0 | Internal |
1 | External |
pcm
This is "nn::pcm::IManager".
Cmd | Name |
---|---|
0 | IsSupported |
1 | ReadCurrentPower |
apm:am
This is "nn::apm::IManager".
This was added with [8.0.0+] and replaces the old apm service.
Cmd | Name |
---|---|
0 | #OpenSession |
1 | GetPerformanceMode |
6 | [7.0.0+] #IsCpuOverclockEnabled |
OpenSession
Returns an #ISession.
IsCpuOverclockEnabled
No input, returns an output u8 bool.
apm:sys
This is "nn::apm::ISystemManager".
Cmd | Name |
---|---|
0 | RequestPerformanceMode |
1 | GetPerformanceEvent |
2 | GetThrottlingState |
3 | GetLastThrottlingState |
4 | ClearLastThrottlingState |
5 | [5.0.0+] LoadAndApplySettings |
6 | [7.0.0+] #SetCpuBoostMode |
7 | [7.0.0+] #GetCurrentPerformanceConfiguration |
GetPerformanceEvent
Returns an #ISession.
SetCpuBoostMode
Takes an u32 #CpuBoostMode.
CpuBoostMode
Mode | Description |
---|---|
0 | Disabled. |
1 | Boost CPU. Additionally, throttle GPU to minimum.
Use performance configurations 0x92220009 and 0x9222000A, or 0x9222000B and 0x9222000C. |
2 | Conserve power. Only throttle GPU to minimum.
Use performance configurations 0x9222000B and 0x9222000C. |
GetCurrentPerformanceConfiguration
Returns the currently active #PerformanceConfiguration (default value is 0x00020003).
ISession
This is "nn::apm::ISession".
Cmd | Name |
---|---|
0 | SetPerformanceConfiguration |
1 | GetPerformanceConfiguration |
2 | [8.0.0+] #SetCpuOverclockEnabled |
SetPerformanceConfiguration
Takes an u32 #PerformanceMode and an u32 #PerformanceConfiguration.
GetPerformanceConfiguration
Takes an u32 #PerformanceMode and returns an output u32 #PerformanceConfiguration.
SetCpuOverclockEnabled
Takes an input u8 bool, no output.
PerformanceMode
Value | Name |
---|---|
0 | Normal |
1 | Boost |
PerformanceConfiguration
Value | CPU clock | GPU clock | Memory clock |
---|---|---|---|
0x00010000 | 1020.0 | 384.0 | 1600.0 |
0x00010001 | 1020.0 | 768.0 | 1600.0 |
0x00010002 | 1224.0 | 691.2 | 1600.0 |
0x00020000 | 1020.0 | 230.4 | 1600.0 |
0x00020001 | 1020.0 | 307.2 | 1600.0 |
0x00020002 | 1224.0 | 230.4 | 1600.0 |
0x00020003 | 1020.0 | 307.2 | 1331.2 |
0x00020004 | 1020.0 | 384.0 | 1331.2 |
0x00020005 | 1020.0 | 307.2 | 1065.6 |
0x00020006 | 1020.0 | 384.0 | 1065.6 |
0x92220007 | 1020.0 | 460.8 | 1600.0 |
0x92220008 | 1020.0 | 460.8 | 1331.2 |
[7.0.0+] 0x92220009 | 1785.0 | 76.8 | 1600.0 |
[7.0.0+] 0x9222000A | 1785.0 | 76.8 | 1331.2 |
[7.0.0+] 0x9222000B | 1020.0 | 76.8 | 1600.0 |
[7.0.0+] 0x9222000C | 1020.0 | 76.8 | 1331.2 |
Clocks are all in MHz.
Configurations 0x10001 and 0x20000 are only available while docked. Configurations 0x10002 and 0x20002 are only available for SDEV units.
fgm, fgm:0, fgm:9
This is "nn::fgm::sf::ISession".
Cmd | Name |
---|---|
0 | Initialize |
IRequest
This is "nn::fgm::sf::IRequest".
Cmd | Name |
---|---|
0 | Initialize |
1 | Set |
2 | Get |
3 | Cancel |
fgm:dbg
This is "nn::fgm::sf::IDebugger".
Cmd | Name |
---|---|
0 | Initialize |
1 | Read |
2 | Cancel |
Settings
Key | Size | Notes |
---|---|---|
background_download_stress_testing_storage | strlen | "sdcard", "builtin", "system". |
battery_draining_enabled | 1 | ? |
fs_access_log_mode | strlen | "log", "sdcard", "log+sdcard", "off". |
fs_speed_emulation_mode | strlen | "faster", "slower", "random", "off". |
host_romfs_redirection_target | strlen | "builtin", "off". |
idle_time_detect_mode | strlen | "on", "off". |
initial_tick_value | strlen | "7days", "14days", "30days", "90days", "hex": ?. |
memory_mode | strlen | "auto", "4GB", "6GB". |
needs_update_vulnerability_policy | strlen | "default": ?, "force_true": ?, "force_false": ?. |
operation_mode_policy | strlen | "auto": ?, "handheld", "console". |
performance_mode_policy | strlen | "auto": use boost mode when docked. "normal": never use boost mode. "boost": always use boost mode (SDEV only). |
screenshot_target | strlen | "screenshot": ?, "physical": ?. |
sdev_cpu_overclock_enabled | 1 | SDEV only. Used to allow access to 1224MHz CPU mode. |
sdev_throttling_additional_delay_us | 4 | SDEV only. |
sdev_throttling_additional_delay_enabled | 1 | SDEV only. |
sleep_mode | strlen | "default": ?, "pseudo": ?. |
throttling_for_smpd_enabled | 1 | Not used as of 3.0. |
throttling_for_undock_enabled | 1 | Not used as of 3.0. |