Difference between revisions of "Overclocking"
(Add RK3399 info) |
|||
Line 2: | Line 2: | ||
{{note|This page is incomplete, you're welcome to improve it.}} | {{note|This page is incomplete, you're welcome to improve it.}} | ||
{{note|Overclocked devices may seem stable but crash occasionally and be hard to debug. A good test suite needs to be found to properly test the entire functionality of overclocked devices to properly ensure stability}} | {{note|Overclocked devices may seem stable but crash occasionally and be hard to debug. A good test suite needs to be found to properly test the entire functionality of overclocked devices to properly ensure stability}} | ||
{{note|Keep a backup bootable OS which is known to be stable, if an overclock fails you may not be able to boot the system without another OS }} | |||
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}} | {{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}} | ||
Line 60: | Line 61: | ||
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. | 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. | ||
= Rockchip = | = Rockchip RK3399 based boards = | ||
The RK3399 clocks are found in <code>arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi</code> | |||
More optimised voltages and clocks can be found in <code>arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi</code> | |||
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. | |||
Any clock speeds can be added for the GPU in <code>gpu_opp_table</code> | |||
A set of available clock speeds that can be added to the CPU clusters can be found in [need to fine file], these clock speeds can be added to <code>cluster0_opp</code> for the small cores and <code>cluster1_opp</code> for the big cores respectively | |||
Safe voltages for the GPU and small CPU core clusters are up to 1.2V. | |||
Safe voltages for the big CPU core cluster is up to 1.25V. | |||
These are specified in the RK3399 schematic provided by Rockchip as being the maximum recommended operating voltage. | |||
{{note|TuxThePenguin has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable, 1GHz was tried but crashed instantly.}} | |||
= Rockchip RK3328 based boards = | |||
TODO | TODO | ||
Revision as of 23:42, 27 May 2020
Overclocking is a way to get more and better 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.
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.
CPU
TODO
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.
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.
Any clock speeds can be added for the GPU in gpu_opp_table
A set of available clock speeds that can be added to the CPU clusters can be found in [need to fine file], these clock speeds can be added to cluster0_opp
for the small cores and cluster1_opp
for the big cores respectively
Safe voltages for the GPU and small CPU core clusters are up to 1.2V.
Safe voltages for the big CPU core cluster is up to 1.25V.
These are specified in the RK3399 schematic provided by Rockchip as being the maximum recommended operating voltage.
Rockchip RK3328 based boards
TODO