OpenSBI固件類型
在介紹OpenSBI固件類型前,我們需要知道一點RISC-V Linux的啟動過程:
啟動流程:ZSBL-->FSBL-->OpenSBI-->u-boot-->Linux
ZSBL和FSBL通常固化在芯片內部,不在本文討論范圍,本文關注OpenSBI。
可以看到,在啟動uboot之前,需要先啟動OpenSBI,然后再執行uboot/linux。而OpenSBI提供了不同的固件類型來處理不同平臺早期啟動階段的差異。
OpenSBI簡介
OpenSBI為特定平臺提供固件構建,支持不同類型的固件來處理不同平臺早期啟動階段之間的差異。所有固件將根據平臺特定代碼以及OpenSBI通用庫代碼執行平臺硬件的相同初始化過程。支持的固件類型在如何處理平臺早期啟動階段傳遞的參數以及如何處理和執行固件之后的啟動階段方面會有所不同。
上一個引導階段將通過RISC-V CPU的以下寄存器傳遞信息:
hart id
通過a0
寄存器傳遞- 通過
a1
寄存器在內存中存儲設備樹 blob 地址。地址必須與 8 個字節對齊。
OpenSBI 目前支持三種不同類型的固件 :
fw_dynamic
固件:帶有動態信息的固件fw_jump
固件:指定下一引導階段的跳轉地址,不直接包含下一階段的二進制代碼fw_payload
固件:包含下一引導階段有效負載的二進制代碼,通常這個有效負載是bootloader或者操作系統鏡像
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
32位基于ARM微控制器STM32F101xx與STM32F103xx 固件函數庫介紹 本手冊介紹了32位基于ARM微控制器STM32F101xx與STM32F103xx的固件函數庫
發表于 07-30 02:37
本文開始闡述了固件的概念,其次介紹了固件的工作原理與固件的技術性能,最后詳細的介紹了編程器固件和
發表于 04-09 09:38
?2.6w次閱讀
編譯 Buildroot 固件
本章介紹 Buildroot 固件的編譯使用。
發表于 11-23 10:58
?5234次閱讀
本文介紹了如何將主機上的固件文件,通過Type-C數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
發表于 11-25 09:52
?6149次閱讀
編譯 Buildroot 固件
本章介紹 Buildroot 固件的編譯使用。
發表于 11-27 08:53
?3377次閱讀
本文介紹了如何將主機上的固件文件,通過 Micro USB OTG 線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
發表于 11-27 09:46
?5529次閱讀
本文介紹了如何將主機上的固件文件
1.通過USB數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
2.生成U盤升級的
發表于 12-04 10:30
?4495次閱讀
編譯 Buildroot 固件
本章介紹 Buildroot 固件的編譯使用。
發表于 12-13 10:39
?2001次閱讀
本文介紹了如何將主機上的固件文件,通過Type-C數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
發表于 12-13 10:46
?2050次閱讀
本文以下內容僅適用于android系統,若需要升級Linux系統,參考Linux 升級固件
本文介紹了如何將主機上的固件文件,通過 USB 雙公頭數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和
發表于 12-26 15:25
?2075次閱讀
opensbi下的riscv64裸機系列編程1(串口輸出) 1.說明 2.opensbi的編譯 3.基本環境的準備 3.1 準備qemu 3.2 準備交叉編譯工具鏈 4.工程完善 5.封裝的sbi
發表于 12-31 10:56
?9387次閱讀
NodeMCU學習筆記(1)— 硬件介紹、固件制作、燒錄提示:作者使用 ESP8266 進行開發學習。文章目錄NodeMCU學習筆記(1)--- 硬件介紹、固件制作、燒錄前言一、硬件
發表于 11-01 16:25
?18次下載
opensbi.zip
發表于 04-25 10:25
?1次下載
本文將直觀地介紹一些不同類型的螺絲和螺栓,重點關注不同的螺絲頭、起子類型和軸承面。“軸承面”,也稱螺絲頭下側,是緊固件頭與器件接觸的地方。為提高抗張強度;有些螺栓、螺絲在頭部下方設置了
發表于 05-21 15:57
?3076次閱讀
FW_DYNAMIC固件 FW_DYNAMIC固件在運行時從上一個啟動階段獲取有關下一個啟動階段的信息,例如引導加載程序或操作系統內核。 上一個啟動階段(即LOADER)通過 a2 寄存器將
發表于 10-08 14:15
?537次閱讀
評論