经过之前文章的学习与验证,NXP官方提供的 Linux内核可以启动开发板。所以,我们就参考I.MX6ULL EVK 开发板的设置, 在 Linux 内核中添加正点原子的 I.MX6U-ALPHA 开发板。
之前文章验证 NXP官方的Linux 内核是否可启动,地址如下:
这里所用的Linux内核源码:NXP官方的Linux源码。目录如下:
/【正点原子】阿尔法Linux开发板(A盘)-基础资料-2022 /【正点原子】阿尔法Linux开发板(A盘)-基础资料 / 例程源码 / NXP官方原版Uboot和Linux
在 Linux 中添加自己的开发板,大体进行三个部分内容。如下:
(1) 添加开发板默认配置文件
(2) 添加开发板对应的设备树文件
(3) 更改设备树所在目录下的 Makefile,具体是添加编译 开发板对应的设备树文件。
(4) NAND驱动使能
arch/arm/configs 目 录 下有三个 ARM-V7架构的配置文件:
- imx_v7_defconfig
- imx_v7_mfg_defconfig
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ cd ./arch/arm/configs/
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/configs$ cp imx_v7_mfg_defconfig imx_v7_alientek_nand_defconfig
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ cd ./arch/arm/boot/dts
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts$ cp imx6ull-14x14-evk-gpmi-weim.dts imx6ull-alientek-nand.dts -f

注意:在添加 "imx6ull-alientek-nand.dtb \"这一行时,"\" 后面的不能有空格符,否则会编译出错。
具体更改脚本文件 imx6ull_evk_nand.sh 中的配置文件名 imx_v7_alientek_nand_defconfig,更改如下:
- #!/bin/sh
-
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_alientek_nand_defconfig
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all
恩智浦官方的 IMX6ULL-EVK开发板的Linux内核源码,默认情况下,使能了 QSPI驱动。而 QSPI占用了 Nand-Flash 的 IO。因为 QSPI与 NAND公用了 IO接口。
因此,需要配置 Linux内核关闭 QSPI驱动,使能 NAND驱动。
(1) 关闭 QSPI驱动。
运行编译脚本 imx6ull_evk_nand.sh ,会进入 Linux配置界面,打开如下配置项:
- Device Drivers
- -> Memory Technology Device (MTD) support (MTD [=y])
- -> SPI-NOR device support ---- 取消选中
关闭 QSPI 驱动。具体操作如下:



(2) 配置使能 NAND驱动。
输入"make menuconfig" 命令打开配置界面。打开如下配置项:
- Device Drivers
- -> Memory Technology Device (MTD) support (MTD [=y])
- -> Swap on MTD device support 选中
打开 NAND-Flash驱动。NAND-Flash驱动配置项如下:

(3) 做完以上更改,保存配置。选中如下 "Yes"进行保存。操作如下:

(4) 进入如下配置项,确认有关 NAND-Flash的两项是否配置。
- Device Drivers
- -> Memory Technology Device (MTD) support (MTD [=y])
- -> NAND Device Support
- -> GPMI NAND Flash Controller driver
- -> MXC NAND support
如下配置是否选中:

最后,进入编译 kernel与设备树文件阶段。如果编译成功,这里会得到两个文件:
① Linux 内核镜像文件: ./arm/arm/boot/zImage 。
② ALPHA开发板对应的设备树文件: ./arch/arm/boot/dts/imx6ull-alientek-nand.dtb 。