找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 3698|回复: 6

MT7628自编译Uboot中修改CPU主频的方法分享

[复制链接]
发表于 2021-10-13 11:59 | 显示全部楼层 |阅读模式
本人有一个 MT7628+MT7612 的86面板型AP,已刷 Padavan,发热太大了,开一会就热得烫手,可能也是因为面板型的缘故,PCB板太小,空间太小,在底盒中也是封闭状态,散热非常不好。想调一下主频看能不能凉快点。本来水平就不高,上网搜了 N 多资料没找到现成的,在本论坛发过贴子求助,也没有找到好办法。搞了几天了,皇天不负有心人,终于搞成了。
原来就是修改源码里的 /lib_mips/board.c 文件。里面第 290 多行就是 MT7628 的主频设置部分,我用的源码就是在 290 多行的地方,其它版本源码就慢慢找一下吧。原代码片段如下:
#elif defined (MT7628_ASIC_BOARD)
        reg = RALINK_REG(RALINK_CLKCFG0_REG);
        if (reg & (0x1<<1)) {
                mips_cpu_feq = (480*1000*1000)/CPU_FRAC_DIV;
        }else if (reg & 0x1) {
                mips_cpu_feq = ((RALINK_REG(RALINK_SYSCTL_BASE+0x10)>>6)&0x1) ? (40*1000*1000)/CPU_FRAC_DIV \
                                           : (25*1000*1000)/CPU_FRAC_DIV;
        }else {
                mips_cpu_feq = (575*1000*1000)/CPU_FRAC_DIV;
        }
        mips_bus_feq = mips_cpu_feq/3;


直接改后面那行:mips_cpu_feq = (575*1000*1000)/CPU_FRAC_DIV;
改成:mips_cpu_feq = (575*1000*1000)/CPU_FRAC_DIV * 0.4;
乘 0.4 就是按默认的 40% 频率,编译刷上去后,TTL 启动信息原来是显示 ##### The CPU freq = 575 MHZ #### 的,改成 40% 后显示为 ##### The CPU freq = 230 MHZ ####
应该算是成功了。可惜的是我的 Padavan 系统的启动日志里还是显示 575Mhz,不知道是 Padavan 的原因还是怎么回事。后面再试试 Openwrt 看怎么样。

一般情况下,MT7628 和 MT7688 的 Uboot 是通用的。
发表于 2021-10-13 12:46 | 显示全部楼层
固件里面还有设置频率的代码,也需要一并改了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-13 20:38 | 显示全部楼层
afeng11 发表于 2021-10-13 12:46
固件里面还有设置频率的代码,也需要一并改了

既然 Uboot 里改的固件里不生效,我想是不是因为两边是分开两个阶段控制的。直接 Uboot 不改改固件算了。找到  trunk/linux-3.4.x/arch/mips/rt2880/init.c 文件里有如下代码片段

#elif defined (CONFIG_RALINK_MT7628)
        case 0:
                if (xtal == 25)
                        mips_cpu_feq = 575 * 1000 * 1000;        /* 25MHZ Xtal */
                else
                        mips_cpu_feq = 580 * 1000 * 1000;        /* 40MHz Xtal */
                break;
        case 1:
                mips_cpu_feq = (480*1000*1000);
                break;

我直接把 575 改成自己想要的频率,发现无法改成低于 540,低于这个就无法完成系统启动,TTL 显示启动过程如下:
MediaTek SoC: MT7628A, RevID: 0102, RAM: DDR2, XTAL: 25MHz
CPU/OCP/SYS frequency: 345/100/100 MHz
prom memory:64MB
CPU revision is: 00019655 (MIPS 24KEc)
Determined physical RAM map:
memory: 04000000 @ 00000000 (usable)
Zone PFN ranges:
  Normal   0x00000000 -> 0x00004000
Movable zone start PFN for each node
Early memory PFN ranges
    0: 0x00000000 -> 0x00004000
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock4 rootfstype=squashfs
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Writing ErrCtl register=0007b6d0
Readback ErrCtl register=0007b6d0
Memory: 61780k/65536k available (2378k kernel code, 3756k reserved, 522k data, 168k init, 0k highmem)
NR_IRQS:40
console [ttyS0] enabled
Calibrating delay loop... 228.86 BogoMIPS (lpj=457728)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]
pci_bus 0000:00: root bus resource [io  0x10160000-0x1016ffff]
pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:00:00.0: BAR 0: can't assign mem (size 0x80000000)
pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x200fffff]
pci 0000:00:00.0: BAR 9: assigned [mem 0x20100000-0x201fffff pref]
pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff 64bit]
pci 0000:01:00.0: BAR 6: assigned [mem 0x20100000-0x2010ffff pref]
pci 0000:00:00.0: PCI bridge to [bus 01-01]
pci 0000:00:00.0:   bridge window [mem 0x20000000-0x200fffff]
pci 0000:00:00.0:   bridge window [mem 0x20100000-0x201fffff pref]
PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
msgmni has been set to 120
io scheduler noop registered (default)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x10000c00 (irq = 28) is a 16550A
Ralink GPIO driver initialized. Number of GPIO: 64, GPIO mode: 55144455
loop: module loaded
MediaTek SPI flash driver, SPI clock: 25MHz
SPI flash chip: W25Q64 (ef 40170000) (8192 Kbytes)
Creating 7 MTD partitions on "raspi":
0x000000000000-0x000000030000 : "Bootloader"
0x000000030000-0x000000040000 : "Config"
0x000000040000-0x000000050000 : "Factory"
0x000000050000-0x00000015c950 : "Kernel"
0x00000015c950-0x0000007e0000 : "RootFS"
0x0000007e0000-0x000000800000 : "Storage"
0x000000050000-0x000000800000 : "Firmware_Stub"
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
Ralink APSoC Ethernet Driver v3.2.4 (raeth)
raeth: PDMA RX ring 256, PDMA TX ring 256. Max packet size 1536
raeth: NAPI support, weight 32
raeth: Byte Queue Limits (BQL) support
PPP generic driver version 2.4.2
PPP MPPE Compression module registered
NET: Registered protocol family 24
PPTP driver version 0.8.5
usbcore: registered new interface driver libusual
nf_conntrack version 0.5.0 (16384 buckets, 32768 max)
xt_time: kernel timezone is -0000
Bridge firewalling registered
gre: GRE over IPv4 demultiplexor driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP: cubic registered
NET: Registered protocol family 17
L2TP core driver, V2.0
PPPoL2TP kernel driver, V2.0
8021q: 802.1Q VLAN Support v1.8
ASUS NVRAM, v0.08. Available space: 61440. Integrity: OK
VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
Freeing unused kernel memory: 168k freed
Algorithmics/MIPS FPU Emulator v1.5
validate subfs:
MT7628 AP Driver version: 4.1.0.0
PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
MT76x2 AP Driver version: 3.0.5.0
MTK AES Engine Module, HW verson: 04
AES Engine: register cbc(aes) crypto api
AES Engine: register ecb(aes) crypto api
Netfilter messages via NETLINK v0.30.
ip_set: protocol 6
Password for 'admin' changed
raeth: HW IP/TCP/UDP checksum RX offload enabled


只要低于 540MHZ,就一定会卡在这里。不知道还要改什么地方了。

点评

xtal的值,貌似是由一个 晶振 的频率决定的。  详情 回复 发表于 2021-10-22 17:33
回复 支持 反对

使用道具 举报

发表于 2021-10-22 17:33 | 显示全部楼层
彬彬 发表于 2021-10-13 20:38
既然 Uboot 里改的固件里不生效,我想是不是因为两边是分开两个阶段控制的。直接 Uboot 不改改固件算了。 ...

xtal的值,貌似是由一个 晶振 的频率决定的。
回复 支持 反对

使用道具 举报

发表于 2022-1-22 19:28 | 显示全部楼层
求问面板型号  想找个能刷openwrt的86面板AP

点评

没有型号。山寨板,捡来的样品。  详情 回复 发表于 2022-1-25 20:38
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-25 20:38 | 显示全部楼层
cjtay 发表于 2022-1-22 19:28
求问面板型号  想找个能刷openwrt的86面板AP

没有型号。山寨板,捡来的样品。

点评

感谢回复  详情 回复 发表于 2022-1-25 21:09
回复 支持 反对

使用道具 举报

发表于 2022-1-25 21:09 | 显示全部楼层
彬彬 发表于 2022-1-25 20:38
没有型号。山寨板,捡来的样品。

感谢回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-2 11:17

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表