- oc_loader: pcv_erista: use 1963.5 MHz instead of 1989
- sys-clk-OC: update safe/unsafe frequencies (Erista CPU 1785/2091, Mariko CPU 1963/2397, Mariko GPU 998/1305); add 408/510 MHz CPU clocks; add unsafe toggle for Erista
This commit is contained in:
@@ -42,7 +42,7 @@ constexpr cpu_freq_cvb_table_t CpuCvbTableDefault[] = {
|
||||
|
||||
constexpr cpu_freq_cvb_table_t CpuCvbTableAppend[] = {
|
||||
{ 1887000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||
{ 1989000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||
{ 1963500, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||
{ 2091000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||
};
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ Switch sysmodule allowing you to set cpu/gpu clocks according to the running app
|
||||
|
||||
### CPU clocks
|
||||
|
||||
* 2397 → approx. max for Mariko
|
||||
* 2397 → approx. OC max for Mariko
|
||||
* 2295
|
||||
* 2193
|
||||
* 2091 → max for Mariko (without overvolting – capped at 1120 mV)
|
||||
* 1963 → official max for Mariko
|
||||
* 2091 → OC max for Erista
|
||||
* 1963 → official and safe max for Mariko
|
||||
* 1887
|
||||
* 1785 → official boost mode, OC max for Erista
|
||||
* 1683
|
||||
@@ -28,13 +28,12 @@ Switch sysmodule allowing you to set cpu/gpu clocks according to the running app
|
||||
|
||||
### GPU clocks
|
||||
|
||||
* ????
|
||||
* 1305 → OC max for Mariko
|
||||
* 1267 → official max for Mariko
|
||||
* 1228
|
||||
* 1152
|
||||
* 1075
|
||||
* 998
|
||||
* 998 → safe max for Mariko due to power draw
|
||||
* 921 → OC max for Erista
|
||||
* 844
|
||||
* 768 → official docked
|
||||
@@ -72,11 +71,19 @@ From Hekate Minerva module [sys_sdrammtc.c](https://github.com/CTCaer/hekate/blo
|
||||
|
||||
To protect the battery from excessive strain, clocks requested from config may be capped before applying, depending on your current profile:
|
||||
|
||||
### Erista
|
||||
### Erista (Safe)
|
||||
| | Handheld | Charging (USB) | Charging (Official) | Docked |
|
||||
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
|
||||
| **MEM** | - | - | - | - |
|
||||
| **CPU** | - | - | - | - |
|
||||
| **CPU** | 1785 | 1785 | 1785 | 1785 |
|
||||
| **GPU** | 460 | 768 | - | - |
|
||||
|
||||
|
||||
### Erista (Unsafe allowed)
|
||||
| | Handheld | Charging (USB) | Charging (Official) | Docked |
|
||||
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
|
||||
| **MEM** | - | - | - | - |
|
||||
| **CPU** | 1785 | - | - | - |
|
||||
| **GPU** | 460 | 768 | - | - |
|
||||
|
||||
|
||||
@@ -85,7 +92,7 @@ To protect the battery from excessive strain, clocks requested from config may b
|
||||
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
|
||||
| **MEM** | - | - | - | - |
|
||||
| **CPU** | 1963 | 1963 | 1963 | 1963 |
|
||||
| **GPU** | 921 | 921 | 921 | 921 |
|
||||
| **GPU** | 998 | 998 | 998 | 998 |
|
||||
|
||||
|
||||
### Mariko (Unsafe allowed)
|
||||
@@ -93,7 +100,7 @@ To protect the battery from excessive strain, clocks requested from config may b
|
||||
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
|
||||
| **MEM** | - | - | - | - |
|
||||
| **CPU** | - | - | - | - |
|
||||
| **GPU** | 921 | 1267 | - | - |
|
||||
| **GPU** | 998 | - | - | - |
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -20,7 +20,7 @@ make -j$CORES
|
||||
popd > /dev/null
|
||||
|
||||
mkdir -p "$DIST_DIR/atmosphere/contents/$TITLE_ID/flags"
|
||||
cp -vf "$ROOT_DIR/sysmodule/out/sys-clk.nsp" "$DIST_DIR/atmosphere/contents/$TITLE_ID/exefs.nsp"
|
||||
cp -vf "$ROOT_DIR/sysmodule/out/sys-clk-OC.nsp" "$DIST_DIR/atmosphere/contents/$TITLE_ID/exefs.nsp"
|
||||
>"$DIST_DIR/atmosphere/contents/$TITLE_ID/flags/boot2.flag"
|
||||
|
||||
echo "*** manager ***"
|
||||
|
||||
@@ -31,6 +31,8 @@ uint32_t g_freq_table_mem_hz[] = {
|
||||
};
|
||||
|
||||
uint32_t g_freq_table_cpu_hz[] = {
|
||||
408000000,
|
||||
510000000,
|
||||
612000000,
|
||||
714000000,
|
||||
816000000,
|
||||
|
||||
@@ -57,9 +57,10 @@ void MiscGui::listUI()
|
||||
this->listElement->addItem(new tsl::elm::CategoryHeader("Config"));
|
||||
|
||||
if (this->isMariko) {
|
||||
addConfigToggle(SysClkConfigValue_AllowUnsafeFrequencies);
|
||||
addConfigToggle(SysClkConfigValue_AutoCPUBoost);
|
||||
}
|
||||
|
||||
addConfigToggle(SysClkConfigValue_AllowUnsafeFrequencies);
|
||||
addConfigToggle(SysClkConfigValue_SyncReverseNXMode);
|
||||
addConfigToggle(SysClkConfigValue_DisableFastCharging);
|
||||
addConfigToggle(SysClkConfigValue_GovernorExperimental);
|
||||
|
||||
@@ -216,9 +216,9 @@ bool ClockManager::RefreshContext()
|
||||
bool hasChanged = this->config->Refresh();
|
||||
if (hasChanged) {
|
||||
this->rnxSync->ToggleSync(this->GetConfig()->GetConfigValue(SysClkConfigValue_SyncReverseNXMode));
|
||||
bool allowUnsafe = this->GetConfig()->GetConfigValue(SysClkConfigValue_AllowUnsafeFrequencies);
|
||||
Clocks::SetAllowUnsafe(allowUnsafe);
|
||||
if (Clocks::GetIsMariko()) {
|
||||
bool allowUnsafe = this->GetConfig()->GetConfigValue(SysClkConfigValue_AllowUnsafeFrequencies);
|
||||
Clocks::SetAllowUnsafe(allowUnsafe);
|
||||
this->governor->SetCPUBoostHz(Clocks::GetNearestHz(SysClkModule_CPU, SysClkProfile_EnumMax, Clocks::boostCpuFreq));
|
||||
this->governor->SetAutoCPUBoost(this->GetConfig()->GetConfigValue(SysClkConfigValue_AutoCPUBoost));
|
||||
}
|
||||
|
||||
@@ -24,33 +24,32 @@ void Clocks::GetRange(SysClkModule module, SysClkProfile profile, uint32_t** min
|
||||
|
||||
if (module == SysClkModule_CPU) {
|
||||
*min = &g_freq_table_cpu_hz[0];
|
||||
if (!isMariko)
|
||||
*max = &g_freq_table_cpu_hz[11]; // 1785
|
||||
else {
|
||||
if (allowUnsafe)
|
||||
*max = &g_freq_table_cpu_hz[17]; // 2397
|
||||
else
|
||||
*max = &g_freq_table_cpu_hz[13]; // 1963
|
||||
}
|
||||
if (isMariko)
|
||||
*max = !allowUnsafe ? &g_freq_table_cpu_hz[15] : &g_freq_table_cpu_hz[19]; // 1963 / 2397
|
||||
else
|
||||
*max = (!allowUnsafe || profile == SysClkProfile_Handheld) ?
|
||||
&g_freq_table_cpu_hz[13] : &g_freq_table_cpu_hz[16]; // 1785 / 2091
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (module == SysClkModule_GPU) {
|
||||
*min = &g_freq_table_gpu_hz[0];
|
||||
if (isMariko && !allowUnsafe) {
|
||||
*max = &g_freq_table_gpu_hz[11]; // 921
|
||||
if (isMariko) {
|
||||
*max = (!allowUnsafe || profile == SysClkProfile_Handheld) ?
|
||||
&g_freq_table_gpu_hz[12] : &g_freq_table_gpu_hz[17]; // 998 / 1305
|
||||
return;
|
||||
}
|
||||
|
||||
switch (profile) {
|
||||
case SysClkProfile_Handheld:
|
||||
*max = isMariko ? &g_freq_table_gpu_hz[11] : &g_freq_table_gpu_hz[5]; // 921 / 460
|
||||
*max = &g_freq_table_gpu_hz[5]; // 460
|
||||
break;
|
||||
case SysClkProfile_HandheldChargingUSB:
|
||||
*max = isMariko ? &g_freq_table_gpu_hz[16] : &g_freq_table_gpu_hz[9]; // 1267 / 768
|
||||
*max = &g_freq_table_gpu_hz[9]; // 768
|
||||
break;
|
||||
default:
|
||||
*max = isMariko ? &g_freq_table_gpu_hz[17] : &g_freq_table_gpu_hz[11]; // 1305 / 921
|
||||
*max = &g_freq_table_gpu_hz[11]; // 921
|
||||
break;
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -70,7 +70,6 @@ void Config::Load()
|
||||
|
||||
// Erista: Disable Mariko only features
|
||||
if (!Clocks::GetIsMariko()) {
|
||||
this->configValues[SysClkConfigValue_AllowUnsafeFrequencies] = 0;
|
||||
this->configValues[SysClkConfigValue_AutoCPUBoost] = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user