ZHCAG72 September 2026
SBL是TI提供的另一种启动方式,这种启动方式抛弃了传统的SPL启动,其启动流程如下图。在ROM代码启动后,R5核的启动分为两步,SBL1和SBL2,在SBL2启动过程中会将其他小核的镜像也加载启动。这种启动方式也可以结合falcon方式,跳过U-boot直接启动trusted firmware,optee和内核,最后由内核启动文件系统。在文件系统启动的过程中,还能进一步将文件系统分为两部分,第一部分仅启动需要快速启动的服务,第二部分启动剩余的完整文件系统。
图 2-6 SBL启动流程使用这种启动方式还需要下载额外的MCU SDK,在该SDK的文档中,描述了不同启动介质下的SBL启动方法。本文主要以EMMC启动为例,介绍EMMC启动情况下的实现步骤。启动介质的影响不仅仅在于不同启动介质的传输速率,还在于SBL启动模式下对高速模式的配置。这是由于一些启动介质的配置较为复杂,需要Linux操作系统启动时才能完成高速模式的配置,在启动的前期只能使用低速模式进行镜像的搬运。
SBL的实现可以完全参考实现指南。在指南中说明了需要以下核的镜像:
A Linux appimage containing the Linux binaries (ATF, OPTEE, A53 SPL).
tiboot3.bin with SBL stage1, TIFS, BoardConfig
Appimage for SBL stage2
Appimage for MCU R5
Appimage for HSM M4
Appimage for C75
DM firmware appimage for DM R5
其中,Linux appimage,tiboot3,SBL stage2, HSM 镜像均有详细描述。C7以及R5核的appimage缺少相应教程指导如何打包,接下来的内容将介绍简单的镜像打包方式。
以C7核镜像为例,在编译完MCU Plus SDK后,在mcu_plus_sdk_am62ax_xxxxxx/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62ax-sk/c75ss0-0_freertos/ti-c7000目录下,将生成的appimage,out,rprc文件删除,将Linux SDK中ti-processor-sdk-linux-edgeai-am62a-evm-xxxxx/filesystem/rootfs/lib/firmware/vision_apps_eaik目录下的out文件复制到ti-c7000目录下替换掉删除的out文件,需要注意的是文件名需要与被删除的out文件一致,重新编译MCU SDK中对应example。这种方式是借用MCU SDK编译指令将DSP的镜像打包为需要的appimage。
R5相关的镜像打包也可以参考这个方式生成。
在所需镜像都打包完成后,按照demo 运行指南将镜像全部烧入EMMC,随后启动即可。