v3.1 — GPU OC 600 MHz + CPU OC 1608 MHz
What's new in v3.1
GPU OC 600 MHz — confirmed stable
The GPU clock uses gpll (1200 MHz) / 2 = 600 MHz exactly. Unlike CPU OC, there is no rockchip,avs-scale restriction — adding an opp-600000000 node to /gpu-opp-table in the DTB is sufficient. No kernel recompile needed.
Benchmark results (L2 bin, glmark2 terrain off-screen):
| Condition | Freq | Voltage | FPS |
|---|---|---|---|
| Undervolted baseline | 520 MHz | 1087.5 mV | 15–16 |
| GPU OC | 600 MHz | 1150 mV | 18 |
+20% FPS, stable at 62°C.
Voltage: 1150 mV (vdd_logic PMIC hard limit). Within rockchip,max-volt = 1175 mV.
vdd_logicis shared between GPU and all SoC logic. Undervolt margin is very tight — GPU OC uses the maximum safe voltage. Future work: find the minimum stable voltage at 600 MHz.
CPU OC 1608 MHz — re-added to DTB menu (from v3.0)
The v1.8 implementation failed because rockchip,avs-scale=4 was silently stripping OPPs >1512 MHz at boot. The fix (avs-scale=0) is now correctly applied alongside the OPP node.
Menu: DTB Undervolt → CPU OC 1608 MHz [EXPERIMENTAL]
Voltage selector: 1350 / 1325 / 1300 / 1275 mV. Start conservative (1350 mV).
Full OC/UV state on our test unit (L2 bin)
| Component | Freq | Voltage | Status |
|---|---|---|---|
| CPU | 1512 MHz | 1175 mV (−125 mV UV) | ✅ Stable |
| CPU OC | 1608 MHz | 1350 mV | ✅ Stable (+1.6% over 1512) |
| GPU | 520 MHz | 1087.5 mV (−12.5 mV UV) | ✅ Stable |
| GPU OC | 600 MHz | 1150 mV | ✅ Stable (+20% terrain fps) |
Silicon lottery applies. Results are specific to our L2 bin unit. Your device may differ — always start with conservative voltages and have an SD card reader available for recovery.
For full technical details see docs/opp-research.md.