MPU Bootloader单独编译方法详解

瑞萨RZ/G2L MPU Bootloader单独编译方法

转自 | 瑞萨嵌入式小百科

这些年MPU开始盛行,各大厂商都在布局MPU这条路线,MPU开发也在逐渐成熟。今天结合瑞萨RZ/G2L系列MPU 给大家讲讲Bootloader单独编译方法详解。

在RZ/G2L的开发工作中,用户经常会提出需要单独编译Bootloader的需求。为了满足用户需求,本文将介绍一种RZ/G2L上脱离Yocto的单独编译Bootloader的方法,从而能够快速便捷地生成Bootloader文件。

首先介绍一下RZ/G2L的标准Bootloader启动流程,如下图所示:

在上述流程中,BL1为固化在ROM中的一段启动加载代码,用于引导BL2并对其进行安全验证;BL2主要完成一些平台相关的初始化,如DDR初始化;BL31是持久存在的可信固件,负责系统安全服务和在Secure World及Normal World之间切换;BL32包括一个可信安全的OS(如OP-TEE OS)以及安全应用;BL33为非安全固件,通常为U-Boot。

对于Secure版本的RZ/G2L,Bootloader包括BL1、BL2、BL31、BL32、BL33。而对于Non-Secure版本的RZ/G2L,Bootloader包括BL1、BL2、BL31、BL33。本文仅针对Non-Secure版本的RZ/G2L EVK,以下直接简称RZ/G2L。

对于RZ/G2L,用户可修改并重新编译的Bootloader文件包括trusted-firmware-a(TF-A)和U-Boot。

接下来,从github上获取Bootloader源码。

获取TF-A源码:

左右滑动查看完整内容

git clone https://github.com/renesas-rz/rzg_trusted-firmware-acd rzg_trusted-firmware-agit checkout v2.6/rzcd ..

获取U-Boot源码:

左右滑动查看完整内容

git clone https://github.com/renesas-rz/renesas-u-boot-cipcd renesas-u-boot-cip/git checkout v2021.10/rzcd ..

💡 注意

本文以v2.6版本的TF-A和v2021.10版本的U-Boot为例。客户在实际使用时,需注意同步为所用VLP版本下的TF-A和U-Boot版本。

获取用于TF-A和U-Boot构建的自动化脚本:

左右滑动查看完整内容

wget https://raw.githubusercontent.com/renesas-rz/rzg2_bsp_scripts/master/build_scripts/build_common.shwget https://raw.githubusercontent.com/renesas-rz/rzg2_bsp_scripts/master/build_scripts/build_tfa.shwget https://raw.githubusercontent.com/renesas-rz/rzg2_bsp_scripts/master/build_scripts/build_uboot.shwget https://raw.githubusercontent.com/renesas-rz/rzg2_bsp_scripts/master/build_scripts/build.shchmod +x *.sh

其中,build.sh提供构建各镜像的入口,build_common.sh用于设置通用配置项,build_tfa.sh用于构建TF-A,build_uboot.sh用于构建U-Boot。

在获取源码和用于构建的脚本后,就可以进行编译了。

运行脚本

设置对应的板子信息以及要使用的交叉编译工具链:

./build.sh s

在下面的界面中完成相应的配置

  • 设置板子型号,选择“5 smarc-rzg2l Renesas SMARC RZ/G2L”

  • 设置RZ/G2L板子的版本,分为PMIC_Power和Discrete_Power版本,这里选择“PMIC_Power”。

  • 设置交叉编译工具链,这里选择“1 Poky (Yocto SDK) /opt/poky/3.1.11”。

💡 注意

编译前,请确认Host PC中存在交叉编译工具链。如果不存在,则需要参考《SMARC EVK of RZ/G2L, RZ/G2LC and RZ/G2UL Linux Start-up Guide》文档第7.1.1节How to extract SDK,安装交叉编译工具链。

运行脚本,构建U-Boot

./build.sh u

运行脚本,构建TF-A

./build.sh t

构建完毕,生成的产物位于output_smarc_rzg2l路径下

其中,bl2_bp-smarc-rzg2l_pmic.srec和fip-smarc-rzg2l_pmic.srec即为需要烧写的Bootloader文件。

💡 注意

每次修改U-Boot时,除了需重新编译U-Boot外,还需重新编译TF-A,因为TF-A里面需要包含U-Boot输出文件信息,否则无法正常启动U-Boot。

以上,就是RZ/G2L单独编译Bootloader的方法。

关于烧写Bootloader文件的方法,可参考SMARC EVK of RZ/G2L,RZ/G2LCRZ/G2UL Linux Start-up Guide Rev.1.06文档第4.4节Write the Bootloader。(您可复制下方链接至浏览器查看)

SMARC EVK of RZ/G2L,RZ/G2LC,RZ/G2UL Linux Start-up Guide Rev.1.06

https://www.renesas.com/en/document/gde/smarc-evk-rzg2l-rzg2lc-rzg2ul-linux-start-guide-rev106?r=1467981

关于RZ/G2L

RZ/G2L微处理器配备Cortex®-A55(1.2 GHz)CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D图形加速引擎以及视频编解码器(H.264)。此外,这款微处理器还配备有大量接口,如摄像头输入、显示输出、USB2.0和千兆以太网,因此特别适用于入门级工业人机界面(HMI)和具有视频功能的嵌入式设备等应用。

如需了解更详细的使用方法请参考如下网站:

瑞萨官网

https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/rz-mpus/rzg2l-getting-started

RZ产品WIKI网站

https://renesas.info/wiki/Main_Page

如何将单片机变量“钉”在Standby RAM中?

高性能单片机如何利用 AI 进行低功耗推理

RTOS任务调度器的三种调度算法和应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值