Commit Graph

88 Commits

Author SHA1 Message Date
KazushiM
a6dcf1da5c [Sys-clk-OC] Added an governor toggle per title in overlay (default: governor enabled) (#37); Fixed an issue where governor does not bump CPU frequency immediately to max when some non-system core (Core0/1/2) util is 100%. 2022-10-28 22:18:20 +08:00
KazushiM
851839be0a Schedutil-like governor with proper load_avg calculation; Fixed #36 2022-10-27 01:41:38 +08:00
KazushiM
0f6fb06e53 Boost mode typo; uplift sample rate to 200/s; GPU boost mode = GPU throttled mode 2022-10-24 12:22:23 +08:00
KazushiM
b52bef3c31 Updated: Sys-clk-OC, Loader, System_settings
- Sys-clk-OC

  - Major cleanup in clock_manager, preparing to add basic Erista support.

  - Added an experimental CPU & GPU frequency governor.

    - Known issue:

      - Occasional stuttering is expected: GPU load% metric PMU_GET_GPU_LOAD does not reflect real utilization precisely. Use another metric, some interpolation algo or add min frequency option for improvement.

- Loader

  - Addressed an issue for Erista variants: Boot with unmodified Fusee or Hekate, nn::pcv::EmcDvfsPeriodicCompHandler will fail with rc 0x8C5. Fixed by removing 40.8 MHz while retaining 1600.0 MHz MEM table -- however, this means user has to use modified sys-clk.
2022-10-23 23:36:52 +08:00
KazushiM
d596016c84 Fix ReverseNX RT/Tool mode synchronization 2022-10-16 11:38:21 +08:00
KazushiM
1d7395da56 - [Sys-clk-OC] (#31) Fix the inverted priority of per-app and global settings in clocks and patches detection
- [loader] Bump to 1.4.0-pre

- [system_settings] Add possible entries introduced in HOS 15.0.0
2022-10-13 02:11:24 +08:00
KazushiM
c8587ce441 Misc gui in sys-clk overlay updated, HOS 15.0.0 test passed
Extracting nca...
79c6b910fe436a85496d3b822f23b8b9.nca (ptm) -> /Volumes/RAMDISK/ptm/
e11685a3958d1f25a8f44f54126b10ff.nca (pcv) -> /Volumes/RAMDISK/pcv/

Converting nca to elf...

Building...

Patching...
Patching pcv for Erista...
CpuClkOSLimit   Count: 1
CpuVoltLimit*   Count: 14
MemClkOSLimit   Count: 32
MemVoltHOS      Count: 2
MemClkPllmLimit Count: 2
	in void ams::ldr::oc::pcv::Erista::Patch(uintptr_t, size_t)
Saving to "/Volumes/RAMDISK/pcv/main.elf.erista"...
Patching pcv for Mariko...
CpuClkOSLimit   Count: 1
CpuClkOfficial  Count: 1
GpuClkOfficial  Count: 1
CpuVoltOfficial Count: 13
MemClkOSLimit   Count: 32
GpuClkPllLimit  Count: 1
MemClkPllmLimit Count: 2
GpuAsmPattern   Count: 2
	in void ams::ldr::oc::pcv::Mariko::Patch(uintptr_t, size_t)
Saving to "/Volumes/RAMDISK/pcv/main.elf.mariko"...
Passed!

Patching ptm (Mariko Only)...
cpuPtmBoost Count: 2
memPtmMax   Count: 9
memPtmAlt   Count: 7
	in void ams::ldr::oc::ptm::Patch(uintptr_t, size_t)
Saving to "/Volumes/RAMDISK/ptm/main.elf.mariko"...
Passed!
2022-10-11 15:28:09 +08:00
KazushiM
1063022b65 Sys-clk-OC: remove temp. charging toggle, add charging limiter 2022-10-01 20:47:27 +08:00
KazushiM
ff0dcb5ece git subrepo clone --force https://github.com/WerWolv/libtesla Source/sys-clk-OC/overlay/lib/tesla
subrepo:
  subdir:   "Source/sys-clk-OC/overlay/lib/tesla"
  merged:   "930ce85"
upstream:
  origin:   "https://github.com/WerWolv/libtesla"
  branch:   "master"
  commit:   "930ce85"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "7a14ae618"
2022-10-01 17:09:03 +08:00
KazushiM
6f5de53382 [sys-clk-OC] Disable unsafe frequencies by default; Remove emulator-mode; Move fast-charging handler to sysmodule 2022-05-15 19:37:50 +08:00
KazushiM
fd77dfa6eb Add lbl screen backlight control toggle for overlay (in misc submenu) and memtester (press minus button) 2022-05-08 19:54:23 +08:00
KazushiM
9509455291 README.md; loader updated for AMS 1.3.2 2022-04-30 10:56:15 +08:00
KazushiM
c369641229 - [Sys-clk-OC]: Avoid conflicts with ptm module setting boost clocks
- [Sys-clk-OC]: Reduce sensitivity of Auto CPU Boost (≥95%)
- [test_patch]: Throw error if no patching entries were found.
2022-04-14 23:06:39 +08:00
KazushiM
926b9016b1 ldr_oc_suite: adopt ams style return code; test is now clang compatible; loader.kip will not crash if pcv/ptm sysmodules is manually patched. 2022-04-02 22:20:21 +08:00
KazushiM
ac43237b13 Sys-clk-OC: fix emulator-mode detection 2022-04-01 08:38:01 +08:00
KazushiM
0bb4249a5f Add info and script on patching sysmodules manually 2022-03-31 23:53:01 +08:00
KazushiM
3daff1b712 ldr_process_creation.cpp: pull from upstream (1.3.0-pre) 2022-03-24 14:34:35 +08:00
KazushiM
406b2df944 - Add emulator mode (GPU-only freq capping) for handheld profile
- HOS 14.0.0+ removed ts:GetTemperatureMilliC · retronx-team/sys-clk@dcd0d5d
2022-03-24 11:01:14 +08:00
KazushiM
d6e2ac2527 HOS 14.0.0 passed:
Extracting nca...
./43772e89bbf8147fef94a4e8d81f4810.nca (pcv) -> /Volumes/RAM/pcv/
./5110ceed5e759af52d8ad3efcd005580.nca (ptm) -> /Volumes/RAM/ptm/

Converting nca to elf...

Building and testing...
Patching pcv...
CpuClkOSLimit   Count: 1
CpuVoltLimit*   Count: 14
MemClkOSLimit   Count: 32
MemVoltHOS      Count: 2
MemClkPllmLimit Count: 2
	in void ams::ldr::oc::pcv::Erista::Patch(uintptr_t, size_t)
CpuClkOSLimit   Count: 1
CpuClkOfficial  Count: 1
GpuClkOfficial  Count: 1
CpuVoltOfficial Count: 13
MemClkOSLimit   Count: 32
GpuClkPllLimit  Count: 1
MemClkPllmLimit Count: 2
GpuAsmPattern   Count: 2
	in void ams::ldr::oc::pcv::Mariko::Patch(uintptr_t, size_t)
Passed!

Patching ptm...
cpuPtmBoost Count: 2
memPtmMax   Count: 9
memPtmAlt   Count: 7
	in void ams::ldr::oc::ptm::Patch(uintptr_t, size_t)
Passed!
2022-03-23 13:51:48 +08:00
KazushiM
6585abfcb8 Configurable CPU Boost Freq 2022-03-17 12:21:06 +08:00
KazushiM
eaed085697 Read PTO (PLL test output) regs; Prevent CPU clock from being stuck at boost freq when "Auto CPU Boost" is toggled off 2022-02-12 20:02:48 +08:00
KazushiM
4ff20f15f1 - 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)
2022-02-11 01:42:57 +08:00
KazushiM
94ac52e80b homebrew to query clkrst registers, requires rebuilding nx-hbloader to allow access; emc pllm(b) divm accepts 1/2/4 only 2022-02-09 19:06:55 +08:00
KazushiM
c701de9ca5 Match pattern before check configuration 2022-02-08 11:48:18 +08:00
KazushiM
7fd47ce576 Add loader configurator in python script 2022-02-08 00:35:05 +08:00
KazushiM
1421586391 Erista EMC volt in uV; Add safety checks (voltage and cust) 2022-02-07 02:25:18 +08:00
KazushiM
c3432281da Cleanup and add self-test 2022-02-07 01:22:14 +08:00
KazushiM
eed44be28b - Remove PLL clock limit (Mariko GPU 1300MHz, MEM 2133MHz; Erista MEM 1866MHz)
- Remove partial DRAM timing customization (waste of time & mem space, import and edit from ams fusee mtc_table instead)
2022-02-06 14:22:01 +08:00
KazushiM
2a08a6f714 - CPU OC for Erista (does NOT work out of the box)
- DRAM Bus voltage for Erista
- Mariko DRAM timing customization
2022-02-05 17:01:33 +08:00
KazushiM
03d2ded202 Customizable clock/volt/mtc_table without recompiling (requires uncompressed loader.kip) 2022-01-26 21:58:41 +08:00
KazushiM
a251178b4c use erista mtc table as tmp buffer for copying and referencing mariko mtc table 2022-01-25 18:54:12 +08:00
KazushiM
5d162b1876 release 1.2.6.0 2022-01-22 15:09:24 +08:00
KazushiM
0049ffbf7f cleanup 2022-01-21 18:01:43 +08:00
KazushiM
dcaafe6ea0 Refactor auto-patching 2022-01-21 17:20:45 +08:00
KazushiM
2778d29c43 [WIP] Auto patching without finding offsets manually, including EMC OC offsets for Erista 2022-01-21 01:50:54 +08:00
KazushiM
9815684152 [GPU OC] Max freq: 1305 MHz, tested with FP32 compute shaders; Disable GPU overvolting 2022-01-08 06:19:35 +08:00
KazushiM
2a71bde475 [TinyMemBenchNX] clkrstExit(); move SdOut binaries to release 2022-01-05 22:34:22 +08:00
KazushiM
4373f4fda8 - [loader] revised cpu coefficients
- [misc] report max77812 voltage reg
2022-01-03 04:10:33 +08:00
KazushiM
82fccb99e1 - [Sys-clk-OC overlay] Report info on battery current flow, battery cycle (might be useless, reset after each reboot)
- Remove InfoNX as voltage is not reported accurate
2022-01-01 02:39:01 +08:00
KazushiM
4b0bd74e80 [MemTesterNX] Add multi-thread(3) support and option to stress DRAM 2021-12-26 04:56:33 +08:00
KazushiM
4f922a1615 - [MEM] Replace 1331.2 MHz with 1600 MHz
- [MEM] Update timings

- [CPU] (Auto-)Boost freq is now 1785 MHz

- [Sys-clk-OC] Add charging and fast charging toggles in overlay
2021-12-25 19:01:55 +08:00
KazushiM
f2215a25ed More precise timing params (accounting for 8Gb density) 2021-12-24 03:09:26 +08:00
KazushiM
cf6ef64d99 No binaries released for now:
- [Sys-clk-OC] Add permanent override for overlay and manager, will add more toggles later and therefore deprecates InfoNX

- [MEM] Replace 1331 MHz table with 1600 MHz (idea by 3DSBricker)

- [MEM] Add more info on SDRAM and tips for timing calculation
2021-12-21 22:52:32 +08:00
KazushiM
e6b608fa43 - [Sys-clk-OC] Partial rewrite, general performance & stability improvement
- [ReverseNX-RT] Notify user if profile is synced with sys-clk
2021-12-18 23:11:26 +08:00
KazushiM
12aab58198 [Sys-clk-OC] improve Auto-Boost CPU (reuse some code from Governor_PoC) 2021-12-16 21:22:02 +08:00
KazushiM
5a63431088 Add extra mtc parameters (untested) and notes on unlocking 2nd DRAM sub-partition to double RAM bandwidth 2021-12-16 00:08:03 +08:00
KazushiM
c4d825102d Add some MC registers and reference 2021-12-15 01:49:44 +08:00
KazushiM
314b769708 [Sys-clk-OC] Add RAM freq selection 2021-12-11 20:21:20 +08:00
KazushiM
46c0cb88c3 [RAM@2131.2MHz] Add DRAM timing adjusment, 2131.2 MHz should work for all ram chips and achieves higher bandwidth;
[Fix] Revert to permanent RAM clock (ptm-patch);
No longer actively maintained next year.
2021-12-11 13:19:41 +08:00
KazushiM
c66c836ae3 GPU Max frequency is now 1497.6MHz; RAM clocks could be set in sys-clk-OC (1331 and Max); DRAM manu as suffixes in loader.kip file names for references; README 2021-12-03 23:46:43 +08:00