How to overclock Banana Pi with stable Armbian Linux version 4.19.62-sunxi


Go to solution Solved by djdeeles,

Recommended Posts

Armbianmonitor:

Hi enthusiast,

 

Last few year I used Armbian 5.25, which allow me to echo cpufreq into /sys/devices/system/cpu/cpu0/cpufreq/scaling_***_freq to choose the overclock freq. However, last week, I had to disconnect the power and the Banana Pi didn't boot again. So I decided to install a fresh updated version of Armbian, which is called Bionic. The /proc/version shows: 

Linux version 4.19.62-sunxi (root@armbian.com) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #5.92 SMP Wed Jul 31 22:07:23 CEST 2019

 

But now, when I want to overclock by using the method above, it won't allow me to go beyond 960MHz. That's the maximum. I was able to have stable system at 1152MHz in older version of Armbian 5.25 (Debian_jessie_default_3.4.113).

I found a post: http://forum.lemaker.org/thread-15543-1-1.html, but I don't know how to edit the file he mentioned in that post. Is it able to edit that file now? As I have set up everything now.

 

So the question is, how to overclock my Banana Pi to 1152MHz in Armbian Bionic (Linux version 4.19.62-sunxi)?

 

Thank you so much.

Link to post
Share on other sites
Armbian is a community driven open source project. Do you like to contribute your code?

14 hours ago, Igor said:

Hi there, I must have missed that when tried to figure out, probably because it showing in H5 & A64 subforum so I just automatically ignored it. Thanks for pointing out.

 

However, when I do the command

dtc -I dtb -O dts /boot/dtb-4.19.62-sunxi/sun7i-a20-bananapi.dtb -o /root/sun7i-a20-bananapi.dts

It showing this error:

Spoiler

root@bananapi:~# dtc -I dtb -O dts /boot/dtb-4.19.62-sunxi/sun7i-a20-bananapi.dtb -o /root/sun7i-a20-bananapi.dts
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /chosen/framebuffer@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /chosen/framebuffer@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /chosen/framebuffer@2 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /memory has a reg or ranges property, but no unit name
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /clocks/clk@1c20050 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /clocks/clk@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /clocks/clk@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /clocks/clk@2 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/can0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/clk_out_a@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/clk_out_b@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/emac0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/gmac_mii@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/gmac_rgmii@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/i2c0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/i2c1@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/i2c2@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/i2c3@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/ir0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/ir0@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/ir1@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/ir1@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/mmc0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/mmc2@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/mmc3@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/ps20@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/ps21@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/pwm0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/pwm1@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spdif@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi0_cs0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi0_cs1@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi1@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi1_cs0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi2@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi2@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi2_cs0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/spi2_cs0@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart0@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart2@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart3@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart3@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart4@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart4@1 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart5@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart6@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/uart7@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/usb0_id_detect_pin@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/mmc0_cd_pin@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/gmac_power_pin@0 has a unit name, but no reg property
/root/sun7i-a20-bananapi.dts: Warning (unit_address_vs_reg): Node /soc@1c00000/pinctrl@1c20800/led_pins@0 has a unit name, but no reg property

 

So I don't know what happen? My board is the very first one Banana Pi M1.

 

Link to post
Share on other sites
7 minutes ago, Igor said:


I see no errors, but warnings ... which are usually safe to ignore.

After choosing that file, I edited it as below:

cpus {
		#address-cells = <0x1>;
		#size-cells = <0x0>;

		cpu@0 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			reg = <0x0>;
			clocks = <0x2 0x14>;
			clock-latency = <0x3b9b0>;
			operating-points = <0x124f80 0x16e360 0x119400 0x16e360 0x10d880 0x162010 0x101d00 0x162010 0xf6180 0x162010 0xea600 0x155cc0 0xdea80 0x155cc0 0xd2f00 0x149970 0xafc80 0x1312d0 0x80e80 0x118c30 0x4c2c0 0x10c8e0 0x23280 0x100590>;
			#cooling-cells = <0x2>;
			cpu-supply = <0x3>;
			phandle = <0x6>;
		};

		cpu@1 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			reg = <0x1>;
			clocks = <0x2 0x14>;
			clock-latency = <0x3b9b0>;
			operating-points = <0x124f80 0x16e360 0x119400 0x16e360 0x10d880 0x162010 0x101d00 0x162010 0xf6180 0x162010 0xea600 0x155cc0 0xdea80 0x155cc0 0xd2f00 0x149970 0xafc80 0x1312d0 0x80e80 0x118c30 0x4c2c0 0x10c8e0 0x23280 0x100590>;
			#cooling-cells = <0x2>;
		};
	};

And then compile it back to /boot/dtb-4.19.62-sunxi/sun7i-a20-bananapi.dtb. Did a reboot, but nothing change. The available freq still 960000 max:

root@bananapi:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
144000 312000 528000 720000 864000 912000 960000
root@bananapi:~#

I did it wrong somewhere?

 

Thank you so much.

Link to post
Share on other sites

Is there anyone has successful in getting Banana Pi (Armbian 4.19.62-sunxi) overclocking at 1.152GHz ? Please guide me how to do it. Thank you so much.

 

I have tried to search for how to edit uboot, and find a post about Building Armbian. In the github, I find this file: build/config/sources/sun7i.conf, in there, has this section:

case $BRANCH in
	default)
	KERNELSOURCE='https://github.com/linux-sunxi/linux-sunxi'
	KERNELBRANCH='branch:sunxi-3.4'
	KERNELDIR='linux-sunxi'
	KERNEL_USE_GCC='> 5.0'

	CPUMAX=1010000
	;;

	next)
	CPUMAX=960000

	ASOUND_STATE='asound.state.sunxi-next'
	;;
esac

Is this the ones that limiting the cpu frequency to 960000? If I change this CPUMAX=960000 to CPUMAX=1152000, will the Armbian is able to run at 1.152HGHz? But what Kernel is this build,  3.4 or the Bionic 4.19.xx?

Link to post
Share on other sites
1 hour ago, Daniel The Wise said:

Please guide me how to do it.


https://www.armbian.com/get-involved/
 

1 hour ago, Daniel The Wise said:

has this section:


Those are user land limitations, but what you are looking for is below. HW encoded limitations which are set in the "bios" / u-boot. Ergo. I limit scope of your search, send you to I am sure correct destination, but from here you are on your own to find and change/things. 

Link to post
Share on other sites
  • Solution
On 8/23/2019 at 4:44 PM, Daniel The Wise said:

After choosing that file, I edited it as below:


cpus {
		#address-cells = <0x1>;
		#size-cells = <0x0>;

		cpu@0 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			reg = <0x0>;
			clocks = <0x2 0x14>;
			clock-latency = <0x3b9b0>;
			operating-points = <0x124f80 0x16e360 0x119400 0x16e360 0x10d880 0x162010 0x101d00 0x162010 0xf6180 0x162010 0xea600 0x155cc0 0xdea80 0x155cc0 0xd2f00 0x149970 0xafc80 0x1312d0 0x80e80 0x118c30 0x4c2c0 0x10c8e0 0x23280 0x100590>;
			#cooling-cells = <0x2>;
			cpu-supply = <0x3>;
			phandle = <0x6>;
		};

		cpu@1 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			reg = <0x1>;
			clocks = <0x2 0x14>;
			clock-latency = <0x3b9b0>;
			operating-points = <0x124f80 0x16e360 0x119400 0x16e360 0x10d880 0x162010 0x101d00 0x162010 0xf6180 0x162010 0xea600 0x155cc0 0xdea80 0x155cc0 0xd2f00 0x149970 0xafc80 0x1312d0 0x80e80 0x118c30 0x4c2c0 0x10c8e0 0x23280 0x100590>;
			#cooling-cells = <0x2>;
		};
	};

And then compile it back to /boot/dtb-4.19.62-sunxi/sun7i-a20-bananapi.dtb. Did a reboot, but nothing change. The available freq still 960000 max:


root@bananapi:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
144000 312000 528000 720000 864000 912000 960000
root@bananapi:~#

I did it wrong somewhere?

 

Thank you so much.

 

Also you need to adjust voltage controller as below. I also attached my dtb file.

Goodluck. If you find something useful please let me know.

 


					dcdc2 {
                        regulator-name = "vdd-cpu";
                        regulator-always-on;
                        regulator-min-microvolt = < 0xf4240 >;
                        regulator-max-microvolt = < 0x16e360 >;
                        phandle = < 0x03 >;
                    };

                    dcdc3 {
                        regulator-name = "vdd-int-dll";
                        regulator-always-on;
                        regulator-min-microvolt = < 0xf4240 >;
                        regulator-max-microvolt = < 0x16e360 >;
                        phandle = < 0xae >;
                    };

 

 

sun7i-a20-bananapi.dtb

Link to post
Share on other sites
On 11/26/2020 at 12:43 AM, djdeeles said:

 

Also you need to adjust voltage controller as below. I also attached my dtb file.

Goodluck. If you find something useful please let me know.

 




					dcdc2 {
                        regulator-name = "vdd-cpu";
                        regulator-always-on;
                        regulator-min-microvolt = < 0xf4240 >;
                        regulator-max-microvolt = < 0x16e360 >;
                        phandle = < 0x03 >;
                    };

                    dcdc3 {
                        regulator-name = "vdd-int-dll";
                        regulator-always-on;
                        regulator-min-microvolt = < 0xf4240 >;
                        regulator-max-microvolt = < 0x16e360 >;
                        phandle = < 0xae >;
                    };

 

 

sun7i-a20-bananapi.dtb 42.7 kB · 7 downloads

 

Thank you so much djdeeles, your comment is very helpful, directly solved into the problem, better than someone's answer (not pointed out the main issue for regular user, who not have much experience like him).

 

By the way, I just tried with your dtb on Armbian Buster 


sbc-bench v0.7.5 LeMaker Banana Pi (Sun, 06 Dec 2020 06:24:37 +0000) Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster

 

This is the result of sbc-bench v0.7.5 from tkaiser github: http://ix.io/2GOK

I am not sure if your dtb is from Debian 9 or 10 image, but it works for me. So again, thanks for your post.

 

MERRY CHRISTMAS and HAPPY NEW YEAR all of you!

Link to post
Share on other sites
2 minutes ago, djdeeles said:

is it stable at 1200 Mhz?

As you see the timestamp, I just freshly install the system and copy your dtb to the /boot, then install the script sbc-bench.sh, run it. After it finish, came to this post and  wrote a result. I have not done any stability test yet. But if you have any recommended test, I'd love to do it now.

However, 2 years ago, I test the board BPi M1 on Armbian 5.25, my board is only stable at 1.152GHz.

So any suggestion for pushing its limitation, I will do it.

Link to post
Share on other sites
On 12/6/2020 at 10:57 AM, Daniel The Wise said:

As you see the timestamp, I just freshly install the system and copy your dtb to the /boot, then install the script sbc-bench.sh, run it. After it finish, came to this post and  wrote a result. I have not done any stability test yet. But if you have any recommended test, I'd love to do it now.

However, 2 years ago, I test the board BPi M1 on Armbian 5.25, my board is only stable at 1.152GHz.

So any suggestion for pushing its limitation, I will do it.

It's stable up to 1200mhz at stress tests but after days or several hours with no load it kernel panics. I cant solve problem.

If its related with overclock or not. It's drive me crazy.

 

I tried different kernel versions and u-boot but no lock... :(

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...