一. 简介
CPU 超频测试前准备工作之前已经学习过,总的来说,开发板可以从 nand-Flash启动文件系统。
之前的文章也做过详细的说明,地址如下:
二. Linux内核移植之超频测试
注意:本文实际超频到 696MHZ,NXP官方宣传为 700 MHZ。
我这里的ALPHA开发板上的IMX6ULL芯片的主频是 800MHZ(实际是 792MHZ)。这里超频到 700 MHZ,是针对 528MHZ型号的 IMX6ULL芯片而言的。
1. 查看 芯片当前支持的频率
配置好开发板后启动,进入 开发板的文件系统下。进入 /sys/bus/cpu/devices/cpu0/cpufreq目录。
root@ATK-IMX6U:~# cd /sys/bus/cpu/devices/cpu0/cpufreq
查看 CPU支持的 频率:
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# ls
affected_cpus related_cpus scaling_governor
cpuinfo_cur_freq scaling_available_frequencies scaling_max_freq
cpuinfo_max_freq scaling_available_governors scaling_min_freq
cpuinfo_min_freq scaling_cur_freq scaling_setspeed
cpuinfo_transition_latency scaling_driver stats
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat scaling_available_frequencies
198000 396000 528000 792000
可以看出,目前的Linux 内核支持频率为 198Mhz,396Mhz,528Mhz,792Mhz。在这些支持的频率中,没有 696 Mhz的频率。
2. 超频更改测试
cpu0: cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0>;
clock-latency = <61036>; /* two CLK32 periods */
operating-points = <
/* kHz uV */
996000 1275000
792000 1225000
528000 1175000
396000 1025000
198000 950000
>;
fsl,soc-operating-points = <
/* KHz uV */
996000 1175000
792000 1175000
528000 1175000
396000 1175000
198000 1175000
>;
在上面的代码中,加入 696MHz频率的支持。更改后代码如下:
cpu0: cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0>;
clock-latency = <61036>; /* two CLK32 periods */
operating-points = <
/* kHz uV */
996000 1275000
792000 1225000
696000 1225000
528000 1175000
396000 1025000
198000 950000
>;
fsl,soc-operating-points = <
/* KHz uV */
996000 1175000
792000 1175000
696000 1175000
528000 1175000
396000 1175000
198000 1175000
>;
修改好以后保存,并且编译设备树,在 Linux 内核源码根目录下输入如下命令,编译设备树:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make dtbs
3. 下载运行
root@ATK-IMX6U:/# cd /sys/bus/cpu/devices/cpu0/cpufreq
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# ls
affected_cpus related_cpus scaling_governor
cpuinfo_cur_freq scaling_available_frequencies scaling_max_freq
cpuinfo_max_freq scaling_available_governors scaling_min_freq
cpuinfo_min_freq scaling_cur_freq scaling_setspeed
cpuinfo_transition_latency scaling_driver stats
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat scaling_available_frequencies
198000 396000 528000 696000 792000
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq#
注意: 编译 .dtb(设备树文件)时,是会调用 imx6ull.dtsi 文件的,其实就类似于头文件。
例如,imx6ull-14x14-evk.dts设备树配置文件会调用到 imx6ull.dtsi文件,而 imx6ull-14x14-evk.dts文件又会被 imx6ull-14x14-evk-gpmi-weim.dts 调用,这里的 imx6ull-14x14-evk-gpmi-weim.dts文件就是 NXP官方的 Nand-Flash版的设备树文件。