基于瑞萨RZ/G2L微处理器的eMMC双阶段混合烧录方案

描述

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

emmc

在基于瑞萨RZ/G2L MPU的嵌入式开发过程中,传统eMMC烧录流程效率成为生产瓶颈——单板烧录耗时约5分30秒,严重制约批量生产效率。针对这一痛点,我们创新性地推出了双阶段混合烧录方案,巧妙结合SCIF与Fastboot技术优势,实现了多设备并行烧录,大幅缩短了整体耗时。

双阶段技术架构

01Bootloader烧录阶段

通过SCIF接口批量写入U-Boot至多块主板eMMC

支持并行操作,避免单板串行等待

02系统镜像烧录阶段

配置U-Boot启用Fastboot over USB功能

PC端Fastboot工具同时操控多块主板,实现分区创建、内核及文件系统并行写入

效率对比:提升显著

emmc

详细实施方案

一、U-Boot配置

在源码中启用Fastboot和USB功能支持,并配置相关功能。

配置文件路径为:u-boot/git/configs/smarc-rzg2l_defconfig

关键配置示例

左右滑动查看完整内容

 

# Fastboot功能配置
CONFIG_USB_FUNCTION_FASTBOOT=y
CONFIG_FASTBOOT_BUF_ADDR=0x4D000000
CONFIG_FASTBOOT_BUF_SIZE=0x8000000
CONFIG_FASTBOOT_USB_DEV=28
CONFIG_FASTBOOT_FLASH=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
CONFIG_CMD_FASTBOOT=y


# USB功能配置
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Renesas"
CONFIG_USB_GADGET_VENDOR_NUM=0x18D1
CONFIG_USB_GADGET_PRODUCT_NUM=0x4E23

 

完成配置和源码修改后编译,得到fip_pmic.srec、bl2_bp_pmic.srec,再通过SCIF下载模式使用Flash Writer工具烧录BL2与FIP至eMMC。

二、Fastboot烧录流程

设备端操作

在U-Boot控制台中执行以下命令进入Fastboot模式:

左右滑动查看完整内容

 

setenv serial# 'Renesas1'  # 自定义设备唯一标识
saveenv
fastboot usb 27  # 启动USB Fastboot服务

 

PC端操作

1验证设备连接

左右滑动查看完整内容

 

fastboot devices

 

2创建并烧写MBR分区表(包含500MB启动分区和3.5GB根文件系统分区)

左右滑动查看完整内容

 

fastboot flash mbr part.mbr

 

3创建启动分区镜像

左右滑动查看完整内容

 

dd if=/dev/zero of=boot.img bs=1M count=256
sudo mkfs.vfat -v -c -F 32 boot.img

 

4挂载并复制内核文件

左右滑动查看完整内容

 

sudo mount boot.img /mnt
cp kernel  /mnt
cp dtb  /mnt
sudo umount /mnt

 

5烧录分区并重启

左右滑动查看完整内容

 

fastboot flash 0:1 boot.img#启动分区
fastboot flash 0:2 core-image-minimal-smarc-rzg2l.ext4  # 根文件系统
fastboot reboot

 

启动参数配置

左右滑动查看完整内容

 

setenv bootargs 'rw rootwait earlycon root=/dev/mmcblk0p2'
setenv bootcmd 'mmc dev 0; fatload mmc 0:1 0x48080000 Image-smarc-rzg2l.bin;
fatload mmc 0:1 0x48000000 Image-r9a07g044l2-smarc.dtb; booti 0x48080000 - 
0x48000000'
saveenv

 

多设备并行烧录实战

通过设备唯一ID识别,实现单PC控制多设备同步烧录:

设备端设置

左右滑动查看完整内容

 

setenv serial# 'Device_001'  # 设备唯一标识
saveenv
fastboot usb 0

 

PC端并行操作

左右滑动查看完整内容

 

# 查看已连接设备
fastboot devices


# 终端1操作设备1
fastboot -s Device_001 flash mbr part.mbr
fastboot -s Device_001 flash 0:1 boot.img
fastboot -s Device_001 reboot


# 终端2同时操作设备2
fastboot -s Device_002 flash mbr part.mbr
fastboot -s Device_002 flash 0:1 boot.img
fastboot -s Device_002 reboot

 

附:单个板子烧录成功log

fastboot log

左右滑动查看完整内容

 

g2l@g2l-VirtualBox:~$ fastboot devices
Renesas1 fastboot
g2l@g2l-VirtualBox:~$ fastboot flash mbr part.mbr
target reported max download size of 134217728 bytes
sending 'mbr' (0 KB)...
OKAY [ 0.007s]
writing 'mbr'...
OKAY [ 0.007s]
finished. total time: 0.014s
g2l@g2l-VirtualBox:~$ fastboot flash 0:1 boot.img #启动分区
target reported max download size of 134217728 bytes
sending '0:1' (85274 KB)...
OKAY [ 7.543s]
writing '0:1'...
OKAY [ 4.010s]
finished. total time: 11.553s
g2l@g2l-VirtualBox:~$ fastboot flash 0:2 core-image-minimal-smarc-rzg2l.ext4
target reported max download size of 134217728 bytes
Invalid sparse file format at header magic
erasing '0:2'...
OKAY [ 5.145s]
sending sparse '0:2'1/1 (80256 KB)...
OKAY [ 7.144s]
writing '0:2'1/1...
OKAY [ 54.646s]
finished. total time: 66.935s
g2l@g2l-VirtualBox:~$ fastboot reboot
rebooting...
finished. total time: 5.601s
g2l@g2l-VirtualBox:~$

 

boot log

左右滑动查看完整内容

 

=> fastboot usb 0
** Bad device specification mmc mbr_a ** 
Couldn't find partition mmc mbr_a 
** Bad device specification mmc mbr ** 
Couldn't find partition mmc mbr 
** Bad device specification mmc mbr **
Couldn't find partition mmc mbr 
Starting download of 512 bytes 
downloading of 512 bytes finished 
fastboot_mmc_flash_write: updating MBR 
........ success 
** Bad partition specification mmc 0:1_a ** 
Couldn't find partition mmc 0:1_a 
Starting download of 87320576 bytes 
.......................................................................... 
downloading of 87320576 bytes finished 
Flashing Raw Image 
........ wrote 87320576 bytes to '0:1'
** Bad partition specification mmc 0:2_a ** 
Couldn't find partition mmc 0:2_a 
Erasing blocks 1026048 to 8388608 due to alignment
........ erased 3769630720 bytes from '0:2'
Starting download of 82182548 bytes 
.......................................................................... 
downloading of 82182548 bytes finished 
Flashing sparse image at offset 1026048
Flashing Sparse Image 
........ wrote 1184509952 bytes to '0:2'
resetting ... 
NOTICE: BL2: v2.9(release):v2.5/rzg2l-1.00-3883-gc314a391c-dirty 
NOTICE: BL2: Built : 1418, Sep 192023
NOTICE: BL2: eMMC boot from partition 1
NOTICE: BL2: Load dst=0x1f840 src=(p:1)0x20000(256) len=0x10(1) 
NOTICE: BL2: eMMC boot from partition 1
NOTICE: BL2: Load dst=0x1f9a0 src=(p:1)0x20010(256) len=0x28(1) 
NOTICE: BL2: eMMC boot from partition 1
NOTICE: BL2: Load dst=0x44000000 src=(p:1)0x20090(256) len=0x6069(49) 
NOTICE: BL2: eMMC boot from partition 1
NOTICE: BL2: Load dst=0x1f840 src=(p:1)0x20000(256) len=0x10(1) 
NOTICE: BL2: eMMC boot from partition 1
NOTICE: BL2: Load dst=0x1f9a0 src=(p:1)0x20010(256) len=0x28(1) 
NOTICE: BL2: Load dst=0x1f9a0 src=(p:1)0x20038(256) len=0x28(1) 
NOTICE: BL2: eMMC boot from partition 1
NOTICE: BL2: Load dst=0x50000000 src=(p:1)0x26100(304) len=0xc0120(1538) 
NOTICE: BL2: Booting BL31 
NOTICE: BL31: v2.9(release):v2.5/rzg2l-1.00-3883-gc314a391c-dirty 
NOTICE: BL31: Built : 1418, Sep 192023
U-Boot 2021.10 (Feb 182025 - 1150 +0800) 
CPU: Renesas Electronics CPU rev 1.0
Model: smarc-rzg2l 
DRAM: 1.9 GiB 
WDT: watchdog@0000000012800800
WDT: Started with servicing (60s timeout) 
MMC: sd@11c00000: 0, sd@11c10000: 1
Loading Environment from MMC... OK 
In: serial@1004b800 
Out: serial@1004b800 
Err: serial@1004b800 
U-boot WDT started! 
Net: eth0: ethernet@11c20000
Hit any key to stop autoboot: 0
switch to partitions #0, OK 
mmc0(part 0) is current device

 

方案适用场景

01推荐使用场景

产线混合生产不同硬件版本

系统镜像需要频繁迭代的开发阶段

小批量多配置定制化订单

02不适用场景

无USB调试接口的主板版本

方案价值

通过SCIF+Fastboot两阶段混合烧录方案,RZG2L平台不仅实现了多设备并行烧录,还大幅提高了生产和开发效率。该方案尤其适合小批量定制化生产快速迭代的开发阶段,为嵌入式系统的量产部署提供了一种高效可行的思路。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分