IMX6ULL 基于NXP官方Linux源码添加自己单板

编译NXP官方Linux内核

每个板子都有默认配置文件,都保 存 在 arch/arm/configs目录下

imx_v7_defconfig和imx_v7_mfg_defconfig 都可作为 I.MX6ULL EVK 开发板所使用的默认配置文件

但imx_v7_mfg_defconfig编译出来的zImage可以使用MfgTool工具烧录

配置编译: make_nxp_linux.sh

ares@ubuntu:~/work/linux-imx-rel_imx_4.1.15_2.1.0_ga_opto$ cat make_nxp_linux.sh
#!/bin/bash

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

编译会得到内核镜像和设备树:
/arch/arm/boot/zImage

ares@ubuntu:~/work/linux-imx-rel_imx_4.1.15_2.1.0_ga_opto$ find . -name "zImage"
./arch/arm/boot/zImage

/arch/arm/boot/dts/imx6ull-14x14-evk.dtb

ares@ubuntu:~/work/linux-imx-rel_imx_4.1.15_2.1.0_ga_opto$ find . -name "imx6ull-14x14-evk.dtb"
./arch/arm/boot/dts/imx6ull-14x14-evk.dtb

添加自己的单板

添加默认配置文件:

cd arch/arm/configs/
cp imx_v7_mfg_defconfig imx_opto_emmc_defconfig

添加自己的单板默认配置文件一般也是在原厂官方板子默认配置基础上添加

添加单板对应的设备树文件:

cd arch/arm/boot/dts 
cp imx6ull-14x14-evk.dts imx6ull-opto-emmc.dts

修改arch/arm/boot/Makefile :

dtb-$(CONFIG_SOC_IMX6ULL) += \
        imx6ull-14x14-ddr3-arm2.dtb \
        imx6ull-14x14-ddr3-arm2-adc.dtb \
        imx6ull-14x14-ddr3-arm2-cs42888.dtb \
        imx6ull-14x14-ddr3-arm2-ecspi.dtb \
        imx6ull-14x14-ddr3-arm2-emmc.dtb \
        imx6ull-14x14-ddr3-arm2-epdc.dtb \
        imx6ull-14x14-ddr3-arm2-flexcan2.dtb \
        imx6ull-14x14-ddr3-arm2-gpmi-weim.dtb \
        imx6ull-14x14-ddr3-arm2-lcdif.dtb \
        imx6ull-14x14-ddr3-arm2-ldo.dtb \
        imx6ull-14x14-ddr3-arm2-qspi.dtb \
        imx6ull-14x14-ddr3-arm2-qspi-all.dtb \
        imx6ull-14x14-ddr3-arm2-tsc.dtb \
        imx6ull-14x14-ddr3-arm2-uart2.dtb \
        imx6ull-14x14-ddr3-arm2-usb.dtb \
        imx6ull-14x14-ddr3-arm2-wm8958.dtb \
        imx6ull-14x14-evk.dtb \
        imx6ull-14x14-evk-btwifi.dtb \
        imx6ull-14x14-evk-emmc.dtb \
        imx6ull-14x14-evk-gpmi-weim.dtb \
        imx6ull-14x14-evk-usb-certi.dtb \
        imx6ull-9x9-evk.dtb \
        imx6ull-9x9-evk-btwifi.dtb \
        imx6ull-9x9-evk-ldo.dtb \
        imx6ull-opto-emmc.dtb

CONFIG_SOC_IMX6ULL选项下添加自己的设备树imx6ull-opto-emmc.dtb (二进制设备文件)

编译: make_opto_linux.sh

ares@ubuntu:~/work/linux-imx-rel_imx_4.1.15_2.1.0_ga_opto$ cat make_opto_linux.sh
#!/bin/bash

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_opto_emmc_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

查看CPU频率信息:可以通过查看内核目录/sys/bus/cpu/devices/cpu0/cpufreq下的文件

root@imx6ul7d:~# ls /sys/bus/cpu/devices/cpu0/cpufreq/
affected_cpus     cpuinfo_max_freq  cpuinfo_transition_latency  scaling_available_frequencies  scaling_cur_freq  scaling_governor  scaling_min_freq  stats
cpuinfo_cur_freq  cpuinfo_min_freq  related_cpus                scaling_available_governors    scaling_driver    scaling_max_freq  scaling_setspeed

cpuinfo_cur_freq:当前 cpu 工作频率,从 CPU 寄存器读取到的工作频率。
cpuinfo_max_freq:处理器所能运行的最高工作频率(单位: KHz)。
cpuinfo_min_freq :处理器所能运行的最低工作频率(单位: KHz)。
cpuinfo_transition_latency:处理器切换频率所需要的时间(单位:ns)。
scaling_available_frequencies:处理器支持的主频率列表(单位: KHz)。
scaling_available_governors:当前内核中支持的所有 governor(调频)类型。
scaling_cur_freq:保存着 cpufreq 模块缓存的当前 CPU 频率,不会对 CPU 硬件寄存器进
行检查。
scaling_driver:该文件保存当前 CPU 所使用的调频驱动。
scaling_governor:governor(调频)策略。
scaling_max_freq:governor(调频)可以调节的最高频率。
cpuinfo_min_freq:governor(调频)可以调节的最低频率。

Linux 内核一共有 5 种调频策略:

  1. Performance,最高性能,直接用最高频率,不考虑耗电
  2. Interactive,一开始直接用最高频率,然后根据 CPU 负载慢慢降低
  3. Powersave,省电模式,通常以最低频率运行,系统性能会受影响,一般不会用这个
  4. Userspace,可以在用户空间手动调节频率。
  5. Ondemand,定时检查负载,然后根据负载来调节频率。负载低的时候降低 CPU 频率,
    这样省电,负载高的时候提高 CPU 频率,增加性能

查看CPU主频:

root@imx6ul7d:/sys/bus/cpu/devices/cpu0/cpufreq# cat cpuinfo_cur_freq
198000

CPU调频策略修改 :

make menuconfig

 CPU Power Management  --->  
 	CPU Frequency scaling  ---> 
 		Default CPUFreq governor (performance)  --->  
 			 (X) performance                   
             ( ) powersave                         
             ( ) userspace                         
             ( ) ondemand                         
             ( ) conservative                     
             ( ) interactive   
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欲盖弥彰1314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值