TDA4是TI推出的一款高性能、超異構的多核SoC,擁有ARM Cortex-R5F、ARM Cortex-A72、C66以及C71內(nèi)核,可以部署AUTOSAR CP系統(tǒng)、HLOS(Linux或QNX)、圖像處理以及深度學習等功能模塊,從硬件架構來看可以分為MAIN域、MCU域和WKUP域(DMSC)。 MAIN域包括2個A72核,4個R5F核,2個C66核和1個C71核,環(huán)境感知,傳感器融合,智能駕駛算法,深度學習等會部署到MAIN域,也就是智能駕駛的主要功能邏輯會部署到MCU域。 從一個Soc的初始化流程來看,前兩步是面向硬件的,但具體流程也與設備的系統(tǒng)配置(Boot Mode)管腳的設置有關。具體的初始化流程如下: Pre-initialization:電源、時鐘、一些控制連接和啟動配置管腳必須保持在所需的邏輯電平;Power,clock,reset ramp sequence:根據(jù)電源管理芯片(PMIC)指定的時序(Soc 啟動時序)配置Power、Clock、Reset ramp Sequence;ROM Code:兩個ROM Code同時執(zhí)行(DMSC ROM & MCU R5 ROM),從指定存儲空間尋找、下載、執(zhí)行外部第一個程序(SPL/SBL);Initial software(SPL or SBL):加載、準備并將控制權傳遞給應用程序軟件或高級操作系統(tǒng)(HLOS)的軟件;High Level Operating
System(HLOS) or App:在主處理器運行操作系統(tǒng)或軟件應用。Jacinto7
Soc屬于多核處理器擁有Cortex A72、C66x、C7x、Main Cortex R5F、MCU R5F等。通常A72上運行HLOS(Linux/QNX),其余核運行RTOS,MCU可以支持AUTOSAR。除了MCU R5F是啟動控制器,會首先啟動并控制啟動的流程。其余各個核的Power和Reset都可以獨立控制。依據(jù)應用的不同需求可以靈活調(diào)整各個核的啟動順序,且當前Jacinto7支持SPL和SBL兩種不同的bootloader。SBL(Secondary bootloader)是TI寫的非常精簡的Bootloader,可以實現(xiàn)對外圍設備進行配置,比如DDR,可以加載并啟動其它核。為了滿足快速啟動MCU執(zhí)行相關的應用,MCU可以先啟動,然后使用BOOT APP進而引導其它應用程序。在SBL啟動流程中,SBL可以直接加載Linux內(nèi)核和DTB。其流程如下圖所示:7. MCU R5 SBL(tiboot3.bin)加載SYSFW9. MCU R5 SBL 加載MCU Boot App, 運行Sciclient Server。10. MCU R5 Boot App 分別加載Main R5F、DSP、ATF、DTB、Kernel Image/U-boot15. Kernel Image開始執(zhí)行,然后掛載文件系統(tǒng)運行到Linux控制臺16. 運行應用程序 SPL啟動流程 這是SDK默認的啟動流程。SPL(Secondary
Program Loader)指的是運行MCU R5上的SPL,意為第二級的Bootloader,它的功能主要是硬件初始化,引導下一級的Bootloader核或加載應用程序并運行。第一級的Bootloader,指ROM里面的程序,根據(jù)啟動方式的選擇,引導并加載SPL,然后跳轉到第二級的Bootloader,Jacinto7 Soc里面的執(zhí)行流程如x下圖所示: 系統(tǒng)上電 Soc PORZ DMSC&MCU BIST(可選) DMSC ROM開始執(zhí)行 MCU R5 ROM開始執(zhí)行 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并執(zhí)行 A72 Uboot加載R5F 0 Image并執(zhí)行 A72 Uboot加載 R5F 1 Image并執(zhí)行 A72 Uboot 加載 C66x 和C7x Image并執(zhí)行 A72 Uboot 加載Kernel Image并執(zhí)行,然后掛載文件系統(tǒng)運行到Linux控制臺 運行應用程序
|