配置和編譯
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文章
1312瀏覽量
39893 -
Linux
+關注
關注
87文章
11007瀏覽量
206896 -
固件
+關注
關注
9文章
519瀏覽量
22403 -
RISC
+關注
關注
6文章
432瀏覽量
83343 -
編譯
+關注
關注
0文章
622瀏覽量
32437
發布評論請先 登錄
相關推薦
如何檢查Linux服務器的運行時間
Linux 中的 uptime 用于查看系統啟動后的運行時間。它是一個比較簡單的 Linux 命令,可以不帶參數直接運行。
發表于 11-25 15:25
?1.5w次閱讀
RISC-V 基礎學習:RISC-V 基礎介紹
10
機器特權級
3
M
11
一個RISC-V 硬件線程(hart),相當于一個CPU 內獨立的可執行核心,在任意時刻,只能運行在某一個特權級上,這個特權級由CSR(控制和狀態寄存器)指定配置
發表于 03-12 10:25
科普RISC-V生態架構(認識RISC-V)
:RISC-V 64位處理器 + Linux + MySQL + Docker + OPENJDK。面臨的問題無論是Linux還是其它開源社區,還處于相向適配階段,安全穩定運行還有待驗
發表于 08-02 11:50
開發者為Linux添加了一系列RISC-V UEFI支持補丁
10 重命名了 arm-init,以便可以在不同的代碼中使用該基礎;補丁 11 則為 RISC-V 添加了運行時服務??偨Y起來,這一系列補丁的主要貢獻在于:添加了完整的 ioremap 支持。添加
發表于 08-13 15:19
RISC-V 生態架構淺析
(Western Digital)將以每年10億到20億顆的預期來推動RISC-V,逐步完成全線產品遷移到RISC-V定制架構;MicroSemi提供基于Risc-V+Linux+CNN加速器的AI
發表于 06-18 19:59
安卓支持RISC-V架構的技術剖析
://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b llvm-toolchainrepo sync該工程中需要為RISC-V添加工具前綴、架構配置、運行時庫
發表于 09-01 15:45
對RISC-V編譯過程進行簡單的科普與回顧
本文的目的是對編譯過程進行簡單的科普與回顧,為后續詳細介紹“RISC-V GCC工具鏈”和“RISC-V匯編語言程序設計”打下基礎。
發表于 11-05 08:55
搭載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 CPU算豐SG2042,助力RISC-V邁向高性能計算
開發者套件(DevKit),可以為開發者提供本地化的RISC-V開發環境,DevKit體積小巧,配置也十分亮眼:1個SG2042 CPU1個開發板250W ATX電源英特爾AX210 WiFi 6E
發表于 03-03 16:45
risc-v是什么意思
基于“精簡指令集(RISC)”原則的開源指令集架構?! ≈噶罴捍鎯υ贑PU內部,引導CPU進行運算,并幫助CPU更高效運行,介于軟件和底層硬件之間的一套程序指令合集?! ?b class='flag-5'>RISC-V的歷史
發表于 03-30 16:40
FreeRTOS與RISC-V——適用于RISC-V的FreeRTOS概述
功能。1.2 FreeRTOS RISC-V接口的特征FreeRTOS RISC-V接口具有以下特征:l提供了對GCC和IAR編譯器的支持;l僅支持運行32位和64位
發表于 04-09 09:26
RISC-V GNU Toolchain 編譯安裝
RISC-V GNU Toolchain 源碼獲取$git clone https://github.com/riscv/riscv-gnu-toolchain.git&
發表于 04-16 00:22
Android N混合使用AOT編譯,解釋和JIT三種運行時
Android N引入了一種包含編譯、解釋和JIT(Just In Time)的混合運行時,以便在安裝時間、內存占用、電池消耗和性能之間獲得最好的折衷。
發表于 04-24 15:37
?1575次閱讀
Go運行時:4年之后
自 2018 年以來,Go GC,以及更廣泛的 Go 運行時,一直在穩步改進。近日,Go 社區總結了 4 年來 Go 運行時的一些重要變化。
評論