For pcDuin1 and pcDuino2, overclocking needs to recompile kernel. The places need modification are the following:
1. sunxi-boards/sys_config/a10/pcduino.fex
[target]
boot_clock = 1008 // Mhz
dcdc2_vol = 1400 // mV
boot_clock = 1008 // Mhz
dcdc2_vol = 1400 // mV
The relation between voltage and frequency are as follows:
linux-sunxi/arch/arm/plat-sunxi/cpu-freq/cpu-freq-table.c
#ifdef CONFIG_CPU_FREQ_DVFS static struct cpufreq_dvfs sun4i_dvfs_table[] = { {.freq = 1056000000, .volt = 1500}, /* core vdd is 1.50v if cpu frequency is (1008Mhz, xxxxMhz] */ {.freq = 1008000000, .volt = 1400}, /* core vdd is 1.40v if cpu frequency is (960Mhz, 1008Mhz] */ {.freq = 960000000, .volt = 1400}, /* core vdd is 1.40v if cpu frequency is (912Mhz, 960Mhz] */ {.freq = 912000000, .volt = 1350}, /* core vdd is 1.35v if cpu frequency is (864Mhz, 912Mhz] */ {.freq = 864000000, .volt = 1300}, /* core vdd is 1.30v if cpu frequency is (624Mhz, 864Mhz] */ {.freq = 624000000, .volt = 1250}, /* core vdd is 1.25v if cpu frequency is (432Mhz, 624Mhz] */ {.freq = 432000000, .volt = 1250}, /* core vdd is 1.25v if cpu frequency is (0, 432Mhz] */ {.freq = 0, .volt = 1000}, /* end of cpu dvfs table */ }; #endif
2. linux-sunxi/arch/arm/plat-sunxi/cpu-freq/cpu-freq.h
/* Absolute minimum and maximum */
#define SUN4I_CPUFREQ_MAX (1008000000) /* config the maximum frequency of sun4i core */
#define SUN4I_CPUFREQ_MAX (1008000000) /* config the maximum frequency of sun4i core */
3. Enable CONFIG_CPU_FREQ_DVFS in kernel config.
After these modification, we need to rebuild the kernel and flash to pcDuino board.
Run “$cat /proc/cpuinfo” on pcDuino to check if overclocking takes place.
Note: It’s advised not to be over 1200MHz.
Leave a Reply
You must be logged in to post a comment.