- IPC service for handling ReverseNX-RT communication, reducing I/O requests
- Set config for "Auto CPU Boost"/"Sync ReverseNX Mode" in overlay - Apply hardened freq cap to handheld mode (CPU@1963MHz, GPU@921MHz)
This commit is contained in:
@@ -30,6 +30,7 @@ Result sysclkIpcGetProfiles(u64 tid, SysClkTitleProfileList* out_profiles);
|
||||
Result sysclkIpcSetProfiles(u64 tid, SysClkTitleProfileList* profiles);
|
||||
Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues);
|
||||
Result sysclkIpcSetConfigValues(SysClkConfigValueList* configValues);
|
||||
Result sysclkIpcSetReverseNXRTMode(ReverseNXMode mode);
|
||||
|
||||
static inline Result sysclkIpcRemoveOverride(SysClkModule module)
|
||||
{
|
||||
|
||||
@@ -57,6 +57,7 @@ typedef enum
|
||||
ReverseNX_SystemDefault = 0,
|
||||
ReverseNX_NotFound = 0,
|
||||
ReverseNX_NotValid = 0,
|
||||
ReverseNX_GotValue = 0,
|
||||
ReverseNX_Handheld,
|
||||
ReverseNX_Docked,
|
||||
ReverseNX_RTResetToDefault,
|
||||
@@ -65,11 +66,7 @@ typedef enum
|
||||
typedef struct
|
||||
{
|
||||
bool systemCoreBoostCPU;
|
||||
bool systemCoreCheckStuck;
|
||||
|
||||
ReverseNXMode reverseNXMode;
|
||||
|
||||
uint64_t tickWaitTimeMs;
|
||||
ReverseNXMode reverseNXMode;
|
||||
uint32_t maxMEMFreq;
|
||||
} SysClkOcExtra;
|
||||
|
||||
@@ -81,7 +78,9 @@ typedef struct
|
||||
};
|
||||
} SysClkTitleProfileList;
|
||||
|
||||
#define SYSCLK_GPU_HANDHELD_MAX_HZ 1267200000
|
||||
#define SYSCLK_CPU_HANDHELD_MAX_HZ 1963500000
|
||||
#define SYSCLK_GPU_HANDHELD_MAX_HZ 921600000
|
||||
#define SYSCLK_GPU_CHARGING_USB_MAX_HZ 1267200000
|
||||
|
||||
extern uint32_t sysclk_g_freq_table_mem_hz[];
|
||||
extern uint32_t sysclk_g_freq_table_cpu_hz[];
|
||||
|
||||
@@ -17,6 +17,8 @@ typedef enum {
|
||||
SysClkConfigValue_PollingIntervalMs = 0,
|
||||
SysClkConfigValue_TempLogIntervalMs,
|
||||
SysClkConfigValue_CsvWriteIntervalMs,
|
||||
SysClkConfigValue_AutoCPUBoost,
|
||||
SysClkConfigValue_SyncReverseNXMode,
|
||||
SysClkConfigValue_EnumMax,
|
||||
} SysClkConfigValue;
|
||||
|
||||
@@ -34,6 +36,10 @@ static inline const char* sysclkFormatConfigValue(SysClkConfigValue val, bool pr
|
||||
return pretty ? "Temperature logging interval (ms)" : "temp_log_interval_ms";
|
||||
case SysClkConfigValue_CsvWriteIntervalMs:
|
||||
return pretty ? "CSV write interval (ms)" : "csv_write_interval_ms";
|
||||
case SysClkConfigValue_AutoCPUBoost:
|
||||
return pretty ? "Enable Auto CPU Boost" : "auto_cpu_boost";
|
||||
case SysClkConfigValue_SyncReverseNXMode:
|
||||
return pretty ? "Enable ReverseNX Mode Sync" : "sync_reversenx_mode";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
@@ -44,10 +50,13 @@ static inline uint64_t sysclkDefaultConfigValue(SysClkConfigValue val)
|
||||
switch(val)
|
||||
{
|
||||
case SysClkConfigValue_PollingIntervalMs:
|
||||
return 300ULL;
|
||||
return 500ULL;
|
||||
case SysClkConfigValue_TempLogIntervalMs:
|
||||
case SysClkConfigValue_CsvWriteIntervalMs:
|
||||
return 0ULL;
|
||||
case SysClkConfigValue_AutoCPUBoost:
|
||||
case SysClkConfigValue_SyncReverseNXMode:
|
||||
return 1ULL;
|
||||
default:
|
||||
return 0ULL;
|
||||
}
|
||||
@@ -62,6 +71,9 @@ static inline uint64_t sysclkValidConfigValue(SysClkConfigValue val, uint64_t in
|
||||
case SysClkConfigValue_TempLogIntervalMs:
|
||||
case SysClkConfigValue_CsvWriteIntervalMs:
|
||||
return true;
|
||||
case SysClkConfigValue_AutoCPUBoost:
|
||||
case SysClkConfigValue_SyncReverseNXMode:
|
||||
return (input & 0x1) == input;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
#include <stdint.h>
|
||||
#include "clocks.h"
|
||||
|
||||
#define SYSCLK_IPC_API_VERSION 0
|
||||
#define SYSCLK_IPC_SERVICE_NAME "sys:clk"
|
||||
#define SYSCLK_IPC_API_VERSION 1
|
||||
#define SYSCLK_IPC_SERVICE_NAME "sysclkOC"
|
||||
|
||||
enum SysClkIpcCmd
|
||||
{
|
||||
@@ -29,6 +29,7 @@ enum SysClkIpcCmd
|
||||
SysClkIpcCmd_SetOverride = 8,
|
||||
SysClkIpcCmd_GetConfigValues = 9,
|
||||
SysClkIpcCmd_SetConfigValues = 10,
|
||||
SysClkIpcCmd_SetReverseNXRTMode = 11,
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user