TDA4 SPL SBL启动流程简析

描述

TDA4是TI推出的一款高性能、超异构的多核SoC,拥有ARM Cortex-R5F、ARM Cortex-A72、C66以及C71内核,可以部署AUTOSAR CP系统、HLOS(Linux或QNX)、图像处理以及深度学习等功能模块,从硬件架构来看可以分为MAIN域、MCU域和WKUP域(DMSC)。

MAIN域包括2个A72核,4个R5F核,2个C66核和1个C71核,环境感知,传感器融合,智能驾驶算法,深度学习等会部署到MAIN域,也就是智能驾驶的主要功能逻辑会部署到MCU域。

spl

从一个Soc的初始化流程来看,前两步是面向硬件的,但具体流程也与设备的系统配置(Boot Mode)管脚的设置有关。具体的初始化流程如下:

spl

Pre-initialization:电源、时钟、一些控制连接和启动配置管脚必须保持在所需的逻辑电平;

Power,clock,reset ramp sequence:根据电源管理芯片(PMIC)指定的时序(Soc 启动时序)配置Power、Clock、Reset ramp Sequence;

ROM Code:两个ROM Code同时执行(DMSC ROM & MCU R5 ROM),从指定存储空间寻找、下载、执行外部第一个程序(SPL/SBL);

Initial software(SPL or SBL):加载、准备并将控制权传递给应用程序软件或高级操作系统(HLOS)的软件; High Level OperatingSystem(HLOS) or App:在主处理器运行操作系统或软件应用。 Jacinto7Soc属于多核处理器拥有Cortex A72、C66x、C7x、Main Cortex R5F、MCU R5F等。

通常A72上运行HLOS(Linux/QNX),其余核运行RTOS,MCU可以支持AUTOSAR。除了MCU R5F是启动控制器,会首先启动并控制启动的流程。其余各个核的Power和Reset都可以独立控制。依据应用的不同需求可以灵活调整各个核的启动顺序,且当前Jacinto7支持SPL和SBL两种不同的bootloader。

SBL启动流程

SBL(Secondary bootloader)是TI写的非常精简的Bootloader,可以实现对外围设备进行配置,比如DDR,可以加载并启动其它核。为了满足快速启动MCU执行相关的应用,MCU可以先启动,然后使用BOOT APP进而引导其它应用程序。在SBL启动流程中,SBL可以直接加载Linux内核和DTB。其流程如下图所示:

spl

1. 系统上电

2. Soc PORZ

3. DMSC&MCU BIST(可选)

4. DMSC ROM 开始执行

5. MCU R5 ROM 开始执行

6. MCU R5 ROM 加载并运行SBL

7. MCU R5 SBL(tiboot3.bin)加载SYSFW

8. DMSC 认证并启动SYSFW

9. MCU R5 SBL 加载MCU Boot App, 运行Sciclient Server。

10. MCU R5 Boot App 分别加载Main R5F、DSP、ATF、DTB、Kernel Image/U-boot

11. Main R5F 0 开始运行

12. Main R5F 1 开始运行

13. C66x、C7x 开始运行

14. ATF 开始运行

15. Kernel Image开始执行,然后挂载文件系统运行到Linux控制台

16. 运行应用程序

SPL启动流程

这是SDK默认的启动流程。SPL(SecondaryProgram Loader)指的是运行MCU R5上的SPL,意为第二级的Bootloader,它的功能主要是硬件初始化,引导下一级的Bootloader核或加载应用程序并运行。第一级的Bootloader,指ROM里面的程序,根据启动方式的选择,引导并加载SPL,然后跳转到第二级的Bootloader,Jacinto7 Soc里面的执行流程如x下图所示:

spl

系统上电

Soc PORZ

DMSC&MCU BIST(可选)

DMSC ROM开始执行

MCU R5 ROM开始执行

MCU R5 ROM加载并运行SPL(tiboot3.bin)

MCU R5 SPL加载SYSFW(tifs.bin)

DMSC 认证并启动SYSFW

SPL(tiboot3.bin)在A72上引导tispl.bin(这是uboot之前A72上的第一阶段引导加载程序)

tispl.bin在A72上引导uboot.img并启动Uboot

A72 Uboot加载MCU1_0 Image并执行

A72 Uboot加载R5F 0 Image并执行

A72 Uboot加载 R5F 1 Image并执行

A72 Uboot 加载 C66x 和C7x Image并执行

A72 Uboot 加载Kernel Image并执行,然后挂载文件系统运行到Linux控制台

运行应用程序







审核编辑:刘清

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

全部0条评论

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

×
20
完善资料,
赚取积分