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域。
从一个soc的初始化流程来看,前两步是面向硬件的,但具体流程也与设备的系统配置(boot mode)管脚的设置有关。具体的初始化流程如下:
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。其流程如下图所示:
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下图所示:
系统上电
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控制台
运行应用程序


ECU系统休眠后通过诊断报文唤醒ECU且唤醒网络后快发NM报文
USB3.0链路如何实现最优系统级静电防护性能
「工业树莓派」APT - 高级打包工具
金立M6SPlus亮相工信部,一款“666”的机器
中国或将成为集成电路人才汇聚新高地,芯华又助力一批专业人才!
TDA4 SPL SBL启动流程简析
三星电子内存价格下跌 全球半导体产业遇冷
禾多科技上榜2023胡润全球未来独角兽
ad574应用电路
边缘计算迈入2.0时代,边缘计算需在标准上有所作为
自动驾驶汽车的关键元件是什么
0-15V/5A的可调电源电路图
智慧城市的发展有多需要5G技术
直流电源和交流电源有什么区别
如何避过测量电源波纹的误区?
移植VMK180 TRD的PetaLinux工程
格力电器董明珠表示格力手机一定会成功
德国智能制造成经济增长新亮点,中国制造2025全面提升制造业竞争力
中美自动驾驶汽车监管对比,拿什么保障安全与责任?
索尼WI-1000XM2国行版发布 售价2499元