EDIT: Added a github repo so you guys can see changes i make as I push them to github and/or use my source for your own kernel.
https://github.com/Echoa89/Firefly_OC
So here is my quick and dirty guide as to how I have overclocked the firefly and this will probably work for other rk3288 devices if you have source for them.
Here are the main files you will be editing, im starting at the top of the kernel tree for file location
kernel/arch/arm/boot/dts/firefly-rk3288.dts : This is where you will add cpu/gpu/dram frequencies kernel/drivers/clk/rockchip/clk-ops.h : this is to edit the safety frequency kernel/driver/clk/rockchip/clk-pll.c : This is the CPU pll table with available frequencies, might need to edit if you reach end of table errors
So first is the firefly dts file, open it up and go to line 642. If you dont have line numbers listed search for "&clk_core_dvfs_table" these are your available cpu frequencies and the voltages for each. You will need to add your frequency from the clk-pll table here and set the voltage the CPU will use next to it. Normally the max voltage is 1.4v but if you wish to push higher frequencies you will need to raise the voltage cap which is line 63 in the same file or search for " wireless-bluetooth" and itll be just under that with a list of voltages and the regulator set max voltage. I wouldnt recommend going any higher than 1.5v and realistically 1.45v unless you have good cooling. without cooling would be 1.4v. Just after the CPU table is the GPU table then the DRAM table, GPU you only have to add the frequency and voltage, DRAM you will have to add the frequency/voltage and adjust the settings just below for performance modes to use the frequencies properly. GPU I would keep below 1.4v and DRAM below 1.3v but I also dont know the rated max for either of these.
Next file to edit is the clk-ops.h, this is where the safety frequency is. Default this is set to 1.6ghz and any frequency over that from my testing is not used so even if you list it in your dts file it wont be used unless you increase the safety frequency. This is set on line 11 of the clk-ops.h file and is calculated as ( calc number * 6) / 7 * mhz = frequency. If you want to figure out what the calc number should be then take your max frequency you wish to use, multiply it by 7 then divide it by 6.
Next file is the clk-pll.c, this is the pll table for rk3188 and rk3288 cpu. Default the table lists up to 2.2ghz, and this for most will be plenty as to hit 2.2ghz you will have to go well over 1.4v to make it stable. So far this is the highest I have gone as i dont want to push too much beyond the CPU safe rated max of 1.4v which should get you a solid 2ghz on the CPU.
And after editing those files you just need to compile your kernel and flash the kernel.img and resource.img. Hopefully this helps those who are looking to overclock their board and test the limits of the RK3288 performance. Right now I have mine clocked as follows
CPU 2ghz GPU 700mhz DRAM 1333mhz (667mhz ddr in the dts)
My antutu score is between 46000 and 47000 usually.
EDIT: It might be possible to just remove the safety frequency all together and simplify the overclocking but I have been sick and havent tried it. I will try it and add it to the guide if it works without the safety frequency.
Here is the cooling i use for my Firefly, it keeps my temps at 30c idle and 50-60c under load
37x37x25mm heatsink
Fan i had laying around from an old athlon xp
and once i get the thermal pads this will be my full coverage back plate that goes on the back of the firefly :] I cut it from an old geforce 6800 heatsink |