|
本帖最后由 Inovation 于 2020-7-26 19:34 编辑
苦于Breed里取消了对小米路由R3G的超频设置,只能从硬件初始化入手,折腾一翻后成功把小米路由R3G超频到1100Mhz。
Openwrt固件的超频1100Mhz设置
这里使用的是Lean的Openwrt内核4.14,推荐4.14内核,v2瑞性能是最好的,新内核5.4会造成性能大幅下降。
Lean的内核4.14的源码包下载在openwrt目录,设置在openwrt\target\linux\ramips\patches-4.14\102-mt7621-fix-cpu-clk-add-clkdev.patch文件,通过设置CPU频率寄存器,可以提升MT7621的频率
修改一,第68行红色部分代码
#define MT7621_GPIO_MODE_UART1 1
#define MT7621_GPIO_MODE_I2C 2
#define MT7621_GPIO_MODE_UART3_MASK 0x3
@@ -113,49 +113,93 @@ static struct rt2880_pmx_group mt7621_pi
{ 0 }
};
修改二,第113和156-160行红色部分代码
+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,i;
+ const static u32 prediv_tbl[] = {0, 1, 2, 2};
+
+ syscfg = rt_sysc_r32(SYSC_REG_SYSTEM_CONFIG0);
+ xtal_sel = (syscfg >> XTAL_MODE_SEL_SHIFT) & XTAL_MODE_SEL_MASK;
+
+ clkcfg = rt_sysc_r32(SYSC_REG_CLKCFG0);
+ clk_sel = (clkcfg >> CPU_CLK_SEL_SHIFT) & CPU_CLK_SEL_MASK;
+
+ curclk = rt_sysc_r32(SYSC_REG_CUR_CLK_STS);
+ ffiv = (curclk >> CUR_CPU_FDIV_SHIFT) & CUR_CPU_FDIV_MASK;
+ ffrac = (curclk >> CUR_CPU_FFRAC_SHIFT) & CUR_CPU_FFRAC_MASK;
+
+ if (xtal_sel <= 2)
+ xtal_clk = 20 * 1000 * 1000;
+ else if (xtal_sel <= 5)
+ xtal_clk = 40 * 1000 * 1000;
+ else
+ xtal_clk = 25 * 1000 * 1000;
switch (clk_sel) {
case 0:
- clk_sts = rt_sysc_r32(SYSC_REG_CUR_CLK_STS);
- cpu_fdiv = ((clk_sts >> 8) & 0x1F);
- cpu_ffrac = (clk_sts & 0x1F);
- cpu_clk = (500 * cpu_ffrac / cpu_fdiv) * 1000 * 1000;
+ cpu_clk = 500 * 1000 * 1000;
break;
-
case 1:
- fbdiv = ((rt_sysc_r32(0x648) >> 4) & 0x7F) + 1;
- syscfg = rt_sysc_r32(SYSC_REG_SYSCFG);
- xtal_mode = (syscfg >> 6) & 0x7;
- if (xtal_mode >= 6) {
- /* 25Mhz Xtal */
- cpu_clk = 25 * fbdiv * 1000 * 1000;
- } else if (xtal_mode >= 3) {
- /* 40Mhz Xtal */
- cpu_clk = 40 * fbdiv * 1000 * 1000;
- } else {
- /* 20Mhz Xtal */
- cpu_clk = 20 * fbdiv * 1000 * 1000;
- }
+ pll = rt_memc_r32(MEMC_REG_CPU_PLL);
+ pll &= ~(0x7ff);
+ pll |= (0x362);
+ rt_memc_w32(pll,MEMC_REG_CPU_PLL);
+ for(i=0;i<1024;i++);
+ 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;
将原代码改为上面红色字体三行代码,其中"0x362"这个位置的值,对应的是1100Mhz的频率设置
频率设置值的换算如下,
0x362 =
1100Mhz/20Mhz -1 = 54
54*16+2 = 866
866转为十六进制就是0x362
相应的,
1000Mhz--0x312
1200Mhz--0x3B2
保存文件,重新编译,之前最好是能编译成功一次
make clean(一定要这个清除命令否则改动不会编译进去)
make -j1 V=s (如果之前已经成功编译过,可以用多线程编译)
超频后性能测试及对比
编译好的固件刷入路由器,在系统日志中可以看到超频后的频率,
openssl加解密性能测试
进入ssh,输入下面命令测试
openssl speed -evp aes-128-gcm
测试结果
Openwrt超频1100Mhz,以1024字节为例是8887k
880Mhz 1100Mhz
Openwrt 7112k 8887k
Padavan 6217k 7768k
aes-128-gcm测试成绩从原来的6209k/s提升到7768k/s,性能提升25%
Openwrt用的4.14内核,效能比Padavan3.4内核好很多
Trajon性能测试
油管速率达到50mpbs
Speedtest速率破百兆
文件下载达到11MB/s
v2瑞性能测试(乳酸菌饮料,ws+TLS,chacha20-poly1305)
Openwrt超频1100Mhz,单视频性能22mbps+
Openwrt超频1100Mhz,双视频性能35mbps+
油管性能测试对比
880Mhz 1100Mhz
Openwrt 18mbps 22mbps
Padavan 13mbps 16mbps
Openwrt用的4.14内核,效能比Padavan3.4内核好太多,要打算低调上网还是用Openwer,内核4.14。
此方法不光对小米路由R3G有效,对MT7621的路由器应该都有效。
OpenWrt超频固件下载
确保已经装了breed或u-boot再刷入超频固件,账号密码root/password
小米路由R3G固件Lean_Openwrt MIR3G 1100Mhz (提取码ygkl)
小米路由R3P固件Lean_Openwrt MIR3G 1100Mhz (提取码l80r)
小米路由AC2100固件Lean Openwrt MiAC2100 1100Mhz(提取码tw95)
红米AC2100固件Lean Openwrt RedMiAC2100 1100Mhz(提取码7le9)
没刷过openwrt用“kernel”固件然后再刷“sysupgrade”固件,已经刷有openwrt直接用sysupgrade固件
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|