14、RK3399-u-boot移植


测试开发板:Firefly-RK3399 2+16

一、内存分区表:

在这里插入图片描述

在这里插入图片描述

分析上图:

bootcode下通过EMMC/SD启动有两种方式:

左侧为rockchip官方方式,右侧为TPL/SPL方式加载。左侧的需要生成trust.img

RK平台的启动流程 :

BOOTROM => ddr-bin => Miniloader => TRUST => U-BOOT => KERNEL

我们要做的流程为:

BOOTROM=>idbloader.img=>uboot.itb=>BOOT=>rootfs

打包需要的文件

idbloader.img <--------U-Boot TPL/SPL
u-boot.itb <-----------U-Boot 和 bl31.elf

代码实现:

./arch/arm/include/asm/arch-rockchip/rk_atags.h
./arch/arm/mach-rockchip/rk_atags.c
二、firefly移植u-boot 2020.10
1.1 获取u-boot 20.10源码(建议科学下载)

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

vi Makefile
VERSION = 2024
PATCHLEVEL = 10
SUBLEVEL =
EXTRAVERSION = -rc5
NAME =  
1.2 获取编译好的bl31.elf

GitHub - rockchip-linux/rkbin: Firmware and Tool Binarys

设置bl31路径:export BL31=…/rk3399_bl31_v1.36.elf

1.3编译

查看3399相关的defconfig

ls configs/ | grep rk3399

log记录来看,firefly-rk3399_defconfig应该是Firefly官方提交的,因此,选择这个xxx_defconfig文件作为默认config

生成默认配置文件,如下:

make firefly-rk3399_defconfig

Q1:

tools/mkeficapsule.c:19:10: fatal error: uuid/uuid.h: No such file or directory
 #include <uuid/uuid.h>
缺少对应库:
sudo apt-get install uuid-dev

#include <gnutls/gnutls.h>
缺少对应库:sudo apt-get install libghc-gnutls-dev

Traceback (most recent call last):   File "/home/liu/rockchip/u-boot-2020/u-boot-master/tools/binman/control.py", line 11, in <module>     import importlib.resources ModuleNotFoundError: No module named 'importlib.resources'

检查 Python 版本: importlib.resources 模块是在 Python 3.7 中引入的。如果你使用的是 Python 3.6 或更早版本,则无法使用此模块
sudo apt update
sudo apt install python3.7
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
liu@liu-virtual-machine:~/rockchip/u-boot-2020/u-boot-master$ which python
/usr/bin/python
liu@liu-virtual-machine:~/rockchip/u-boot-2020/u-boot-master$ python --version
Python 3.6.9
切换python版本到python3.7
sudo apt install python-pip
python3 -m pip install importlib_resources
python3 -m pip install importlib.resources
python3 -m pip install pyelftools

至此,我们已经获取到了所需的idbloader.imgu-boot.itb两个文件

1.4 烧录

瑞芯微官方软件烧录即可(建议V2.84)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值