NXP

imx6 Uboot 移植小结

2019-07-12 12:53发布

imx6 Uboot移植参考NXP(Freescale)官方文档《i.MX 6 BSP Porting Guide》
此次的uboot基于U-Boot v2014.04版本,参考板为imx6qsabreauto,目标板命名为myboard 1.在uboot源码中复制参考板级文件为目标板文件: $cp -R board/freescale/mx6qsabreauto board/freescale/mx6myboard
2.复制板级配置文件并根据实际情况修改: $cp include/configs/mx6qsabreauto.h include/configs/mx6myboard.h 修改内容主要为uboot环境变量信息(包含环境变量的默认配置及其保存在存储设备的位置),这里不具体描述 这里要注意文件中,包含:#include “mx6sabre_common.h”,因此mx6sabre_common.h文件也要根据实际情况做相应的修改


3.在board.cfg中为目标板添加配置项,例如: Active  arm         armv7          mx6         freescale       mx6myboard       mx6qsolomyboard_nand                       mx6qsolomyboard:IMX_CONFIG=board/freescale/mx6myboard/mx6solo.cfg,MX6SOLO,DEFAULT_FDT_FILE="mx6myboard.dtb",DDR_MB=1024,SYS_BOOT_NAND,SYS_NOSMP="nosmp"
4.重命名板级文件并根据实际硬件信息进行修改: mv board/freescale/mx6myboard/mx6qsabreauto.c  board/freescale/mx6myboard/mx6qmyboard.c 可以在这里添加或修改驱动代码:例如:clock, iomux和gpio
具体修改内容这里不描述(要根据实际硬件)

5.修改目标板Makefile: board/freescale/mx6myboard/Makefile中,将obj-y  := mx6qsabreauto.o修改为obj-y  := mx6qmyboard.o
6.修改板级文件中的相应的配置文件: board/freescale/mx6myboard/mx6solo.cfg中: -PLUGIN    board/freescale/mx6qsabreauto/plugin.bin 0x00907000
+PLUGIN    board/freescale/mx6myboard/plugin.bin 0x00907000

DDR也是移植的关键因素,因此DDR的移植对应此文件中对DCD表的修改

7.进行uboot编译: 编译方法可参考以下脚本:
#!/bin/bash
export ARCH=arm
export CROSS_COMPILE= (e.g. /opt/poky/1.4.1/sysroots/i686-pokysdk-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-)
make distclean;
make mx6myboard_config
make
其中交叉编译器根据实际路径决定,编译成功则会得到u-boot.imx文件

水平有限,内容就这么多了