U-boot移植步骤

参考自**链接**

1. 复制现有板子目录,创建新板子

// 板级目录
xingyanl@yocto:uboot$ cd board/freescale/
// 创建新板子
xingyanl@yocto:uboot$ cp -R mx6sabresd mx6qsensorgw

2. 修改相关文件

2.1 修改Makefile文件
// 修改mx6qsensorgw目录下得到Makefile文件
xingyanl@yocto:mx6qsensorgw$ vi Makefile
xingyanl@yocto:mx6qsensorgw$ cat Makefile
obj-y  := mx6qsensorgw.o  // 更新内容
2.2 重命名.c文件
// 更改板级c文件
xingyanl@yocto:mx6qsensorgw$ cp  mx6sabresd.c  mx6qsensorgw.c
2.3 修改Kconfig文件

a) 修改/board/freescale/mx6qsensorgw目录下的Kconfig

xingyanl@yocto:mx6qsensorgw$ vi Kconfig
xingyanl@yocto:mx6qsensorgw$ cat Kconfig
if TARGET_MX6QSENSORGW  // 新板子名字

config SYS_BOARD
        default "mx6qsensorgw"  // 新板子名字

config SYS_VENDOR
        default "freescale"

config SYS_CONFIG_NAME
        default "mx6qsensorgw"  // 新板子名字

endif

b) 修改/arch/arm/cpu/armv7/mx6目录下的Kconfig

// 添加如下内容
xingyanl@yocto:mx6$ vi Kconfig
......
// 添加新板类型
config TARGET_MX6QSENSORGW
        bool "Support mx6qsensorgw"
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select DM
        select DM_THERMAL
        select BOARD_EARLY_INIT_F
......
// source新板子文件Kconfig文件
source "board/freescale/mx6qsensorgw/Kconfig"
......
2.4 更新include/configs/xxx.h文件
xingyanl@yocto:uboot$ cd include/configs
// copy mx6sabresd.h文件
xingyanl@yocto:configs$ cp mx6sabresd.h mx6qsensorgw.h

// 修改#include "mx6sabre_common.h"为 #include "mx6qsensorgw_common.h"
xingyanl@yocto:configs$ vi mx6qsensorgw.h
#include "mx6qsensorgw_common.h"

// copy mx6sabre_common.h文件
xingyanl@yocto:configs$ cp mx6sabre_common.h mx6qsensorgw_common.h

// 一些宏定义
CONFIG_LOADADDR         // ZImage内核会load到这个地址引导
CONFIG_SYS_MALLOC_LEN   // Heap内存大小
CONFIG_STACKSIZE        // stack的大小
CONFIG_NR_DRAM_BANKS    // DDR banks的数量
PHYS_SDRAM_SIZE         // DDR的大小,以MB为单位
PHYS_SDRAM             // DDR的物理地址
fdt_file               // 配置宏定义

"#define CONFIG_DEFAULT_FDT_FILE <customer>.dtb"

// 或者直接修改
"fdt_file=<customer>.dtb"

// Config文件对U-Boot很重要,它决定了u-boot.bin的大小,功能和性能

3. 为新板创建配置文件

xingyanl@yocto:uboot$ cd configs/
xingyanl@yocto:configs$ cp mx6qsabresd_defconfig mx6qsensorgw_defconfig
xingyanl@yocto:configs$ vi mx6qsensorgw_defconfig
// 替换TARGET
# CONFIG_TARGET_MX6SABRESD=y  // 删除
CONFIG_TARGET_MX6QSENSORGW=y // 添加

// 更新cfg文件目录,和内存相关配置文件
# CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg,MX6Q"
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6qsensorgw/mx6q_4x_mt41j128.cfg,MX6Q"

// 更新设备树文件
#CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabresd"
CONFIG_DEFAULT_DEVICE_TREE="imx6q-sensorgw"

4. 为新板子指定设备树文件

// 添加设备树文件
xingyanl@yocto:uboot$ cd arch/arm/dts/
xingyanl@yocto:dts$ cp imx6q-sabresd.dts imx6q-sensorgw.dts

5. 创建u-boot的build脚本

5.1 创建u-boot编译脚本

xingyanl@yocto:uboot$ vi u-boot.sh
#!/bin/bash
export ARCH=arm
# 指定交叉编译器目录---重要
export CROSS_COMPILE=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
make distclean;
make mx6qsensorgw_defconfig
make                                                                                                            

5.2 编译u-boot

// 添加权限
xingyanl@yocto:uboot$ chmod a+x u-boot.sh

// 编译
xingyanl@yocto:uboot$ ./u-boot.sh
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

踏马潜行

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

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

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

打赏作者

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

抵扣说明:

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

余额充值