From c33aabdc8404c283d089470377c0909033d8fc2a Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Sat, 7 Feb 2026 18:10:12 -0500 Subject: [PATCH] chore: code cleanup --- .../loader/source/oc/customize.cpp | 34 +++++++++-------- .../loader/source/oc/customize.hpp | 36 ++++++++++++++---- Source/sys-clk/bitmap.py | 4 +- Source/sys-clk/common/include/sysclk/config.h | 8 ++-- Source/sys-clk/overlay/src/ui/gui/labels.cpp | 17 +++++++++ Source/sys-clk/overlay/src/ui/gui/labels.h | 17 +++++++++ .../sys-clk/overlay/src/ui/gui/misc_gui.cpp | 10 ++--- .../sys-clk/sysmodule/src/clock_manager.cpp | 6 +-- Source/sys-clk/sysmodule/src/kip.h | 6 +-- dist/atmosphere/kips/hoc.kip | Bin 280748 -> 280748 bytes 10 files changed, 97 insertions(+), 41 deletions(-) diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp index fcab653f..280a4b4b 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp @@ -31,14 +31,14 @@ namespace ams::ldr::oc { volatile CustomizeTable C = { - +/* Disables RAM powerdown */ .hpMode = DISABLED, -.commonEmcMemVolt = 1175000, // LPDDR4X JEDEC Specification -.eristaEmcMaxClock = 1600000, // Maximum HB-MGCH ram rating +.commonEmcMemVolt = 1175000, /* LPDDR4X JEDEC Specification */ +.eristaEmcMaxClock = 1600000, /* Maximum HB-MGCH ram rating */ -.marikoEmcMaxClock = 1866000, // 1866MHz @ 1866tWRL is guaranteed to work on all Mariko units -.marikoEmcVddqVolt = 600000, +.marikoEmcMaxClock = 1866000, /* 1866MHz @ 1866tWRL is guaranteed to work on all Mariko units */ +.marikoEmcVddqVolt = 600000, /* Micron: 600mV, other manafacturers: 640mV */ .emcDvbShift = 0, // Primary @@ -52,9 +52,7 @@ volatile CustomizeTable C = { .t7_tWTR = 0, .t8_tREFI = 0, -/* Set to 4 read and 2 write for 1866b tWRL. */ -/* For 2133 tWRL: 8 read and 4 write. */ - +/* You can mix and match different latencies if needed */ /* * Read: * 2133RL = 40 @@ -67,8 +65,9 @@ volatile CustomizeTable C = { * 1600WL = 14 * 1331WL = 12 */ -.mem_burst_read_latency = 36, -.mem_burst_write_latency = 16, + +.mem_burst_read_latency = RL_1866, +.mem_burst_write_latency = WL_1866, .eristaCpuUV = 0, .eristaCpuVmin = 800, @@ -78,9 +77,11 @@ volatile CustomizeTable C = { .marikoCpuUVLow = 0, // No undervolt .marikoCpuUVHigh = 0, // No undervolt + .tableConf = DEFAULT_TABLE, .marikoCpuLowVmin = 620, .marikoCpuHighVmin = 750, +/* 1120mV is NVIDIA rating */ .marikoCpuMaxVolt = 1120, /* Supported values: 1963000, 2091000, 2193000, 2295000, 2397000, 2499000, 2601000, 2703000. */ @@ -99,19 +100,22 @@ volatile CustomizeTable C = { .eristaGpuVmin = 810, .marikoGpuUV = 0, + /* For automatic vmin detection, set this to AUTO. */ -.marikoGpuVmin = AUTO, +/* vmin past 795mV won't work due to HOS limitation */ +/* Vmin is automatically set to 800mV when SoC temperature is below 20C */ +.marikoGpuVmin = AUTO, .marikoGpuVmax = 800, .commonGpuVoltOffset = 0, +/* Speedo is automatically set by hoc-clk on first boot */ .gpuSpeedo = 1450, -/* This table is used with a gpu uv mode of 2. */ /* Setting DEACTIVATED_GPU_FREQ on any freq will disable it and all freqs greater than it. (the latter is a bug :/) */ /* AUTO: Voltage is optimally chosen; with commonGpuVoltOffset applied. */ -/* AUTO only works up to 1305 GPU on Mariko and 921 GPU on Erista */ +/* AUTO only works up to 1305 GPU on Mariko and 998 GPU on Erista (it is reccomended to manually set your 998MHz voltage though) */ /* You can overwrite auto with any voltage (in mv) of your choice - offset will not be applied. */ .eristaGpuVoltArray = { @@ -159,8 +163,8 @@ volatile CustomizeTable C = { AUTO /* 921 */, AUTO /* 998 */, AUTO /* 1075 */, - DEACTIVATED_GPU_FREQ /* 1152 */, - DEACTIVATED_GPU_FREQ /* 1228 */, + AUTO /* 1152 (SLT / HiOPT Only!) */, + AUTO /* 1228 (HiOPT Only!) */, DEACTIVATED_GPU_FREQ /* 1267 (Disabled by default) */, DEACTIVATED_GPU_FREQ /* 1305 (Disabled by default) */, DEACTIVATED_GPU_FREQ /* 1344 (Disabled by default) */, diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp b/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp index b8959a22..e8836b4a 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp @@ -20,7 +20,7 @@ #pragma once -#define CUST_REV 11 +#define CUST_REV 1 #include "oc_common.hpp" #include "pcv/pcv_common.hpp" @@ -29,11 +29,6 @@ namespace ams::ldr::oc { #include "mtc_timing_table.hpp" -enum MtcConfig: u32 { - AUTO_ADJ = 0, - AUTO_ADJ_BL = 1, -}; - enum TableConfig: u32 { DEFAULT_TABLE = 1, TBREAK_1581 = 2, @@ -41,6 +36,33 @@ enum TableConfig: u32 { EXTREME_TABLE = 4, }; +/* + * Read: + * 2133RL = 40 + * 1866RL = 36 + * 1600RL = 32 + * 1331RL = 28 + * Write: + * 2133WL = 18 + * 1866WL = 16 + * 1600WL = 14 + * 1331WL = 12 + */ + +enum ReadLatency: u32 { + RL_2133 = 40, + RL_1866 = 36, + RL_1600 = 32, + RL_1331 = 28, +}; + +enum WriteLatency: u32 { + WL_2133 = 18, + WL_1866 = 16, + WL_1600 = 14, + WL_1331 = 12, +}; + using CustomizeCpuDvfsTable = pcv::cvb_entry_t[pcv::DvfsTableEntryLimit]; using CustomizeGpuDvfsTable = pcv::cvb_entry_t[pcv::DvfsTableEntryLimit]; static_assert(sizeof(CustomizeCpuDvfsTable) == sizeof(CustomizeGpuDvfsTable)); @@ -53,7 +75,7 @@ typedef struct CustomizeTable { u8 cust[4] = {'C', 'U', 'S', 'T'}; u32 custRev = CUST_REV; - u32 mtcConf; + u32 placeholder; u32 hpMode; u32 commonEmcMemVolt; diff --git a/Source/sys-clk/bitmap.py b/Source/sys-clk/bitmap.py index 2b0cdf87..bdf81362 100644 --- a/Source/sys-clk/bitmap.py +++ b/Source/sys-clk/bitmap.py @@ -12,7 +12,7 @@ def image_to_rgba8888_array(image_path, output_path): # Write as C header file with open(output_path, 'w') as f: - f.write('// This is a generated automatically generated file, do not edit manually.\n') + f.write('// This is a automatically generated file, do not edit manually.\n') f.write(f'// {os.path.basename(image_path)} - {width}x{height}\n') f.write(f'const unsigned int IMG_WIDTH = {width};\n') f.write(f'const unsigned int IMG_HEIGHT = {height};\n') @@ -32,7 +32,7 @@ def image_to_rgba8888_array(image_path, output_path): def main(): parser = argparse.ArgumentParser( - description='PNG -> RGB8888 script' + description='PNG to RGB8888 script' ) parser.add_argument('input', help='Input image file (e.g. cat.png)') parser.add_argument( diff --git a/Source/sys-clk/common/include/sysclk/config.h b/Source/sys-clk/common/include/sysclk/config.h index 3ff832a6..5825940b 100644 --- a/Source/sys-clk/common/include/sysclk/config.h +++ b/Source/sys-clk/common/include/sysclk/config.h @@ -60,7 +60,7 @@ typedef enum { HocClkConfigValue_FixCpuVoltBug, KipConfigValue_custRev, - KipConfigValue_mtcConf, + // KipConfigValue_mtcConf, KipConfigValue_hpMode, KipConfigValue_commonEmcMemVolt, @@ -226,8 +226,8 @@ static inline const char* sysclkFormatConfigValue(SysClkConfigValue val, bool pr // KIP config values case KipConfigValue_custRev: return pretty ? "Custom Revision" : "kip_cust_rev"; - case KipConfigValue_mtcConf: - return pretty ? "MTC Config" : "kip_mtc_conf"; + // case KipConfigValue_mtcConf: + // return pretty ? "MTC Config" : "kip_mtc_conf"; case KipConfigValue_hpMode: return pretty ? "HP Mode" : "kip_hp_mode"; @@ -446,7 +446,7 @@ static inline uint64_t sysclkValidConfigValue(SysClkConfigValue val, uint64_t in return (input & 0x1) == input; case KipConfigValue_custRev: - case KipConfigValue_mtcConf: + // case KipConfigValue_mtcConf: case KipConfigValue_hpMode: case KipConfigValue_commonEmcMemVolt: case KipConfigValue_eristaEmcMaxClock: diff --git a/Source/sys-clk/overlay/src/ui/gui/labels.cpp b/Source/sys-clk/overlay/src/ui/gui/labels.cpp index c7ab6635..c628cbb5 100644 --- a/Source/sys-clk/overlay/src/ui/gui/labels.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/labels.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + #include #include #include diff --git a/Source/sys-clk/overlay/src/ui/gui/labels.h b/Source/sys-clk/overlay/src/ui/gui/labels.h index fcb526d1..a157a44e 100644 --- a/Source/sys-clk/overlay/src/ui/gui/labels.h +++ b/Source/sys-clk/overlay/src/ui/gui/labels.h @@ -1,3 +1,20 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + #pragma once #include #include diff --git a/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp index 667e9ad4..553f8268 100644 --- a/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp @@ -255,9 +255,6 @@ void MiscGui::listUI() addConfigToggle(HocClkConfigValue_EnforceBoardLimit, nullptr); #if IS_MINIMAL == 0 - std::map labels_pwr_r = { - {8600, "Official Rating"} - }; std::map labels_pwr_l = { {6400, "Official Rating"} }; @@ -273,14 +270,13 @@ void MiscGui::listUI() labels_pwr_l ); } else { - ValueThresholds tdpThresholds(8600, 9500); + ValueThresholds tdpThresholds(9600, 11000); addConfigButton( HocClkConfigValue_HandheldTDPLimit, "TDP Threshold", - ValueRange(5000, 10000, 100, "mW", 1), + ValueRange(8000, 12000, 100, "mW", 1), "Power", - &tdpThresholds, - labels_pwr_r + &tdpThresholds ); } diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index 9e54ac84..eaaa8e41 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -739,7 +739,7 @@ void ClockManager::SetKipData() { } CUST_WRITE_FIELD_BATCH(&table, custRev, this->config->GetConfigValue(KipConfigValue_custRev)); - CUST_WRITE_FIELD_BATCH(&table, mtcConf, this->config->GetConfigValue(KipConfigValue_mtcConf)); + // CUST_WRITE_FIELD_BATCH(&table, mtcConf, this->config->GetConfigValue(KipConfigValue_mtcConf)); CUST_WRITE_FIELD_BATCH(&table, hpMode, this->config->GetConfigValue(KipConfigValue_hpMode)); CUST_WRITE_FIELD_BATCH(&table, commonEmcMemVolt, this->config->GetConfigValue(KipConfigValue_commonEmcMemVolt)); @@ -859,7 +859,7 @@ void ClockManager::GetKipData() { if(writeBootConfigValues) { writeBootConfigValues = false; - initialConfigValues[KipConfigValue_mtcConf] = cust_get_mtc_conf(&table); + // initialConfigValues[KipConfigValue_mtcConf] = cust_get_mtc_conf(&table); initialConfigValues[KipConfigValue_hpMode] = cust_get_hp_mode(&table); initialConfigValues[KipConfigValue_commonEmcMemVolt] = cust_get_common_emc_volt(&table); @@ -904,7 +904,7 @@ void ClockManager::GetKipData() { initialConfigValues[KipConfigValue_gpuSpeedo] = cust_get_gpu_speedo(&table); } - configValues.values[KipConfigValue_mtcConf] = cust_get_mtc_conf(&table); + // configValues.values[KipConfigValue_mtcConf] = cust_get_mtc_conf(&table); configValues.values[KipConfigValue_hpMode] = cust_get_hp_mode(&table); configValues.values[KipConfigValue_commonEmcMemVolt] = cust_get_common_emc_volt(&table); diff --git a/Source/sys-clk/sysmodule/src/kip.h b/Source/sys-clk/sysmodule/src/kip.h index e0c3059c..5f1b499a 100644 --- a/Source/sys-clk/sysmodule/src/kip.h +++ b/Source/sys-clk/sysmodule/src/kip.h @@ -28,7 +28,7 @@ typedef struct { u8 cust[4]; u32 custRev; - u32 mtcConf; + u32 placeholder; u32 hpMode; u32 commonEmcMemVolt; u32 eristaEmcMaxClock; @@ -183,7 +183,7 @@ static inline bool cust_read_and_cache(const char* path, CustomizeTable* out) { } while (0) static inline bool cust_set_cust_rev(const char* p, u32 v) { CUST_WRITE_FIELD(p, custRev, v); } -static inline bool cust_set_mtc_conf(const char* p, u32 v) { CUST_WRITE_FIELD(p, mtcConf, v); } +// static inline bool cust_set_mtc_conf(const char* p, u32 v) { CUST_WRITE_FIELD(p, mtcConf, v); } static inline bool cust_set_hp_mode(const char* p, u32 v) { CUST_WRITE_FIELD(p, hpMode, v); } static inline bool cust_set_common_emc_volt(const char* p, u32 v) { CUST_WRITE_FIELD(p, commonEmcMemVolt, v); } @@ -250,7 +250,7 @@ static inline u32 cust_get_field(const CustomizeTable* t, u32 offset) { #define CUST_GET_FIELD(table, field) ((table) ? (table)->field : 0) static inline u32 cust_get_cust_rev(const CustomizeTable* t) { return CUST_GET_FIELD(t, custRev); } -static inline u32 cust_get_mtc_conf(const CustomizeTable* t) { return CUST_GET_FIELD(t, mtcConf); } +// static inline u32 cust_get_mtc_conf(const CustomizeTable* t) { return CUST_GET_FIELD(t, mtcConf); } static inline u32 cust_get_hp_mode(const CustomizeTable* t) { return CUST_GET_FIELD(t, hpMode); } static inline u32 cust_get_common_emc_volt(const CustomizeTable* t) { return CUST_GET_FIELD(t, commonEmcMemVolt); } diff --git a/dist/atmosphere/kips/hoc.kip b/dist/atmosphere/kips/hoc.kip index 71c557bf0b86193acb18aace7598779d70cba2c6..8774f3de844fc086e3bdd0cbc4a33080af4f78ac 100644 GIT binary patch delta 64 zcmV-G0KfmNkrAws5rBjNgaWh!(4-V2_j-c}Tp0*fUdjFOSgdUSY!2GD