1、加載硬件驅(qū)動
首先,芯片啟動是需要驅(qū)動底層硬件驅(qū)動模塊,通常行業(yè)內(nèi)稱之為BootLoader引導(dǎo)啟動方式。該引導(dǎo)流程是引導(dǎo)加載程序執(zhí)行,從而初始化 SoC 和并未后續(xù)加載芯片級上操作系統(tǒng)做準(zhǔn)備。
Bootloader 期間需要執(zhí)行的主要操作包含如下:
初始化存儲設(shè)備、內(nèi)存控制器 (MC)、外部內(nèi)存控制器 (EMC) 和 CPU
設(shè)置安全參數(shù)
加載和驗(yàn)證固件組件
維護(hù)信任鏈
為各種固件組件創(chuàng)建內(nèi)存分配
刷寫存儲設(shè)備
引導(dǎo)至操作系統(tǒng)
2、加載軟件模塊
整個芯片應(yīng)用軟件及操作系統(tǒng)等軟件包的啟動包含三大部分:引導(dǎo)和電源管理處理器BPMP、平臺安全控制器PSC、中央處理單元CPU。對于整個軟件啟動而言,實(shí)際應(yīng)該是兩段式啟動加載。類似TI系列的SPL加載方式一樣。英偉達(dá)系列芯片首先需要進(jìn)行底層微啟動模塊MB1的驅(qū)動加載,完成如下一些工作:
平臺配置,包括 pinmux、GPIO、焊盤電壓、SCR 和防火墻;
加載固件,包括初始化 CPU 復(fù)合體 (CCplex) 的組件;
對 PMIC 進(jìn)行編程以啟用 VDD_CPU 軌;
創(chuàng)建內(nèi)存分割;
下圖顯示了引導(dǎo)軟件中的控制流程。
首先,通過業(yè)務(wù)流程管理平臺 BPMP 輸入給服務(wù)端相應(yīng)的業(yè)務(wù)流。業(yè)務(wù)流程管理平臺涉 及如下的資源分散流程。包括通過硬件連接方式初始化啟動媒體,并從中加載微驅(qū)動器Microboot1(MB1)。
1)BPMP(引導(dǎo)和電源管理處理器)
驅(qū)動存儲器BootROM (BR) 硬連線到 SoC,它在 BPMP 離開重置狀態(tài)時開始執(zhí)行初始化啟動媒體,并從存儲中加載啟動配置表 BR(BCT)、信息安全的平臺控制器驅(qū)動PSC(BL1)、微啟動模塊Microboot1 (MB1) 和 模塊配置表MB1(BCT),然后停止。
BootROM 引導(dǎo)配置表 (BR-BCT) 的最多四個副本可以存儲在引導(dǎo)介質(zhì)的開頭。BR-BCT的每個副本都在“設(shè)備擦除扇區(qū)大小”邊界上對齊,如有必要,副本之間留有空白空間。BR-BCT 包含 BootROM 用于硬件初始化的配置參數(shù)以及有關(guān)引導(dǎo)加載程序(MB1、MB1-BCT 和 PSC-BL)的信息,包括:尺寸、入口點(diǎn)、加載地址、散列。BootROM 使用此信息來驗(yàn)證和加載 Bootloader 和 MB1-BCT 的組件。
接通電源后,BPMP 會喚醒并執(zhí)行存儲在板載 iROM (BootROM) 中的初始引導(dǎo)代碼。在安全環(huán)境中,此時的主要目的是驗(yàn)證和初始化所有低級系統(tǒng)功能。這些是基本時鐘、內(nèi)部電 源軌和啟動媒體(SD、SPI 等)之類的東西,然后解析啟動配置表 (BCT) 以尋找有效的啟動配置。
2)平臺安全控制器 (Platform security controller,PSC)
前序文章中提到信息安全子系統(tǒng)包括平臺安全控制器(PSC)以及信息安全引擎(SE)。其中,PSC-ROM 通過硬連線到 NVIDIA Orin 芯片中。將來自保險絲的 OEM 密鑰和來自 RTL 的 NVIDIA 密鑰安全地加載到安全引擎中。
安全控制器需要驗(yàn)證和解密引導(dǎo) ROM 加載的二進(jìn)制文件。ROM 是 SoC 中的硬件組件,一旦處理器被重置,它就會開始運(yùn)行。前文提到PSC-ROM 擁有 NVIDIA 和 OEM 身份驗(yàn)證和解密所需的所有密鑰。它為 BootROM 提供鑒權(quán)和解密服務(wù),并能很好的管控和引導(dǎo)BPMP(即 MB1)和 PSC(即 PSC-BL1)進(jìn)行下一階段的服務(wù)。
相應(yīng)的安全啟動引導(dǎo)流程順序如下:
注意:根據(jù) BOOT_SECURITY_INFO 保險絲設(shè)置,可選擇對 MB1-BCT 進(jìn)行解密。
引導(dǎo) ROM 和 PSC-ROM 使用名為 BR_BCT 的引導(dǎo)配置表,其中包含以下信息:
MB1、PSC-BL1、MB1-BCT的BCH存儲位置引導(dǎo)鏈參數(shù) PSC-ROM 使用的調(diào)試標(biāo)志。MB1_BCT 通常不能由客戶進(jìn)行配置,驗(yàn)證 BCH/BCT 中與計(jì)算值匹配的 SHA-512 散列。使用 BCH/BCT 中的公鑰驗(yàn)證公共簽名,并根據(jù)其在保險絲中的摘要進(jìn)行驗(yàn)證。BCH 包含 SHA-512,然后由 PSC-ROM 進(jìn)行再次驗(yàn)證。
BootROM執(zhí)行完畢后,PSC-ROM/PSC-BL1釋放BPMP R5上的reset,啟動Microboot1(MB1),啟動流程如下:
MB1 擴(kuò)展 BootROM 以提供與 PSC-BL1 相同的安全級別。在 MB1 序列期間,將執(zhí)行以下任務(wù):
設(shè)置時鐘和安全設(shè)置
從 MB1_BCT 初始化平臺配置設(shè)置
根據(jù)MB1引導(dǎo)配置表、MB1_BCT、MEM_BCT初始化SDRAM。
初始化 CCPLEX,包括 MCE FW
加載/驗(yàn)證 NVDEC、BPMP-FW、PSC-FW 和 TSEC 固件
加載 SC7 固件并準(zhǔn)備 SC7 上下文
加載/驗(yàn)證
3)CPU Microboot1(MB1)
該模塊運(yùn)行在 BPMP 之上,是BootROM在 AOTZRAM 中加載的第一個引導(dǎo)軟件組件。它初始化 SoC 的某些部分,并執(zhí)行安全配置。MB1 由 NVIDIA 擁有的密鑰簽名和加密。
下圖顯示了它的控制流程。
安全啟動過程需要找到有效的 BCT,它將加載 TegraBoot 二進(jìn)制文件并傳輸?shù)皆诜前踩h(huán)境中運(yùn)行的二進(jìn)制文件中。TegraBoot 有不同的二進(jìn)制文件,一種用于冷啟動路徑,一種用于熱啟動。
重置或開機(jī)被定義為“冷”啟動,“熱”啟動是從掛起狀態(tài)恢復(fù)。熱啟動將執(zhí)行一組不同的配置。一個單獨(dú)的“恢復(fù)”模式二進(jìn)制文件用于通過 USB 處理與閃存/升級路徑的通信。它的使用取決于開機(jī)時的 GPIO 引腳狀態(tài)和連接的有效外部 USB 主機(jī)。如果未找到有效的 BCT, 它也會進(jìn)入此狀態(tài)(例如,首次從生產(chǎn)中啟動) 。在正常的“冷”引導(dǎo)流程中,TegraBoot 將加載 CCPLEX 相關(guān)引導(dǎo)加載程序、EL3 監(jiān)控程序包(Arm Trusted Firmware,ATF)、掛起模式支持固件和更全面的引導(dǎo)加載程序,稱為 CBoot。
注意:所有時間戳都與開機(jī)有關(guān),輸出來自BPMP,直到它停止。系統(tǒng)設(shè)備樹二進(jìn)制文件也被加載,內(nèi)核和引導(dǎo)加載程序允許有不同的版本,但實(shí)際上在大多數(shù)情況下它們往往是相同的副本。
CCPLEX 的主要 EL2 引導(dǎo)加載程序是 CBoot,該二進(jìn)制文件被加載到主系統(tǒng)內(nèi)存中并設(shè) 置為下一個可執(zhí)行文件。當(dāng)主 CCPLEX 啟動時,它將執(zhí)行轉(zhuǎn)移到之前加載的 CBoot 二進(jìn)制 文件。
SC7 掛起模式固件與運(yùn)行時 BPMP 固件一起加載,這是該處理器執(zhí)行的非引導(dǎo)加載程序 相關(guān)代碼。加載 EL3 監(jiān)視器/ATF 包并檢查其完整性。為下一階段的啟動加載了所有內(nèi)容,主 CCPLEX 被釋放并且 BPMP 自行停止。將在稍后的過程中重新啟動,之前加載的 BPMP-FW 將充當(dāng)主要 CCPLEX 訪問電源管理和低級系統(tǒng)控制功能的通信路徑(通過共享內(nèi)存郵箱和 PSCI)。
TZ(Trusted Zone),ATF(ARM Trusted Firmware) ;是 ARM 在 Arm V8 引入的安全解決方案,為安全提供了整體解決方案。包括啟動和運(yùn)行過程中的特權(quán)級劃分,對Trust Zone(TZ)的優(yōu)化,補(bǔ)充了啟動過程信任鏈的傳導(dǎo),細(xì)化了運(yùn)行過程的特權(quán)級區(qū)間。
基于NVIDIA芯片的自動駕駛系統(tǒng)架構(gòu)電源設(shè)計(jì)及啟動流程
這里以單 Orin系列 實(shí)現(xiàn)的架構(gòu)方案來說明如何針對性的進(jìn)行域控層級的啟動時序與電源管理 BPMP 。
英偉達(dá)系列芯片的啟動過程包含:冷啟動、熱啟動、深睡眠(SC7)、電源管理。其中電源管理包含底層時鐘管理(存儲控制器頻率交換機(jī))、Orin芯片系列電源狀態(tài)管理,進(jìn)程、電壓和溫度傳感器管理。整個驅(qū)動與電源管理包含一個 ARM Cortex-R5 處理器,該處理器有雙精度浮點(diǎn)單元(FPU)。雙精度 FPU 的這種特性包含了板上 Cortex-R5(比如 AON 和 RCE)簇的所有特性。內(nèi)置的兩個緊耦合的存儲單元:ATCM 和 BTCM,可以分別存儲片上驅(qū)動 ROM 和一個128KB 的 RAM(用于執(zhí)行延遲關(guān)鍵代碼)。驅(qū)動與電源管理的另一些特性是還有矢量中斷控制器、計(jì)時器、直接內(nèi)存訪問(DMA)、NIC、地址映射邏輯、Debug 調(diào)試等,這樣可以確保對驅(qū)動和電源管理的完整支持。
1、Orin PMIC
Orin-x系列芯片電源包含一個電源序列 VRS-10,高電流電壓矯正器(HCVR)VRS-11,VRS-12 電壓監(jiān)視器和電流電壓矯正器(LCVR),VRS-10 提供了基于多電壓矯正器的事件測序輸出, 這樣就可以存儲到六個 OTP 序列用于上下電,SC7 的進(jìn)入/退出。由于 Orin-n 不再需要 DLA 和 PVA,因此 VDD_CV 軌也就不再需要。此外,在 VDD_GPU 的電源軌也僅僅是單相的。
2、MCU PMIC
安全的 MCU 可用于功能安全,其中包含監(jiān)控和控制 Orin 芯片的電源軌進(jìn)入。MCU 的 GPIO 引腳可以用于使能電源序列,同時科被當(dāng)做一個電源信號的回讀信號。一般考慮到系統(tǒng)需求,Orin 芯片的進(jìn)入設(shè)計(jì)可以運(yùn)行在不同的電源狀態(tài)下,不同的進(jìn)入狀態(tài)是由不同的進(jìn)入條件來觸發(fā)的。
MCU 的 PMIC 管理模塊(TLF35584)可以提供 MCU 對應(yīng)的電量,并且喚醒可用的 CAN 鏈路。SPI總線則可用于在 MCU PMIC 和 MCU 之間進(jìn)行通信,從而實(shí)現(xiàn)對系統(tǒng)的喚醒、休眠、看門狗心跳的模式設(shè)置。
3、電源樹設(shè)置
在 Orin Entry 設(shè)計(jì)后,即可通過 KL30 接入電源,MCU 可以控制 Orin 的電源。Orin Entry 設(shè)計(jì)也可以支持“深度睡眠”(由 SC7 進(jìn)行電源狀態(tài)管理,后面會做詳細(xì)說明)。整個域控的喚醒要么由 CAN,要么由專門的連接器輸入喚醒。
如下圖表示了 Orin Entry 設(shè)計(jì)的電源樹圖。
為了詳細(xì)的說明 Orin 電源子系統(tǒng)的電源樹結(jié)構(gòu),這里可以將電源樹結(jié)構(gòu)區(qū)分為三大部分:蓄電池接入端 KL30、降壓器、穩(wěn)壓器(TLF35584 或 LM5176)。
TLF35584 QVVS2 是一款多輸出系統(tǒng)電源,適用于安全相關(guān)應(yīng)用,通過高效靈活的前置/后置穩(wěn)壓器,在寬輸入電壓范圍內(nèi)提供 3.3V-μC、收發(fā)器和傳感器。它具備寬開關(guān)頻率范圍允許在效率和小型濾波器組件的使用方面進(jìn)行優(yōu)化。專用參考穩(wěn)壓器獨(dú)立于 μC 負(fù)載階躍為 ADC 供電,并充當(dāng) 2 個獨(dú)立傳感器電源的跟蹤源。靈活的狀態(tài)機(jī)、包括定時器在內(nèi)的喚醒概念以及備用穩(wěn)壓器有利于在整個電源樹設(shè)計(jì)中首先進(jìn)行降壓穩(wěn)壓處理。
本電源樹設(shè)計(jì)模塊配置為在 6V-36V 的輸入電壓范圍內(nèi)工作,并提供具有高達(dá) 12A 負(fù) 載電流的 12V 穩(wěn)壓輸出。因此,可以通過 LM5176 供給 MCU 和 Can 收發(fā)器作為電壓輸入。通過使用穩(wěn)壓器 LM5176 可調(diào)節(jié)電流限制、使能、頻率同步、電源正常、預(yù)偏置啟動、同步 整流、UVLO 可調(diào)整。同時,LM5176 的寬輸入電壓降壓-升壓控制器可以輸出靈活的高功率降壓-升壓設(shè)計(jì)。通過高效同步 DC-DC 降壓轉(zhuǎn)換器(如 TPS62065-Q1)可以提供固定的 5V 和 3.3V 輸出給到 MCU、攝像頭單元、超聲波接口、冷卻系統(tǒng)、芯片內(nèi)部的工作電壓 VDD。且MCU 的最高輸出電流可以達(dá)到2A。
此外,通過使用 LM5143 降壓器,其中的高密度評估模塊(EVM)可以實(shí)現(xiàn)高性能、雙通道、汽車同步 DC/DC 降壓控制器的性能。它可在 3.5V 至 36V 的寬輸入電壓范圍內(nèi)運(yùn)行,這樣整個有 Orin 配置的域控電源閉環(huán)就可以實(shí)現(xiàn)系統(tǒng)電源及子系統(tǒng)電源電壓的輸出了。這部分輸出可以完全供給給域控內(nèi)部的以太網(wǎng)交換機(jī)、加解串器、SOC、Can PHY 以及接入電路電壓的控制。
4、電路保護(hù)
如上圖所示的反向電池保護(hù)模塊可以用于保護(hù)可能流入設(shè)備的負(fù)向電壓,這些設(shè)備都是 連接到電池輸入端的。通常,反向電壓保護(hù)是由二極管保護(hù)起來的。電源電壓監(jiān)控有三個 VRS-12設(shè)備,每個設(shè)備有6個監(jiān)控輸入,監(jiān)控 Orin Soc 電源軌。
總結(jié)
本文從英偉達(dá)系列芯片本身啟動時序以及利用該芯片構(gòu)建的自動駕駛系統(tǒng)外設(shè)電源管理及啟動模式進(jìn)行分析,幫助讀者了解整個芯片的啟動原理及如何設(shè)計(jì)外圍最小化系統(tǒng)架構(gòu)。后續(xù)文章中將更加詳細(xì)的就外圍設(shè)計(jì)電路的啟動路徑及電源管理時序等進(jìn)行詳述。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16384瀏覽量
178342 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4994瀏覽量
103166 -
emc
+關(guān)注
關(guān)注
170文章
3927瀏覽量
183311 -
PSC
+關(guān)注
關(guān)注
0文章
15瀏覽量
7750 -
VDD
+關(guān)注
關(guān)注
1文章
312瀏覽量
33263
原文標(biāo)題:NVIDIA芯片啟動流程分析
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論