coolsnowwolf / lede

Lean's LEDE source
Other
29.83k stars 19.53k forks source link

[求助] 关于升级到5.10内核后修改CPU主频的hack #11205

Closed asiaon123 closed 1 year ago

asiaon123 commented 1 year ago

反馈bug/问题模板,提建议请删除

1.关于你要提交的问题

Q:是否搜索了issue (使用 "x" 选择)

2. 详细叙述

(1) 具体问题

A:之前5.4的内核之前有个hack 7621的CPU的主频到1000hz的patch,后来被移除了,但是觉得还挺好用的,但是升级到5.10内核后不能用了,求大神帮忙适配一份5.10的patch,不是到源码,我自己编译的时候应用patch,感谢!

之前的是这样的:

--- a/arch/mips/ralink/mt7621.c
+++ b/arch/mips/ralink/mt7621.c
@@ -171,6 +171,7 @@ void __init ralink_clk_init(void)
    u32 syscfg, xtal_sel, clkcfg, clk_sel, curclk, ffiv, ffrac;
    u32 pll, prediv, fbdiv;
    u32 xtal_clk, cpu_clk, bus_clk;
+   u32 target_fbdiv, target_pll;
    const static u32 prediv_tbl[] = {0, 1, 2, 2};

    syscfg = rt_sysc_r32(SYSC_REG_SYSTEM_CONFIG0);
@@ -198,6 +199,18 @@ void __init ralink_clk_init(void)
        pll = rt_memc_r32(MEMC_REG_CPU_PLL);
        fbdiv = (pll >> CPU_PLL_FBDIV_SHIFT) & CPU_PLL_FBDIV_MASK;
        prediv = (pll >> CPU_PLL_PREDIV_SHIFT) & CPU_PLL_PREDIV_MASK;
+       /* When using the PLL, this code will overclock the CPU */
+#define MT7621A_TARGET_CLOCK_HZ        1000000000
+       target_fbdiv = (MT7621A_TARGET_CLOCK_HZ * ffiv) / ffrac;
+       target_fbdiv = target_fbdiv << prediv_tbl[prediv];
+       target_fbdiv = (target_fbdiv / xtal_clk) - 1;
+       target_pll = pll & ~(CPU_PLL_FBDIV_MASK << CPU_PLL_FBDIV_SHIFT);
+       target_pll = target_pll | (target_fbdiv << CPU_PLL_FBDIV_SHIFT);
+       pr_info("CPU Overclock PLL: 0x%x\n", target_pll);
+       rt_memc_w32(target_pll, MEMC_REG_CPU_PLL);
+       pll = rt_memc_r32(MEMC_REG_CPU_PLL);
+       fbdiv = (pll >> CPU_PLL_FBDIV_SHIFT) & CPU_PLL_FBDIV_MASK;
+       prediv = (pll >> CPU_PLL_PREDIV_SHIFT) & CPU_PLL_PREDIV_MASK;
        cpu_clk = ((fbdiv + 1) * xtal_clk) >> prediv_tbl[prediv];
        break;
    default:

(2) 路由器型号和固件版本

A:HC5962(5.10)

(3) 详细日志

A:无

asiaon123 commented 1 year ago

有人能帮助么

zfdx123 commented 1 year ago

可以对比一下内核代码,手动打一下patch,然后diff出来patch,放进OpenWRT

WYC-2020 commented 1 year ago

322-mt7621-fix-cpu-clk-add-clkdev.patch 5.4 5.10 都有这个了 target\linux\ramips\patches-5.10\322-mt7621-fix-cpu-clk-add-clkdev.patch 至于是不是你要的频率位置,自己去看

asiaon123 commented 1 year ago

322-mt7621-fix-cpu-clk-add-clkdev.patch 5.4 5.10 都有这个了 target\linux\ramips\patches-5.10\322-mt7621-fix-cpu-clk-add-clkdev.patch 至于是不是你要的频率位置,自己去看

我看了下这个是5.10的patch 但是我对c不是太了解 不知道怎么改,想改到1000hz,所以想求助一下大神

WYC-2020 commented 1 year ago

1000hz

5.4都被l撤销了,你确定能超到1000,按照l之前的给你改了一个 你看下行不行吧,不保证可以哈 5.10 322-mt7621-fix-cpu-clk-add-clkdev.patch

asiaon123 commented 1 year ago

1000hz

5.4都被l撤销了,你确定能超到1000,按照l之前的给你改了一个 你看下行不行吧,不保证可以哈 5.10 322-mt7621-fix-cpu-clk-add-clkdev.patch

我之前用的在我的机器上1000hz还能正常😄,感谢大佬 我试一下 谢谢

asiaon123 commented 1 year ago

1000hz

5.4都被l撤销了,你确定能超到1000,按照l之前的给你改了一个 你看下行不行吧,不保证可以哈 5.10 322-mt7621-fix-cpu-clk-add-clkdev.patch

有效的 感谢

WYC-2020 commented 1 year ago

1000hz

5.4都被l撤销了,你确定能超到1000,按照l之前的给你改了一个 你看下行不行吧,不保证可以哈 5.10 322-mt7621-fix-cpu-clk-add-clkdev.patch

有效的 感谢

那就好好珍藏哈哈

asiaon123 commented 1 year ago

1000hz

5.4都被l撤销了,你确定能超到1000,按照l之前的给你改了一个 你看下行不行吧,不保证可以哈 5.10 322-mt7621-fix-cpu-clk-add-clkdev.patch

有效的 感谢

那就好好珍藏哈哈

那必须的😄

asiaon123 commented 1 year ago

@WYC-2020 麻烦能帮忙再改一个5.15内核的修改CPU频率的patch么? 🙏