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

    文章

    1357

    浏览量

    40177
  • Linux
    +关注

    关注

    87

    文章

    11191

    浏览量

    208623
  • 固件
    +关注

    关注

    9

    文章

    549

    浏览量

    22883
  • RISC
    +关注

    关注

    6

    文章

    461

    浏览量

    83627
  • 编译
    +关注

    关注

    0

    文章

    647

    浏览量

    32758
收藏 人收藏

    评论

    相关推荐

    如何检查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的缺的是什么?

    通过软件模拟或复杂的指令序列来实现一些高级功能,这可能会增加执行时间和功耗。 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 目前,方舟编译器可以在
    的头像 发表于 11-21 10:55 1715次阅读

    关于risc-v启动部分的思考

    顺序 3.什么是SBI? 4.什么是opensbi 5.openSBI call接口的实现 6.总结 1.本文说明 risc-v的架构有着非常鲜明的特点,如果看过arm,aarch64,mips等架构
    的头像 发表于 12-28 10:25 5420次阅读
    关于<b class='flag-5'>risc-v</b>启动部分的思考

    RISC-V嵌入式开发准备篇1:编译过程简介

    本文的目的是对编译过程进行简单的科普与回顾,为后续详细介绍“RISC-V GCC工具链”和“RISC-V汇编语言程序设计”打下基础。
    发表于 11-02 19:06 38次下载
    <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 827次阅读

    OpenSBI固件类型介绍

    OpenSBI固件类型 在介绍OpenSBI固件类型前,我们需要知道一点RISC-V Linux的启动过程: 启动流程:ZSBL-->FSBL-->
    的头像 发表于 10-08 14:11 633次阅读
    <b class='flag-5'>OpenSBI</b>固件类型介绍