配置和編譯
OpenSBI的配置選項位于不同平臺下的config.mk
文件,例如platform/generic/config.mk
:
# Blobs to build
FW_TEXT_START=0x80000000
FW_DYNAMIC=y
FW_JUMP=y
FW_PAYLOAD=y
ifeq ($(PLATFORM_RISCV_XLEN), 32)
# This needs to be 4MB aligned for 32-bit system
FW_JUMP_ADDR=$(shell printf "0x%X" $$(($(FW_TEXT_START) + 0x400000)))
else
# This needs to be 2MB aligned for 64-bit system
FW_JUMP_ADDR=$(shell printf "0x%X" $$(($(FW_TEXT_START) + 0x200000)))
endif
FW_JUMP_FDT_ADDR=$(shell printf "0x%X" $$(($(FW_TEXT_START) + 0x2200000)))
ifeq ($(PLATFORM_RISCV_XLEN), 32)
# This needs to be 4MB aligned for 32-bit system
FW_PAYLOAD_OFFSET=0x400000
else
# This needs to be 2MB aligned for 64-bit system
FW_PAYLOAD_OFFSET=0x200000
endif
FW_PAYLOAD_FDT_ADDR=$(FW_JUMP_FDT_ADDR)
選擇編譯需要的固件類型:
三種固件,根據自己的需求,在對應的固件類型配置為y:
FW_DYNAMIC
=yFW_JUMP
=yFW_PAYLOAD
=y
默認三種固件類型都編譯。
FW_TEXT_START
OpenSBI的運行地址,需要把OpenSBI下載到FW_TEXT_START指定的地址才能運行
FW_JUMP_ADDR
FW_JUMP固件的跳轉地址,對于RV32需要4M對齊,對于RV64需要2M對齊
FW_PAYLOAD_OFFSET
FW_PAYLOAD固件的偏移地址,對于RV32需要4對齊,對于RV64需要2M對齊
FW_JUMP_FDT_ADDR
和FW_PAYLOAD_FDT_ADDR
設備樹的地址
這里可能有個疑問:為什么跳轉地址/偏移地址需要2M對齊或4M對齊?這個跟RISC-V Linux啟動時建立的頁表有關,需要深入分析才知道。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內核
+關注
關注
3文章
1363瀏覽量
40228 -
Linux
+關注
關注
87文章
11229瀏覽量
208927 -
固件
+關注
關注
10文章
550瀏覽量
22971 -
RISC
+關注
關注
6文章
461瀏覽量
83654 -
編譯
+關注
關注
0文章
654瀏覽量
32808
發布評論請先 登錄
相關推薦
如何檢查Linux服務器的運行時間
Linux 中的 uptime 用于查看系統啟動后的運行時間。它是一個比較簡單的 Linux 命令,可以不帶參數直接運行。
發表于 11-25 15:25
?1.5w次閱讀
rIsc-v的缺的是什么?
通過軟件模擬或復雜的指令序列來實現一些高級功能,這可能會增加執行時間和功耗。
2. 生態系統支持不足
軟件和工具鏈的可用性:盡管RISC-V社區在快速發展,但與成熟的ARM等架構相比,其生
發表于 07-29 17:18
開發者為Linux添加了一系列RISC-V UEFI支持補丁
10 重命名了 arm-init,以便可以在不同的代碼中使用該基礎;補丁 11 則為 RISC-V 添加了運行時服務。總結起來,這一系列補丁的主要貢獻在于:添加了完整的 ioremap 支持。添加
發表于 08-13 15:19
安卓支持RISC-V架構的技術剖析
://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b llvm-toolchainrepo sync該工程中需要為RISC-V添加工具前綴、架構配置、運行時庫
發表于 09-01 15:45
搭載RISC-V芯片的手機,或將于明年正式推出
開發板來測試RTOS、Linux發行版、編譯器等項目。作為RISC-V的重要推動者之一,去年SiFive從英特爾、高通等投資者中籌集了超過6000萬美元,前高通技術公司高管Patrick Little
發表于 12-17 08:00
?GPU,RISC-V的長痛
色與ARM的計算能力表現,但在圖形處理上還是沒能匹敵ARM多年來的積累。但境況似乎正在慢慢好轉,近年來RISC-V的GPU生態也已經開始發力了。
已有GPU生態的支持去年1月,賽昉科技發布了可運行
發表于 03-24 15:53
RISC-V GNU Toolchain 編譯安裝
RISC-V GNU Toolchain 源碼獲取$git clone https://github.com/riscv/riscv-gnu-toolchain.git&
發表于 04-16 00:22
方舟編譯器官發布對 RISC-V 后端的支持
昨日,方舟編譯器官方新發布了對 RISC-V 后端的支持。 地址:https://gitee.com/openarkcompiler-incubator/mapleall 目前,方舟編譯器可以在
關于risc-v啟動部分的思考
順序 3.什么是SBI? 4.什么是opensbi 5.openSBI call接口的實現 6.總結 1.本文說明 risc-v的架構有著非常鮮明的特點,如果看過arm,aarch64,mips等架構
RISC-V嵌入式開發準備篇1:編譯過程簡介
本文的目的是對編譯過程進行簡單的科普與回顧,為后續詳細介紹“RISC-V GCC工具鏈”和“RISC-V匯編語言程序設計”打下基礎。
發表于 11-02 19:06
?38次下載
RISC-V MCU開發 (四):編譯配置
RISC-V MCU開發 (四):編譯配置在嵌入式開發中,當我們完成了工程創建、代碼編輯等操作之后,就可以開始進行工程編譯。 對于使用內置工程模板創建或外部導入的項目,MounRive
發表于 12-07 19:21
?3次下載
ch32v307記錄程序運行時間
ch32v307記錄程序運行時間 在程序開發中,很重要的一項任務就是對程序的運行時間進行評估。對于大型的程序系統來說,它們通常需要處理大量的數據或進行復雜的計算操作。因此,如果程序的運行時
評論