OpenSBI固件類型
在介紹OpenSBI固件類型前,我們需要知道一點(diǎn)RISC-V Linux的啟動過程:
啟動流程:ZSBL-->FSBL-->OpenSBI-->u-boot-->Linux
ZSBL和FSBL通常固化在芯片內(nèi)部,不在本文討論范圍,本文關(guān)注OpenSBI。
可以看到,在啟動uboot之前,需要先啟動OpenSBI,然后再執(zhí)行uboot/linux。而OpenSBI提供了不同的固件類型來處理不同平臺早期啟動階段的差異。
OpenSBI簡介
OpenSBI為特定平臺提供固件構(gòu)建,支持不同類型的固件來處理不同平臺早期啟動階段之間的差異。所有固件將根據(jù)平臺特定代碼以及OpenSBI通用庫代碼執(zhí)行平臺硬件的相同初始化過程。支持的固件類型在如何處理平臺早期啟動階段傳遞的參數(shù)以及如何處理和執(zhí)行固件之后的啟動階段方面會有所不同。
上一個引導(dǎo)階段將通過RISC-V CPU的以下寄存器傳遞信息:
hart id
通過a0
寄存器傳遞- 通過
a1
寄存器在內(nèi)存中存儲設(shè)備樹 blob 地址。地址必須與 8 個字節(jié)對齊。
OpenSBI 目前支持三種不同類型的固件 :
fw_dynamic
固件:帶有動態(tài)信息的固件fw_jump
固件:指定下一引導(dǎo)階段的跳轉(zhuǎn)地址,不直接包含下一階段的二進(jìn)制代碼fw_payload
固件:包含下一引導(dǎo)階段有效負(fù)載的二進(jìn)制代碼,通常這個有效負(fù)載是bootloader或者操作系統(tǒng)鏡像
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124316 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1416瀏覽量
41376 -
Linux
+關(guān)注
關(guān)注
87文章
11508瀏覽量
213615 -
固件
+關(guān)注
關(guān)注
10文章
566瀏覽量
23874 -
RISC
+關(guān)注
關(guān)注
6文章
481瀏覽量
84938
發(fā)布評論請先 登錄
編程器固件和路由器固件什么不同
Firefly-RK3288Android 升級固件介紹

fireflyFace-RK3399主板升級固件介紹
fireflyAIO-3399C主板編譯Buildroot固件介紹
fireflyAIO-3399C主板升級固件介紹
fireflyAIO-3288J-Android 升級固件介紹

opensbi下的riscv64裸機(jī)系列編程1(串口輸出)
NodeMCU學(xué)習(xí)筆記(1)--- 硬件介紹、固件制作、燒錄

螺紋緊固件中螺絲和螺栓的類型
OpenSBI支持哪些固件
基于OpenSBI的linux nommu實(shí)現(xiàn)

評論