半夜三更的,忍不住发个帖为什么 MT7620/MT7621 的超频参数就那么几个,不像 AR 的那样可以改多个参数
因为 MTK 从硬件寄存器上就限制超频,MT7620 实际上只有一个参数用于超频
以上图片来自 MT7620 Programming Guide
从表格中的信息能得知:
LC_CURFCK是晶振的频率当 LC_CURFCK = 0 时,晶振是 40MHz的,Factor = 1
当 LC_CURFCK = 1 时,晶振是 20MHz的,Factor = 2
PLL_MULTI_RATIO 相当于倍频
PLL_DIV_RATIO 相当于分频
可以推导出:
Fvco = 晶振频率 * Factor * 倍频
Fout = Fvco / 分频
由于 晶振是 40MHz的,Factor = 1,晶振是 20MHz的,Factor = 2,所以实际上
Fvco = 40MHz * 倍频
那么:
PLL_MULTI_RATIO 的范围是 24 ~ 31,因为这个字段只有3位,8种数值
PLL_DIV_RATIO 最小是 2,
所以,在保证频率尽量高的情况下
Fvco 的取值是 40MHz * (24 ~ 31) = 960MHz/1000MHz/1040MHz/1080MHz/1120MHz/1160MHz/1200MHz/1240MHz
Fout 的取值是 Fvco / 2 = 480MHz/500MHz/520MHz/540MHz/560MHz/580MHz/600MHz/620MHz
然后,根据另一寄存器的描述
CPU 频率的取值还受另外两个字段的影响
Fcpu = Fout * (CPU_FFRAC / CPU_FDIV)
注意这里明确了一个硬性要求,就是 CPU_FDIV 必须大于等于 CPU_FFRAC,也就是说最好的情况就是 CPU_FDIV = CPU_FFRAC
那么 CPU 的最大频率就只能等于 620MHz 了。
这就是 MT7620 的 Breed 的超频选项只有 8 个,且最大为 620MHz 的原因。
这可不是 Breed 要刻意去限制,而是 MTK 自身做的限制。
不要说自己强制修改寄存器让 CPU_FFRAC 大于 CPU_FDIV,这是 MTK 原厂 SDK u-boot 都进行了数值限制的,
强行修改导致硬件问题那就得自己负责了。
另外有一贴说让 MT7620 超到 700MHz 以上的,那种帖子都没有后续,明显在造假,只有图片,没有任何可信度。如果是真的,那就拿出方法来让我们开开眼界啊。当然如果是改 CPU_FFRAC 和 CPU_FDIV 那我无话可说。
至于 MT7621,原因差不多,至于频率限制到 1400MHz,是因为 DDR 的频率是跟着 CPU 频率一起走的,MTK 没有公布内存控制器的寄存器和初始化代码,因此细节不得而知。
但是看样子像是 CPU 和内存都使用的是内存控制器的频率,那么也就是说 DDR 的最高频率不能超过 1333MHz (为什么不是 1600,继续看)。经过测试频率超过这个数值,CPU 就不容易启动成功了。
另外最近忙于考试
等忙过了,应该会写几篇 Breed 使用相关的帖子,应该会单独说明一下 Breed 里面针对不同品牌的 CPU 的超频说明。
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|