Difference between revisions of "PPC services"
Jump to navigation
Jump to search
m (Hexkyz moved page APM services to PPC services) |
|||
Line 1: | Line 1: | ||
APM is utilized for setting system performance profiles including clocks for CPU, GPU, and memory. | APM is utilized for setting system performance profiles including clocks for CPU, GPU, and memory. | ||
− | + | = apm = | |
This is "nn::apm::IManager". | This is "nn::apm::IManager". | ||
Line 13: | Line 13: | ||
|} | |} | ||
− | + | = apm:p = | |
This is "nn::apm::IManagerPrivileged". | This is "nn::apm::IManagerPrivileged". | ||
Line 23: | Line 23: | ||
|} | |} | ||
− | + | = apm:sys = | |
This is "nn::apm::ISystemManager". | This is "nn::apm::ISystemManager". | ||
Line 43: | Line 43: | ||
|} | |} | ||
− | == ISession | + | = ISession = |
+ | This is "nn::apm::ISession". | ||
+ | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 53: | Line 55: | ||
|} | |} | ||
− | + | == PerformanceMode == | |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 63: | Line 65: | ||
|} | |} | ||
− | + | == PerformanceConfiguration == | |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 98: | Line 100: | ||
Some of these require apm:p. | Some of these require apm:p. | ||
− | == Settings | + | = fgm, fgm:0, fgm:9 = |
+ | This is "nn::fgm::sf::ISession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || Initialize | ||
+ | |} | ||
+ | |||
+ | == IRequest == | ||
+ | This is "nn::fgm::sf::IRequest". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || Initialize | ||
+ | |- | ||
+ | | 1 || Set | ||
+ | |- | ||
+ | | 2 || Get | ||
+ | |- | ||
+ | | 3 || Cancel | ||
+ | |} | ||
+ | |||
+ | = fgm:dbg = | ||
+ | This is "nn::fgm::sf::IDebugger". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || Initialize | ||
+ | |- | ||
+ | | 1 || Read | ||
+ | |- | ||
+ | | 2 || Cancel | ||
+ | |} | ||
+ | |||
+ | = Settings = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- |
Revision as of 18:12, 12 May 2018
APM is utilized for setting system performance profiles including clocks for CPU, GPU, and memory.
apm
This is "nn::apm::IManager".
Cmd | Name | Notes |
---|---|---|
0 | OpenSession | Returns an #ISession. |
1 | GetPerformanceMode |
apm:p
This is "nn::apm::IManagerPrivileged".
Cmd | Name | Notes |
---|---|---|
0 | OpenSession | Returns an #ISession. |
apm:sys
This is "nn::apm::ISystemManager".
Cmd | Name | Notes |
---|---|---|
0 | RequestPerformanceMode | |
1 | GetPerformanceEvent | Returns an #ISession. |
2 | GetThrottlingState | |
3 | GetLastThrottlingState | |
4 | ClearLastThrottlingState | |
5 | [5.0.0+] LoadAndApplySettings |
ISession
This is "nn::apm::ISession".
Cmd | Name | Notes |
---|---|---|
0 | SetPerformanceConfiguration | Takes u32 PerformanceMode and u32 PerformanceConfiguration. |
1 | GetPerformanceConfiguration | Takes u32 PerformanceMode, returns output u32 PerformanceConfiguration. |
PerformanceMode
Value | Name |
---|---|
0 | Handheld |
1 | Docked |
PerformanceConfiguration
Value | CPU clock | GPU clock | Memory clock |
---|---|---|---|
0x00010000 | 1020 | 384 | 1600 |
0x00010001 | 1020 | 768 | 1600 |
0x00010002 | 1224 | 691.2 | 1600 |
0x00020000 | 1020 | 230.4 | 1600 |
0x00020001 | 1020 | 307.2 | 1600 |
0x00020002 | 1224 | 230.4 | 1600 |
0x00020003 | 1020 | 307 | 1331.2 |
0x00020004 | 1020 | 384 | 1331.2 |
0x00020005 | 1020 | 307.2 | 1065.6 |
0x00020006 | 1020 | 384 | 1065.6 |
0x92220007 | 1020 | 460.8 | 1600 |
0x92220008 | 1020 | 460.8 | 1331.2 |
Clocks are all in MHz.
Configurations 0x10001 and 0x20000 are only available while docked. Configurations 0x10002 and 0x20002 do not seem to be available at all (dependent on apm settings?).
Some of these require apm:p.
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 |
---|---|---|
battery_draining_enabled | 1 | ? |
performance_mode_policy | strlen | "auto": use boost mode when docked. "normal": never use boost mode. "boost": always use boost mode (devkit only). |
sdev_cpu_overclock_enabled | 1 | Not used as of 3.0. May have been used to allow access to 1224MHz CPU mode? |
sdev_throttling_additional_delay_us | 4 | ? |
sdev_throttling_additional_delay_enabled | 1 | ? |
throttling_for_smpd_enabled | 1 | Not used as of 3.0. |
throttling_for_undock_enabled | 1 | Not used as of 3.0. |