繼《最全教程來啦!在RISC-V星光板上創建Debian系統鏡像》之后,這一期來聊聊RISC-V星光板的啟動流程。
如何更直觀理解VisionFive的啟動流程呢?小編用一張圖摹擬整個過程。

通電開機加載BootROM后,有兩種方法去啟動Bootloader(在嵌入式系統中,通常沒有像BIOS那樣的固件程序,因此整個系統的加載啟動任務完全由Bootloader來完成)。
第一種是通過UART,即通過簡單輸入一條命令,加載一個固定大小的二進制文件到芯片的內存中并執行它,這種模式主要用于固件更新;
第二種是通過QSPI(Quad SPI),即BootROM將32k大小的Bootloader從QSPI讀取到SRAM區并開始執行。不難看出,QSPI更為方便,官方也推薦這個方式。
通過QSPI模式,BootROM把32k的bootloader從QSPI讀取到主芯片內部的SRAM區并啟動。大家可以看到上圖淺藍色區域,這個區域的文件都是在開發板出廠時,刷寫好到QSPI閃存芯片里的內容,包括了secondboot,ddrinit,OpenSBI和U-Boot。
secondboot是一個只有9KB左右的bin文件,它去讀取閃存中ddrinit,跳轉過去后初始化內存并引導閃存上的fw_payload.bin.out文件,而這個fw_payload.bin.out包含了 OpenSBI和Uboot的頭和文件信息,于是直接跳轉到OpenSBI了。
什么是OpenSBI呢?
OpenSBI的全稱是Open SupervisorBinary Interface ,即“開放的操作系統二進制接口”,大家可以將OpenSBI 理解成固件。其特點有二,第一,以 M 模式和啟動器來定義的平臺固件,可以作為一個管理程序或者是通用操作系統執行,并且進入S或者HS模式;第二,以HS模式和啟動器的管理程序,或者一個通用的操作系統,可以執行并進入VS模式。
M模式即Machine-Mode,可以理解為固件特權級;S模式即Supervisor-Mode,可以理解為操作系統內核特權級。在啟動流程中,OpenSBI作用就是讓開發板從M運行模式引導操作系統內核,讓操作系統內核運行進入 S 模式。
其他模式就不過多解釋啦,感興趣的朋友可自行搜索。

最后,從OpenSBI到U-Boot 的過程可以拆分來看,OpenSBI為Linux提供基本的系統響應,系統從M模式轉換為S模式,跳轉并啟動位于內存對應位置的U-Boot。而隨著U-Boot啟動,Linux系統也開始啟動了。
-
RISC
+關注
關注
6文章
485瀏覽量
86437
發布評論請先 登錄
探索RISC-V在機器人領域的潛力
為什么RISC-V是嵌入式應用的最佳選擇
RISC-V B擴展介紹及實現
大灣區RISC-V生態全景展示:RISC-V生態發展論壇、開發者Workshop和生態應用專區
躍昉科技亮相2025 RISC-V軟件生態研討會
普華基礎軟件亮相2025 RISC-V中國峰會
RISC-V 手冊
2025新思科技RISC-V科技日活動圓滿結束
RISC-V 發展態勢與紅帽系統適配進展
RISC-V International CEO:RISC-V 應用全面開花,2031 年滲透率將達 25.7%
RISC-V和ARM有何區別?
RISC-V賽道的“硬核”突圍之路
FPGA與RISC-V淺談
芯來科技亮相RISC-V Day Tokyo 2025
2025中國RISC-V生態大會-運營商分論壇成功舉辦
一圖看懂RISC-V星光板的啟動流程
評論