資料介紹
在M模式下運行的特定于平臺的固件和在 S 模式或 HS 模式下運行的引導(dǎo)加載程序、管理程序或通用操作系統(tǒng)。
在HS模式下運行的管理程序和在 VS 模式下運行的引導(dǎo)加載程序或通用操作系統(tǒng)。
RISC-V SBI 規(guī)范作為一個獨立項目由 RISC-V 基金會在Github上維護。
OpenSBI 項目的目標是為在 M 模式下執(zhí)行的特定于平臺的固件(上述案例 1)提供 RISC-V SBI 規(guī)范的開源參考實現(xiàn)。RISC-V 平臺和片上系統(tǒng)供應(yīng)商可以輕松擴展 OpenSBI 實現(xiàn),以適應(yīng)特定的硬件配置。
OpenSBI的主要組件以實現(xiàn) SBI 接口的獨立于平臺的靜態(tài)庫libsbi.a的形式提供。固件或引導(dǎo)加載程序?qū)崿F(xiàn)可以鏈接到該庫,以確保符合 SBI 接口規(guī)范。libsbi.a還定義了一個接口,用于與平臺固件實現(xiàn)提供的平臺特定操作集成(例如控制臺訪問功能、處理器間中斷控制等)。
為了說明libsbi.a庫的使用,OpenSBI 還提供了一組特定于平臺的支持示例。對于每個示例,可以編譯特定于平臺的靜態(tài)庫libplatsbi.a 。該庫通過將libsbi.a與必要的平臺相關(guān)硬件操作函數(shù)集成來實現(xiàn) SBI 調(diào)用處理。對于所有支持的平臺,OpenSBI 還提供了幾個使用平臺 libplatsbi.a構(gòu)建的運行時固件示例。這些示例固件可用于替換傳統(tǒng)的 riscv-pk引導(dǎo)加載程序(又名 BBL),并支持使用眾所周知的引導(dǎo)加載程序,例如U-Boot。
支持的SBI版本
目前,OpenSBI 完全支持 SBI 規(guī)范v0.2。OpenSBI 還支持從 OpenSBI v0.7 開始的 Hart 狀態(tài)管理 (HSM) SBI 擴展。HSM 擴展允許 S 模式軟件以定義的順序引導(dǎo)所有 harts,而不是傳統(tǒng)的隨機引導(dǎo) harts 方法。因此,在 S 模式下也可以輕松支持許多必需的功能,例如 CPU 熱插拔、kexec/kdump。OpenSBI 中的 HSM 擴展以非向后兼容的方式實現(xiàn),以減少維護負擔并避免混淆。這就是為什么如果 S-mode 不支持 HSM 擴展,任何使用 OpenSBI 的 S-mode 軟件都無法啟動超過 1 個 hart。
Linux 內(nèi)核從 v5.7-rc1開始已經(jīng)支持 SBI v0.2 和 HSM SBI 擴展。如果您使用的是早于5.7-rc1的 Linux 內(nèi)核或任何其他沒有 HSM SBI 擴展的 S-mode 軟件,您應(yīng)該堅持使用 OpenSBI v0.6 來引導(dǎo)所有 harts。對于 UMP 系統(tǒng),這無關(guān)緊要。
注意 任何 S-mode 引導(dǎo)加載程序(即 U-Boot)都不需要支持 HSM 擴展,因為它不需要引導(dǎo)所有的 harts。操作系統(tǒng)應(yīng)該有足夠的能力使用 HSM 擴展啟動所有其他非啟動 hart。
所需工具鏈
OpenSBI 可以本地編譯或在 x86 主機上交叉編譯。對于交叉編譯,您可以構(gòu)建自己的工具鏈,從Bootlin 工具鏈存儲庫下載預(yù)構(gòu)建的工具鏈或安裝發(fā)行版提供的工具鏈;如果您選擇使用 LLVM/Clang,由于 LLVM 能夠在同一二進制文件中支持多個后端,因此大多數(shù)分發(fā)工具鏈將支持使用與本地 LLVM/Clang 工具鏈相同的工具鏈對 RISC-V 進行交叉編譯,因此通常很容易獲得有效的交叉編譯工具鏈的方法。
基本上,我們更喜歡具有位置無關(guān)可執(zhí)行文件 (PIE) 支持的工具鏈,例如riscv64-linux-gnu-gcc、riscv64-unknown-freebsd-gcc或 Clang/LLVM,因為它們生成的 PIE 固件映像可以在任意地址運行并進行適當對齊。如果使用裸機 GNU 工具鏈(例如 riscv64-unknown-elf-gcc),則會生成靜態(tài)鏈接固件映像。如果使用裸機三元組(例如-target riscv64-unknown-elf),Clang/LLVM仍然可以生成 PIE 圖像。
請注意,目前 Bootlin 工具鏈存儲庫中僅提供 64 位版本的工具鏈。
- Arduino二進制骰子
- 二進制數(shù)開源分享
- 二進制解碼器開源設(shè)計
- 微型二進制時鐘開源分享
- OpenSBI RISC-V開源Supervisor二進制接口
- 【2021-04-05】二進制中的原碼反碼補碼與二進制數(shù)的左移右移
- C-SKY V2 CPU應(yīng)用程序二進制接口標準手冊 11次下載
- 基于FPGA的二進制相移鍵控設(shè)計方案 12次下載
- KEIL C51二進制數(shù)輸入宏的詳細方法程序說明 17次下載
- LabVIEW二進制數(shù)組轉(zhuǎn)換二進制字符串的詳細資料免費下載 16次下載
- C6000系列嵌入式應(yīng)用二進制接口 3次下載
- “非二進制”中的新結(jié)構(gòu) 5次下載
- 二進制邏輯運算詳解 13次下載
- 二進制加法程序【C語言版】 0次下載
- 二進制加法程序【匯編版】 0次下載
- base64字符串轉(zhuǎn)換為二進制文件 1516次閱讀
- 二進制處理中的一些技巧 608次閱讀
- 十進制、十六進制和二進制數(shù)制的區(qū)別 2075次閱讀
- 二進制加法的實現(xiàn)細節(jié) 2855次閱讀
- 二進制編碼器和二-十進制編碼器講解 1.3w次閱讀
- 格雷碼與二進制轉(zhuǎn)換 5355次閱讀
- 數(shù)字二進制計數(shù)器的設(shè)計和實現(xiàn) 1868次閱讀
- 基于FPGA的二進制時鐘設(shè)計方案 2268次閱讀
- 二進制解碼器到底是什么 6270次閱讀
- 如何利用二進制數(shù)實現(xiàn)BCD碼的轉(zhuǎn)換 2.8w次閱讀
- 函數(shù)轉(zhuǎn)換BCD編碼二進制數(shù)為整型數(shù) 6586次閱讀
- 格雷碼與二進制的轉(zhuǎn)換 1.8w次閱讀
- 8421bcd碼轉(zhuǎn)換二進制 7.2w次閱讀
- 二進制數(shù)據(jù)壓縮算法 2w次閱讀
- 解析二進制指數(shù)退避算法的過程 1w次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論