Difference between revisions of "Overclocking"
(→DRAM) |
(→GPU) |
||
Line 49: | Line 49: | ||
Save the dtsi file, and recompile the DTB. | Save the dtsi file, and recompile the DTB. | ||
The GPU appears to run stable overclocked to | The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed. | ||
{{note|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}} | {{note|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}} |
Revision as of 03:37, 30 May 2020
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default.
Preparation
TODO, requires a compatible cross compiler (usually aarch64-linux-gnu), and clone the pine64 kernel repository.
Then after that just setup the variables for make.
In the future there will likely be a driver to adjust clockspeeds from userspace without the need to recompile.
A64-based boards
GPU
Open arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
in a text editor.
Look for
mali: gpu@1c40000 { compatible = "allwinner,sun50i-a64-mali", "arm,mali-400"; reg = <0x01c40000 0x10000>; interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pp1", "ppmmu1", "pmu"; clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; clock-names = "bus", "core"; resets = <&ccu RST_BUS_GPU>; assigned-clocks = <&ccu CLK_GPU>; assigned-clock-rates = <432000000>; };
The assigned-clock-rates
line is set to 432000000
, this means that the GPU is clocked at 432MHz. So if you want 500MHz, set the value to 500000000
.
Save the dtsi file, and recompile the DTB.
The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.
CPU
Stock speed: 1.152GHz CPU
DRAM
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory.
Ideal overclock is 666 Mhz. This may be unstable on your device however. (Some people have reported instability at lower clockspeeds, however it's not clear if the overclock was at fault)
Rockchip RK3399 based boards
The RK3399 clocks are found in arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi
More optimised voltages and clocks can be found in arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.
GPU
Any clock speeds can be added for the GPU in gpu_opp_table
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.
TuxThePenguin has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.
The stock speed for the GPU is 800Mhz
CPU
A set of available clock speeds that can be added to the CPU clusters can be found in drivers/clk/rockchip/clk-rk3399.c
under rk3399_cpuclkl_rates
for the little cores and rk3399_cpuclkb_rates
for the big cores.
These clock speeds can be added to cluster0_opp
for the small cores and cluster1_opp
for the big cores respectively.
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.
TuxThePenguin has found that the little cores on his RK3399 can run at 1.6GHz, and 2.08GHz on the big cores.
DRAM
TODO
Rockchip RK3328 based boards
TODO