瑞萨RZ/G2L量产提速利器:Fastboot模式下的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技术优势,实现了多设备并行烧录,大幅缩短了整体耗时。


 


 

双阶段技术架构

01

 

Bootloader烧录阶段

通过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=yCONFIG_FASTBOOT_BUF_ADDR=0x4D000000CONFIG_FASTBOOT_BUF_SIZE=0x8000000CONFIG_FASTBOOT_USB_DEV=28CONFIG_FASTBOOT_FLASH=yCONFIG_FASTBOOT_FLASH_MMC_DEV=0CONFIG_CMD_FASTBOOT=y
# USB功能配置CONFIG_USB=yCONFIG_USB_XHCI_HCD=yCONFIG_USB_EHCI_HCD=yCONFIG_USB_GADGET=yCONFIG_USB_GADGET_MANUFACTURER="Renesas"CONFIG_USB_GADGET_VENDOR_NUM=0x18D1CONFIG_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'  # 自定义设备唯一标识saveenvfastboot 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=256sudo mkfs.vfat -v -c -F 32 boot.img


 

4

挂载并复制内核文件

左右滑动查看完整内容

  •  
  •  
  •  
  •  

sudo mount boot.img /mntcp kernel  /mntcp dtb  /mntsudo 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'  # 设备唯一标识saveenvfastboot usb 0


 

 

PC端并行操作

左右滑动查看完整内容

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

# 查看已连接设备fastboot devices
# 终端1操作设备1fastboot -s Device_001 flash mbr part.mbrfastboot -s Device_001 flash 0:1 boot.imgfastboot -s Device_001 reboot
# 终端2同时操作设备2fastboot -s Device_002 flash mbr part.mbrfastboot -s Device_002 flash 0:1 boot.imgfastboot -s Device_002 reboot


 

附:单个板子烧录成功log


 

fastboot log

左右滑动查看完整内容

 

g2l@g2l-VirtualBox:~$ fastboot devicesRenesas1 fastbootg2l@g2l-VirtualBox:~$ fastboot flash mbr part.mbrtarget reported max download size of 134217728 bytessending 'mbr' (0 KB)...OKAY [ 0.007s]writing 'mbr'...OKAY [ 0.007s]finished. total time: 0.014sg2l@g2l-VirtualBox:~$ fastboot flash 0:1 boot.img #启动分区target reported max download size of 134217728 bytessending '0:1' (85274 KB)...OKAY [ 7.543s]writing '0:1'...OKAY [ 4.010s]finished. total time: 11.553sg2l@g2l-VirtualBox:~$ fastboot flash 0:2 core-image-minimal-smarc-rzg2l.ext4target reported max download size of 134217728 bytesInvalid sparse file format at header magicerasing '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.935sg2l@g2l-VirtualBox:~$ fastboot rebootrebooting...finished. total time: 5.601sg2l@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 1026048Flashing 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 192023NOTICE: BL2: eMMC boot from partition 1NOTICE: BL2: Load dst=0x1f840 src=(p:1)0x20000(256) len=0x10(1) NOTICE: BL2: eMMC boot from partition 1NOTICE: BL2: Load dst=0x1f9a0 src=(p:1)0x20010(256) len=0x28(1) NOTICE: BL2: eMMC boot from partition 1NOTICE: BL2: Load dst=0x44000000 src=(p:1)0x20090(256) len=0x6069(49) NOTICE: BL2: eMMC boot from partition 1NOTICE: BL2: Load dst=0x1f840 src=(p:1)0x20000(256) len=0x10(1) NOTICE: BL2: eMMC boot from partition 1NOTICE: 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 1NOTICE: 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 192023U-Boot 2021.10 (Feb 182025 - 1150 +0800) CPU: Renesas Electronics CPU rev 1.0Model: smarc-rzg2l DRAM: 1.9 GiB WDT: watchdog@0000000012800800WDT: Started with servicing (60s timeout) MMC: sd@11c00000: 0, sd@11c10000: 1Loading Environment from MMC... OK In: serial@1004b800 Out: serial@1004b800 Err: serial@1004b800 U-boot WDT started! Net: eth0: ethernet@11c20000Hit any key to stop autoboot: 0switch to partitions #0, OK mmc0(part 0) is current device


 


 

方案适用场景

01

 

推荐使用场景

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

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

小批量多配置定制化订单

02

 

不适用场景

  • 无USB调试接口的主板版本


 


 

方案价值

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


 

 

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

全部0条评论

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

×
20
完善资料,
赚取积分