配置和編譯
OpenSBI的配置選項(xiàng)位于不同平臺(tái)下的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)
選擇編譯需要的固件類型:
三種固件,根據(jù)自己的需求,在對(duì)應(yīng)的固件類型配置為y:
FW_DYNAMIC
=yFW_JUMP
=yFW_PAYLOAD
=y
默認(rèn)三種固件類型都編譯。
FW_TEXT_START
OpenSBI的運(yùn)行地址,需要把OpenSBI下載到FW_TEXT_START指定的地址才能運(yùn)行
FW_JUMP_ADDR
FW_JUMP固件的跳轉(zhuǎn)地址,對(duì)于RV32需要4M對(duì)齊,對(duì)于RV64需要2M對(duì)齊
FW_PAYLOAD_OFFSET
FW_PAYLOAD固件的偏移地址,對(duì)于RV32需要4對(duì)齊,對(duì)于RV64需要2M對(duì)齊
FW_JUMP_FDT_ADDR
和FW_PAYLOAD_FDT_ADDR
設(shè)備樹的地址
這里可能有個(gè)疑問:為什么跳轉(zhuǎn)地址/偏移地址需要2M對(duì)齊或4M對(duì)齊?這個(gè)跟RISC-V Linux啟動(dòng)時(shí)建立的頁表有關(guān),需要深入分析才知道。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1384瀏覽量
40442 -
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210512 -
固件
+關(guān)注
關(guān)注
10文章
561瀏覽量
23185 -
RISC
+關(guān)注
關(guān)注
6文章
468瀏覽量
83909 -
編譯
+關(guān)注
關(guān)注
0文章
662瀏覽量
33072
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何檢查Linux服務(wù)器的運(yùn)行時(shí)間
![如何檢查<b class='flag-5'>Linux</b>服務(wù)器的<b class='flag-5'>運(yùn)行時(shí)</b>間](https://file.elecfans.com/web2/M00/7D/AF/poYBAGOAbC2AFa3XAABWLqOp3eI136.png)
【「RISC-V體系結(jié)構(gòu)編程與實(shí)踐」閱讀體驗(yàn)】-- SBI及NEMU環(huán)境
《RISC-V能否復(fù)制Linux 的成功?》
基于risc-v架構(gòu)的芯片與linux系統(tǒng)兼容性討論
開發(fā)者為Linux添加了一系列RISC-V UEFI支持補(bǔ)丁
安卓支持RISC-V架構(gòu)的技術(shù)剖析
RISC-V GNU Toolchain 編譯安裝
方舟編譯器官發(fā)布對(duì) RISC-V 后端的支持
關(guān)于risc-v啟動(dòng)部分的思考
![關(guān)于<b class='flag-5'>risc-v</b>啟動(dòng)部分的思考](https://file.elecfans.com/web1/M00/D7/61/o4YBAF_pQnWAQZCbAAFtXIN7kUE666.png)
RISC-V嵌入式開發(fā)準(zhǔn)備篇1:編譯過程簡(jiǎn)介
![<b class='flag-5'>RISC-V</b>嵌入式開發(fā)準(zhǔn)備篇1:<b class='flag-5'>編譯</b>過程簡(jiǎn)介](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RISC-V MCU開發(fā) (四):編譯配置
![<b class='flag-5'>RISC-V</b> MCU開發(fā) (四):<b class='flag-5'>編譯</b><b class='flag-5'>配置</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Arch Linux RISC-V 端口及相關(guān)作品簡(jiǎn)介
ch32v307記錄程序運(yùn)行時(shí)間
OpenSBI固件類型介紹
![<b class='flag-5'>OpenSBI</b>固件類型介紹](https://file1.elecfans.com/web2/M00/A7/30/wKgaomUiRxqAGDPPAAD7k7-U9EY385.jpg)
評(píng)論