吴忠躺衫网络科技有限公司

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

    文章

    1382

    瀏覽量

    40425
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210399
  • 固件
    +關注

    關注

    10

    文章

    561

    瀏覽量

    23164
  • RISC
    +關注

    關注

    6

    文章

    465

    瀏覽量

    83873
  • 編譯
    +關注

    關注

    0

    文章

    661

    瀏覽量

    33041
收藏 人收藏

    評論

    相關推薦

    如何檢查Linux服務器的運行時

    Linux 中的 uptime 用于查看系統啟動后的運行時間。它是一個比較簡單的 Linux 命令,可以不帶參數直接運行
    發表于 11-25 15:25 ?1.5w次閱讀
    如何檢查<b class='flag-5'>Linux</b>服務器的<b class='flag-5'>運行時</b>間

    vs code下面如何安裝配置risc-v交叉編譯工具?

    如題,如何配置vscdoe下面的RISC-V的交叉編譯工具?
    發表于 07-25 11:48

    【「RISC-V體系結構編程與實踐」閱讀體驗】-- SBI及NEMU環境

    運行在S模式下的操作系統提供引導和統一的接口服務。 本書的實驗并沒有采用業界流行的OpenSBI固件,而是從零開始編寫一個小型可用的SBI固件,以便從底層深入學習RISC-V體系結構。 系統上電后
    發表于 11-26 09:37

    RISC-V能否復制Linux 的成功?》

    的產品,Linux成為開源軟件發展的基石。 這種成功是否可以復制到開源硬件上呢?RISC-V這樣的指令集架構(ISA)是否也可以像Linux內核作為開源軟件的基礎一樣,成為開源硬件發展的基石呢? 這個
    發表于 11-26 20:20

    基于risc-v架構的芯片與linux系統兼容性討論

    和應用程序無法在不同架構之間直接互換。在RISC-V架構上運行Linux系統時,需要確保有適用于RISC-V架構的編譯工具鏈和二進制格式。
    發表于 11-30 17:20

    開發者為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 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 目前,方舟編譯器可以在
    的頭像 發表于 11-21 10:55 ?1801次閱讀

    關于risc-v啟動部分的思考

    順序 3.什么是SBI? 4.什么是opensbi 5.openSBI call接口的實現 6.總結 1.本文說明 risc-v的架構有著非常鮮明的特點,如果看過arm,aarch64,mips等架構
    的頭像 發表于 12-28 10:25 ?5657次閱讀
    關于<b class='flag-5'>risc-v</b>啟動部分的思考

    RISC-V嵌入式開發準備篇1:編譯過程簡介

    本文的目的是對編譯過程進行簡單的科普與回顧,為后續詳細介紹“RISC-V GCC工具鏈”和“RISC-V匯編語言程序設計”打下基礎。
    發表于 11-02 19:06 ?40次下載
    <b class='flag-5'>RISC-V</b>嵌入式開發準備篇1:<b class='flag-5'>編譯</b>過程簡介

    RISC-V MCU開發 (四):編譯配置

    RISC-V MCU開發 (四):編譯配置在嵌入式開發中,當我們完成了工程創建、代碼編輯等操作之后,就可以開始進行工程編譯。 對于使用內置工程模板創建或外部導入的項目,MounRive
    發表于 12-07 19:21 ?3次下載
    <b class='flag-5'>RISC-V</b> MCU開發 (四):<b class='flag-5'>編譯</b><b class='flag-5'>配置</b>

    Arch Linux RISC-V 端口及相關作品簡介

    Arch Linux RISC-V 端口及相關作品簡介 演講ppt分享
    發表于 07-17 16:34 ?6次下載

    ch32v307記錄程序運行時

    ch32v307記錄程序運行時間 在程序開發中,很重要的一項任務就是對程序的運行時間進行評估。對于大型的程序系統來說,它們通常需要處理大量的數據或進行復雜的計算操作。因此,如果程序的運行時
    的頭像 發表于 08-22 15:53 ?957次閱讀

    OpenSBI固件類型介紹

    OpenSBI固件類型 在介紹OpenSBI固件類型前,我們需要知道一點RISC-V Linux的啟動過程: 啟動流程:ZSBL-->FSBL-->
    的頭像 發表于 10-08 14:11 ?777次閱讀
    <b class='flag-5'>OpenSBI</b>固件類型介紹
    金赞百家乐官网娱乐城| 百家乐官网星级游戏| 博狗玩百家乐官网好吗| 百家乐官网注码方法| 百家乐官网解析| 百家乐免费试玩游戏| 希尔顿百家乐娱乐城 | 玩百家乐去哪个平台好| 百利宫百家乐的玩法技巧和规则| 桐庐棋牌世界| 任你博百家乐官网现金网| 百家乐官网手机壳| 自贡百家乐赌场| 娱乐城豪享博主推| 澳门百家乐官网海星王娱乐城| 百家乐如何视频| 大发888娱乐城健账号| 蒙山县| 网上百家乐官网必赢玩| 百家乐讲谈| 网上真钱棋牌游戏| 棋牌室装修效果图| 澳门百家乐官网真人娱乐城| 金冠百家乐娱乐城| 大发888| 百家乐官网必知技巧| 百家乐庄闲对冲| 杭州太阳城假日酒店| 大佬百家乐官网现金网| 百家乐正网包杀| 大发888为什么这么卡| 百家乐官网筹码方| 如何玩百家乐赢钱技巧| 龙岩市| 百家乐tt娱乐城| 娱乐城注册送18元| 电子百家乐官网技巧| 百家乐麻将牌| 百家乐官网投注方向| 百家乐的桌布| 百家乐官网视频大厅|