一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVIDIA芯片內(nèi)部啟動流程分析

jf_C6sANWk1 ? 來源:焉知汽車 ? 2023-05-09 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NVIDIA Jetson 作為開發(fā)者套件是最簡單的入門方法之一,可以將高性能 Arm 內(nèi)核與NVIDIA 自己的高級 GPU 引擎結(jié)合在一起,使其功能強大且易于使用。在這篇文章中,我們將從 Jetson Nano 入手詳細分析英偉達系列芯片的啟動過程,通過對比分析 Jeston 和 Drive 驅(qū)動的區(qū)別,總結(jié)英偉達系列芯片的整體啟動過程原理。

NVIDIA芯片內(nèi)部啟動流程分析

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ù)

加載和驗證固件組件

維護信任鏈

為各種固件組件創(chuàng)建內(nèi)存分配

刷寫存儲設(shè)備

引導(dǎo)至操作系統(tǒng)

2、加載軟件模塊

整個芯片應(yīng)用軟件及操作系統(tǒng)等軟件包的啟動包含三大部分:引導(dǎo)和電源管理處理器BPMP、平臺安全控制器PSC、中央處理單元CPU。對于整個軟件啟動而言,實際應(yīng)該是兩段式啟動加載。類似TI系列的SPL加載方式一樣。英偉達系列芯片首先需要進行底層微啟動模塊MB1的驅(qū)動加載,完成如下一些工作:

平臺配置,包括 pinmux、GPIO、焊盤電壓、SCR 和防火墻;

根據(jù) Memory BCT 初始化 SDRAM;

加載固件,包括初始化 CPU 復(fù)合體 (CCplex) 的組件;

PMIC 進行編程以啟用 VDD_CPU 軌;

創(chuàng)建內(nèi)存分割;

下圖顯示了引導(dǎo)軟件中的控制流程。

8cca4b62-ed87-11ed-90ce-dac502259ad0.png

首先,通過業(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)的信息,包括:尺寸、入口點、加載地址、散列。BootROM 使用此信息來驗證和加載 Bootloader 和 MB1-BCT 的組件。

接通電源后,BPMP 會喚醒并執(zhí)行存儲在板載 iROM (BootROM) 中的初始引導(dǎo)代碼。在安全環(huán)境中,此時的主要目的是驗證和初始化所有低級系統(tǒng)功能。這些是基本時鐘、內(nèi)部電 源軌和啟動媒體(SD、SPI 等)之類的東西,然后解析啟動配置表 (BCT) 以尋找有效的啟動配置。

2)平臺安全控制器 (Platform security controller,PSC)

前序文章中提到信息安全子系統(tǒng)包括平臺安全控制器(PSC)以及信息安全引擎(SE)。其中,PSC-ROM 通過硬連線到 NVIDIA Orin 芯片中。將來自保險絲的 OEM 密鑰和來自 RTL 的 NVIDIA 密鑰安全地加載到安全引擎中。

安全控制器需要驗證和解密引導(dǎo) ROM 加載的二進制文件。ROM 是 SoC 中的硬件組件,一旦處理器被重置,它就會開始運行。前文提到PSC-ROM 擁有 NVIDIA 和 OEM 身份驗證和解密所需的所有密鑰。它為 BootROM 提供鑒權(quán)和解密服務(wù),并能很好的管控和引導(dǎo)BPMP(即 MB1)和 PSC(即 PSC-BL1)進行下一階段的服務(wù)。

相應(yīng)的安全啟動引導(dǎo)流程順序如下:

8ce864f8-ed87-11ed-90ce-dac502259ad0.png

注意:根據(jù) BOOT_SECURITY_INFO 保險絲設(shè)置,可選擇對 MB1-BCT 進行解密。

引導(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 通常不能由客戶進行配置,驗證 BCH/BCT 中與計算值匹配的 SHA-512 散列。使用 BCH/BCT 中的公鑰驗證公共簽名,并根據(jù)其在保險絲中的摘要進行驗證。BCH 包含 SHA-512,然后由 PSC-ROM 進行再次驗證。

BootROM執(zhí)行完畢后,PSC-ROM/PSC-BL1釋放BPMP R5上的reset,啟動Microboot1(MB1),啟動流程如下:

8cfb5aae-ed87-11ed-90ce-dac502259ad0.png

MB1 擴展 BootROM 以提供與 PSC-BL1 相同的安全級別。在 MB1 序列期間,將執(zhí)行以下任務(wù):

設(shè)置時鐘和安全設(shè)置

從 MB1_BCT 初始化平臺配置設(shè)置

根據(jù)MB1引導(dǎo)配置表、MB1_BCT、MEM_BCT初始化SDRAM。

初始化 CCPLEX,包括 MCE FW

加載/驗證 NVDEC、BPMP-FW、PSC-FW 和 TSEC 固件

加載 SC7 固件并準(zhǔn)備 SC7 上下文

加載/驗證

3)CPU Microboot1(MB1)

該模塊運行在 BPMP 之上,是BootROM在 AOTZRAM 中加載的第一個引導(dǎo)軟件組件。它初始化 SoC 的某些部分,并執(zhí)行安全配置。MB1 由 NVIDIA 擁有的密鑰簽名和加密。

下圖顯示了它的控制流程。

8d1b2802-ed87-11ed-90ce-dac502259ad0.png

安全啟動過程需要找到有效的 BCT,它將加載 TegraBoot 二進制文件并傳輸?shù)皆诜前踩h(huán)境中運行的二進制文件中。TegraBoot 有不同的二進制文件,一種用于冷啟動路徑,一種用于熱啟動。

重置或開機被定義為“冷”啟動,“熱”啟動是從掛起狀態(tài)恢復(fù)。熱啟動將執(zhí)行一組不同的配置。一個單獨的“恢復(fù)”模式二進制文件用于通過 USB 處理與閃存/升級路徑的通信。它的使用取決于開機時的 GPIO 引腳狀態(tài)和連接的有效外部 USB 主機。如果未找到有效的 BCT, 它也會進入此狀態(tài)(例如,首次從生產(chǎn)中啟動) 。在正常的“冷”引導(dǎo)流程中,TegraBoot 將加載 CCPLEX 相關(guān)引導(dǎo)加載程序、EL3 監(jiān)控程序包(Arm Trusted Firmware,ATF)、掛起模式支持固件和更全面的引導(dǎo)加載程序,稱為 CBoot。

注意:所有時間戳都與開機有關(guān),輸出來自BPMP,直到它停止。系統(tǒng)設(shè)備樹二進制文件也被加載,內(nèi)核和引導(dǎo)加載程序允許有不同的版本,但實際上在大多數(shù)情況下它們往往是相同的副本。

CCPLEX 的主要 EL2 引導(dǎo)加載程序是 CBoot,該二進制文件被加載到主系統(tǒng)內(nèi)存中并設(shè) 置為下一個可執(zhí)行文件。當(dāng)主 CCPLEX 啟動時,它將執(zhí)行轉(zhuǎn)移到之前加載的 CBoot 二進制 文件。

SC7 掛起模式固件與運行時 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 引入的安全解決方案,為安全提供了整體解決方案。包括啟動和運行過程中的特權(quán)級劃分,對Trust Zone(TZ)的優(yōu)化,補充了啟動過程信任鏈的傳導(dǎo),細化了運行過程的特權(quán)級區(qū)間。

基于NVIDIA芯片的自動駕駛系統(tǒng)架構(gòu)電源設(shè)計及啟動流程

這里以單 Orin系列 實現(xiàn)的架構(gòu)方案來說明如何針對性的進行域控層級的啟動時序與電源管理 BPMP 。

英偉達系列芯片的啟動過程包含:冷啟動、熱啟動、深睡眠(SC7)、電源管理。其中電源管理包含底層時鐘管理(存儲控制器頻率交換機)、Orin芯片系列電源狀態(tài)管理,進程、電壓和溫度傳感器管理。整個驅(qū)動與電源管理包含一個 ARM Cortex-R5 處理器,該處理器有雙精度浮點單元(FPU)。雙精度 FPU 的這種特性包含了板上 Cortex-R5(比如 AON 和 RCE)簇的所有特性。內(nèi)置的兩個緊耦合的存儲單元:ATCM 和 BTCM,可以分別存儲片上驅(qū)動 ROM 和一個128KB 的 RAM(用于執(zhí)行延遲關(guān)鍵代碼)。驅(qū)動與電源管理的另一些特性是還有矢量中斷控制器、計時器、直接內(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 的進入/退出。由于 Orin-n 不再需要 DLA 和 PVA,因此 VDD_CV 軌也就不再需要。此外,在 VDD_GPU 的電源軌也僅僅是單相的。

2、MCU PMIC

安全的 MCU 可用于功能安全,其中包含監(jiān)控和控制 Orin 芯片的電源軌進入。MCU 的 GPIO 引腳可以用于使能電源序列,同時科被當(dāng)做一個電源信號的回讀信號。一般考慮到系統(tǒng)需求,Orin 芯片的進入設(shè)計可以運行在不同的電源狀態(tài)下,不同的進入狀態(tài)是由不同的進入條件來觸發(fā)的。

MCU 的 PMIC 管理模塊(TLF35584)可以提供 MCU 對應(yīng)的電量,并且喚醒可用的 CAN 鏈路。SPI總線則可用于在 MCU PMIC 和 MCU 之間進行通信,從而實現(xiàn)對系統(tǒng)的喚醒、休眠、看門狗心跳的模式設(shè)置。

3、電源樹設(shè)置

在 Orin Entry 設(shè)計后,即可通過 KL30 接入電源,MCU 可以控制 Orin 的電源。Orin Entry 設(shè)計也可以支持“深度睡眠”(由 SC7 進行電源狀態(tài)管理,后面會做詳細說明)。整個域控的喚醒要么由 CAN,要么由專門的連接器輸入喚醒。

如下圖表示了 Orin Entry 設(shè)計的電源樹圖。

8d3c7dd6-ed87-11ed-90ce-dac502259ad0.png

為了詳細的說明 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)頻率范圍允許在效率和小型濾波器組件的使用方面進行優(yōu)化。專用參考穩(wěn)壓器獨立于 μC 負(fù)載階躍為 ADC 供電,并充當(dāng) 2 個獨立傳感器電源的跟蹤源。靈活的狀態(tài)機、包括定時器在內(nèi)的喚醒概念以及備用穩(wěn)壓器有利于在整個電源樹設(shè)計中首先進行降壓穩(wěn)壓處理。

本電源樹設(shè)計模塊配置為在 6V-36V 的輸入電壓范圍內(nèi)工作,并提供具有高達 12A 負(fù) 載電流的 12V 穩(wěn)壓輸出。因此,可以通過 LM5176 供給 MCU 和 Can 收發(fā)器作為電壓輸入。通過使用穩(wěn)壓器 LM5176 可調(diào)節(jié)電流限制、使能、頻率同步、電源正常、預(yù)偏置啟動、同步 整流、UVLO 可調(diào)整。同時,LM5176 的寬輸入電壓降壓-升壓控制器可以輸出靈活的高功率降壓-升壓設(shè)計。通過高效同步 DC-DC 降壓轉(zhuǎn)換器(如 TPS62065-Q1)可以提供固定的 5V 和 3.3V 輸出給到 MCU、攝像頭單元、超聲波接口、冷卻系統(tǒng)、芯片內(nèi)部的工作電壓 VDD。且MCU 的最高輸出電流可以達到2A。

此外,通過使用 LM5143 降壓器,其中的高密度評估模塊(EVM)可以實現(xiàn)高性能、雙通道、汽車同步 DC/DC 降壓控制器的性能。它可在 3.5V 至 36V 的寬輸入電壓范圍內(nèi)運行,這樣整個有 Orin 配置的域控電源閉環(huán)就可以實現(xiàn)系統(tǒng)電源及子系統(tǒng)電源電壓的輸出了。這部分輸出可以完全供給給域控內(nèi)部的以太網(wǎng)交換機、加解串器、SOC、Can PHY 以及接入電路電壓的控制。

4、電路保護

如上圖所示的反向電池保護模塊可以用于保護可能流入設(shè)備的負(fù)向電壓,這些設(shè)備都是 連接到電池輸入端的。通常,反向電壓保護是由二極管保護起來的。電源電壓監(jiān)控有三個 VRS-12設(shè)備,每個設(shè)備有6個監(jiān)控輸入,監(jiān)控 Orin Soc 電源軌。

總結(jié)

本文從英偉達系列芯片本身啟動時序以及利用該芯片構(gòu)建的自動駕駛系統(tǒng)外設(shè)電源管理及啟動模式進行分析,幫助讀者了解整個芯片的啟動原理及如何設(shè)計外圍最小化系統(tǒng)架構(gòu)。后續(xù)文章中將更加詳細的就外圍設(shè)計電路的啟動路徑及電源管理時序等進行詳述。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17095

    瀏覽量

    184127
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    442

    瀏覽量

    56283
  • 電源管理
    +關(guān)注

    關(guān)注

    117

    文章

    6431

    瀏覽量

    146083
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5304

    瀏覽量

    106313
  • VDD
    VDD
    +關(guān)注

    關(guān)注

    1

    文章

    316

    瀏覽量

    35145

原文標(biāo)題:英偉達系列芯片如何用于自動駕駛開發(fā)之(二):硬件電源設(shè)計

文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    u-boot啟動流程分析

    今天給大家全面的分析一下u-boot啟動流程。整理這篇文章花費時間較長,中間很長時間未更新,希望這篇文章對大家有所幫助。
    發(fā)表于 07-12 15:16 ?1218次閱讀
    u-boot<b class='flag-5'>啟動</b><b class='flag-5'>流程</b><b class='flag-5'>分析</b>

    Linux啟動流程基本分析

    Linux啟動流程總的來說可以分成三個階段 Linux啟動流程圖 ? 第一步:上電 ?在 x86 系統(tǒng)中,將 1M 空間最上面的 0xF0000 到 0xFFFFF 這 64K 映射給
    的頭像 發(fā)表于 05-11 08:49 ?1521次閱讀
    Linux<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>基本<b class='flag-5'>分析</b>

    linux啟動流程分析

    linux啟動流程分析
    發(fā)表于 08-04 00:27

    芯片內(nèi)部的程序執(zhí)行流程

    想了解仿真連接仿真后,芯片內(nèi)部的程序執(zhí)行流程,請問有相關(guān)介紹的資料嗎?
    發(fā)表于 05-25 12:08

    如何分析RK3399這個芯片啟動方式呢

    RK3399啟動流程是怎樣的?如何分析RK3399這個芯片啟動方式呢?
    發(fā)表于 03-09 07:52

    VxWorks及BSP啟動流程與順序

    本文首先介紹vxworks映像的類型及各類型vxworks映像的啟動順序;然后介紹BSP的啟動流程與初始化順序。 關(guān)鍵詞:vxworks映像;BSP啟動;代碼
    發(fā)表于 11-07 15:50 ?105次下載
    VxWorks及BSP<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>與順序

    詳解bootloader的執(zhí)行流程與ARM Linux啟動過程分析

    S3C2410 ARM處理器為例,詳細分析了系統(tǒng)上電后 bootloader的執(zhí)行流程及 ARM Linux的啟動過程。
    的頭像 發(fā)表于 12-21 09:24 ?1.1w次閱讀
    詳解bootloader的執(zhí)行<b class='flag-5'>流程</b>與ARM Linux<b class='flag-5'>啟動</b>過程<b class='flag-5'>分析</b>

    藍牙m(xù)esh安全的啟動配置流程分析

    1、發(fā)送Beacon信號:如果未經(jīng)啟動配置的設(shè)備支持PB-ADV承載層,則其作為未經(jīng)啟動配置設(shè)備Beacon進行廣播;如果使用的是PB-GATT承載層,則發(fā)送可連接的廣播數(shù)據(jù)包。這就向啟動配置設(shè)備(Provisioner)表明未
    的頭像 發(fā)表于 09-28 08:22 ?6381次閱讀
    藍牙m(xù)esh安全的<b class='flag-5'>啟動</b>配置<b class='flag-5'>流程</b><b class='flag-5'>分析</b>

    一文分析Uboot啟動流程

    Uboot是嵌入式系統(tǒng)中最常用的bootloader,這里我們以s3c2410為例分析一下uboot的啟動流程。首先通過uboot的鏈接文件,我們可以看到uboot運行是執(zhí)行的第一段代碼在start.S中。
    的頭像 發(fā)表于 06-20 10:03 ?5269次閱讀

    全志D1芯片啟動流程最底層分析

    關(guān)于d1哪吒開發(fā)板的啟動流程分析 1.本文概述 2.D1上電后啟動的第一個程序 3.啟動SPL 4.啟動
    的頭像 發(fā)表于 06-15 17:44 ?9389次閱讀

    STM32:啟動文件分析

    關(guān)于stm32上電之后的啟動流程,梳理一下思路,如有錯誤,回頭來改。?啟動文件分析、加載程序&啟動程序&異常處理機制
    發(fā)表于 11-30 13:21 ?1次下載
    STM32:<b class='flag-5'>啟動</b>文件<b class='flag-5'>分析</b>

    NVIDIA芯片內(nèi)部啟動流程分析

    首先,芯片啟動是需要驅(qū)動底層硬件驅(qū)動模塊,通常行業(yè)內(nèi)稱之為BootLoader引導(dǎo)啟動方式。該引導(dǎo)流程是引導(dǎo)加載程序執(zhí)行,從而初始化 SoC 和并未后續(xù)加載
    的頭像 發(fā)表于 04-13 10:25 ?3588次閱讀

    STM32的完整啟動流程分析

    STM32的完整啟動流程分析
    的頭像 發(fā)表于 10-25 16:00 ?1825次閱讀
    STM32的完整<b class='flag-5'>啟動</b><b class='flag-5'>流程</b><b class='flag-5'>分析</b>

    芯片失效分析的方法和流程

    ? 本文介紹了芯片失效分析的方法和流程,舉例了典型失效案例流程,總結(jié)了芯片失效分析關(guān)鍵技術(shù)面臨的
    的頭像 發(fā)表于 02-19 09:44 ?1133次閱讀

    【案例2.36】芯片啟動異常的故障分析

    【案例2.36】芯片啟動異常的故障分析在某產(chǎn)品的調(diào)試中發(fā)現(xiàn),板上核心處理芯片在每次啟動后的表現(xiàn)不同,偶爾會出現(xiàn)無法
    的頭像 發(fā)表于 06-26 08:24 ?152次閱讀
    【案例2.36】<b class='flag-5'>芯片</b><b class='flag-5'>啟動</b>異常的故障<b class='flag-5'>分析</b>