Jump to content

CPU won't run freq 1512000 on armbian. Running perfectly on any other distro.


Go to solution Solved by Werner,

Recommended Posts

Posted (edited)

Hi,

I have an Orange Pi Zero 3 with Allwinner H618 (1GB RAM version). The CPU specs say up to 1.5 GHz (1512000 kHz), and it hits that fine on other distros (like official Orange Pi Ubuntu images or Debian builds). But on Armbian, max freq is stuck at 1416000 kHz, even on latest kernels.

Board: Orange Pi Zero 3 (H618, 1GB RAM) Armbian Version: Armbian Bookworm (fresh SD flash, ran armbian-upgrade after boot) Kernel Versions Tested:

6.12.43-current-sunxi64

6.12.47-current-sunxi64

6.15.4-edge-sunxi64

6.16.8-edge-sunxi64 (current edge, i think)

What happens:

scaling_available_frequencies only goes up to 1416000.

With governor=performance and MAX_SPEED=1512000 in cpufrequtils, under load (stress --cpu 4) it never goes above 1416000.

No throttling (temps <65°C with heatsink, armbianmonitor clean).

dmesg says "sun50i_cpufreq_nvmem: Using CPU speed bin speed0" and seems to fallback to H616 limits, cutting OPP table.

Tried:

armbian-config to switch kernels.

Edit /etc/default/cpufrequtils (GOVERNOR=performance, MAX_SPEED=1512000).

extraargs=cpufreq.default_governor=performance in /boot/armbianEnv.txt. No DTB changes (don't want to break stuff).

On non-Armbian (e.g., Orange Pi's Ubuntu 24.04), 1512000 shows in available freqs and runs full speed. Armbian works for basics (WiFi, Ethernet, local server), but this caps perf by ~7%.

Attached outputs from 6.16.8-edge. How to unlock full OPP for H618 speed bin 0?

Thanks.
By the way, this is my first time using Armbian and posting on the forum, so sorry if anything's off.

Zaplemon

freq_info.txt dmesg_cpufreq.txt armbianmonitor_load.txt uname.txt

Edited by Zaplemon
  • Solution
Posted

Hi,

 

my first step would be comparing the opp nodes in the device trees of both Armbian and any other distro that allows the faster speed. Perhaps the necessary node is just missing.

Posted (edited)

I think in Armbian, the kernel is simply ignoring the 1512 MHz OPP?

armbian: armbian_dts.dts

/ {
    opp-table-cpu {
        compatible = "allwinner,sun50i-h616-operating-points";
        nvmem-cells = <0x43>;  // cpu-speed-grade
        opp-shared;

        // ... other OPPs ...

        opp-1416000000 {
            opp-hz = <0x00 0x54667200>;
            opp-microvolt = <0x10c8e0>;  // 1.08V
            opp-supported-hw = <0x2d>;  // mask?
        };

        opp-1512000000 {  
            opp-hz = <0x00 0x5a1f4a00>;
            opp-microvolt-speed1 = <0x10c8e0>;  // 1.08V
            opp-microvolt-speed3 = <0x10c8e0>;
            opp-microvolt-speed5 = <0x11b340>;  // 1.16V for bin5!?
            opp-supported-hw = <0x2a>;  // mask?
        };
    };
};

ubuntu: ubuntu_dts.dts
/ {
    opp-table-cpu {
        compatible = "allwinner,sun50i-h616-operating-points";
        nvmem-cells = <0x4d>;  // cpu-speed-grade
        opp-shared;

        // ... other OPPs ...

        opp-1416000000 {
            opp-hz = <0x00 0x54667200>;
            opp-microvolt-speed0 = <0x10c8e0 0x10c8e0 0x10c8e0>;  // 1.08V for all bins
            // no mask?
        };

        opp-1512000000 {  // works fine
            opp-hz = <0x00 0x5a1f4a00>;
            opp-microvolt-speed0 = <0x10c8e0 0x10c8e0 0x10c8e0>;  // 1.08V for all bins
            // no mask?
        };
    };
};
and possible voltage limits??
armbian: 
/soc/i2c@7081400/pmic@36/regulators/dcdc2 {
    regulator-always-on;
    regulator-min-microvolt = <0x7a120>;  // 0.48V?
    regulator-max-microvolt = <0x10c8e0>;  // 1.08V max? when bin 5 on 1512 req 1.16V?
    regulator-ramp-delay = <0xc8>;
    regulator-name = "vdd-cpu";
};
ubuntu: 
/soc/i2c@7081400/pmic@36/regulators/dcdc2 {
    regulator-always-on;
    regulator-min-microvolt = <0x7a120>;  // 0.48V?
    regulator-max-microvolt = <0x124f80>;  // 1.2V max??
    regulator-ramp-delay = <0xc8>;
    regulator-name = "axp313a-dcdc2";
};

Pinning both decompiled DTBs for clarity. Images:
Armbian: Armbian_25.5.1_Orangepizero3_bookworm_current_6.12.23_minimal.img
Ubuntu: Orangepizero3_1.0.6_ubuntu_noble_server_linux6.1.31.img
What should I do then? I probably don't want to fry that little guy, but 1416 feels a bit off. I love Armbian—it only uses 80 MB of RAM compared to 300 MB on Ubuntu, though. But I don't know what to do about this.

(There's a slight difference between the post and the DTS—likely due to minor formatting tweaks for readability)

Edited by Zaplemon

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...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines