imx6 Uboot 移植小结

来源:互联网 发布:怎么查网络是否到期 编辑:程序博客网 时间:2024/04/30 19:14

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=<path to cross compiler prefix> (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文件


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


1 0
原创粉丝点击