Rockchip | Rockchip U-Boot的获取与构建

一、下载U-Boot

(1)Upstream U-Boot

可以通过运行以下命令来克隆u-boot存储库:

git clone https://gitlab.denx.de/u-boot/u-boot.git

或者,可以使用u-boot-rockchip,这可能与某些补丁程序不在主线上:

git clone https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip.git

(2)Rockchip U-Boot

可以通过运行以下命令来克隆u-boot存储库:

git clone https://github.com/rockchip-linux/u-boot.git

二、支持设备

上游U-Boot 支持Rockchip SoCs:

RK3036, RK3188, RK3288RK3328RK3399

  • RK3036 板子支持:
  1. EVB RK3036 - 使用evb-rk3036 配置
  2. Kylin - 使用kylin_rk3036 配置
  • RK3288 板子支持:
  1. EVB RK3288 - 使用evb-rk3288 配置
  2. Firefly RK3288 - 使用firefly-rk3288 配置
  3. Hisense Chromebook - 使用chromebook_jerry 配置
  4. Miniarm RK3288 - 使用miniarm-rk3288 配置
  5. PopMetal RK3288 - 使用popmetal-rk3288 配置
  6. Radxa Rock 2 - 使用rock2 配置
  7. ASUS Tinker
  • RK3188 板子支持:
  1. Radxa Rock - 使用rock 配置
  • RK3328 板子支持:
  1. EVB RK3328 - 使用evb-rk3328 配置
  • RK3399 板子支持:
  1. EVB RK3399 - 使用evb-rk3399 配置

三、获取工具链

在Ubuntu14.04中,可以使用下面的命令安装armv7的交叉编译器:

sudo apt-get install gcc-arm-linux-gnueabi

对于arm64:

sudo apt-get install gcc-aarch64-linux-gnu

请注意,最新的U-Boot需要gcc-5.0和更高版本,建议使用linaro 6.3.1。

https://github.com/rockchip-linux/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.git
https://github.com/rockchip-linux/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.git

四、构建U-Boot

(1)配置U-Boot

首先,需要为板子选择一个正确的defconfig;

确定要构建的<board_name>后,配置:

make CROSS_COMPILE=arm-linux-gnueabi- <board_name>_defconfig

可能需要通过修改defconfig文件去改变U-Boot支持的功能或着也可以使用menuconfig来进行设置:

make CROSS_COMPILE=arm-linux-gnueabi- menuconfig

(2)构建Rockchip U-Boot

为了方便起见,Rockchip提供了一个脚本'make.sh',可在kernel之前得到一些东西,这个脚本需要工具链与rkbin 的支持。

├── prebuilts
│   └── gcc
│       └── linux-x86 
│           ├── aarch64
│           └── arm
├── rkbin
├── u-boot

例如构建rk3399的例子:

./make.sh rk3399

也可以使用'./make.sh -h'获取更多选项。

它的输出包含pre-loader, trust and u-boot 镜像,它们可与rockchip upagrade 工具一起使用,

u-boot/
├── rk3399_loader_v1.09.112.bin
├── trust.img
└── uboot.img

(3)构建Upstream U-Boot

Upstream U-Boot与Rockchip U-Boot相同操作。

对于armv7:

make CROSS_COMPILE=arm-linux-gnueabi-

对于ARM64:

make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-

为了支持ARM DS-5中的调试符号,您可能需要在make命令中添加ctag:

CFLAGS='-gdwarf-3'

在这个步骤中会输出包括u-boot.bin, spl/u-boot-spl.bin, tpl/u-boot-tpl.bin,并且需要在使用rockchip upagrade 工具之前使用mkimage工具。详细可参考boot option

SPL FIT 镜像支持ATF

为了支持SPL中的trust ,可以使用FIT镜像,它定义在Makefile中'mkimage'命令,并在defconfig中定义了脚本:

make u-boot.itb

注意:请复制trust 二进制文件(来自rkbin中的optee.bin 或 bl31.elf)到u-boot根目录并将其重命名为 tee.bin(armv7)或bl31.elf(armv8)。

输出u-boot.itb是一个包括u-boot-nodtb.bin, board.dtb, 和trust 二进制文件的基包,可直接与upgrade 工具使用。

├── u-boot 
│   ├── u-boot.bin
│   ├── u-boot.itb
│   ├── spl
│   │   └── u-boot-spl.bin
│   └── tpl 
│       └── u-boot-tpl.bin

五、安装U-Boot

请参阅boot option了解如何操作一下步骤:

-打包可用的二进制文件;

-从eMMC/SD卡烧写和引导。


六、引导命令

  • Rockchip U-Boot 支持镜像类型:
  1. Android boot(boot_android)
  2. Rockchip RKIMG boot(boot_rockchip)
  3. LInux distro boot(distro_bootcmd)
  • Upstream U-Boot 支持镜像类型:
  1. Linux distro boot(distro_bootcmd)

七、通过U-Boot下载固件

在U-Boot中,有多种方法可以通过U-Boot将镜像更新到emmc中,可以选择任何一种简单易用的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值