<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RISC-V Linux運行時OpenSBI配置和編譯

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 14:24 ? 次閱讀

配置和編譯

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=y
  • FW_JUMP=y
  • FW_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_ADDRFW_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次閱讀
    如何檢查<b class='flag-5'>Linux</b>服務器的<b class='flag-5'>運行時</b>間

    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 運行時的一些重要變化。
    的頭像 發表于 11-30 16:21 ?558次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>