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

    文章

    1367

    浏览量

    40252
  • Linux
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • 固件
    +关注

    关注

    10

    文章

    551

    浏览量

    22988
  • RISC
    +关注

    关注

    6

    文章

    461

    浏览量

    83665
  • 编译
    +关注

    关注

    0

    文章

    654

    浏览量

    32824
收藏 人收藏

    评论

    相关推荐

    如何检查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 1738次阅读

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

    顺序 3.什么是SBI? 4.什么是opensbi 5.openSBI call接口的实现 6.总结 1.本文说明 risc-v的架构有着非常鲜明的特点,如果看过arm,aarch64,mips等架构
    的头像 发表于 12-28 10:25 5497次阅读
    关于<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 868次阅读

    OpenSBI固件类型介绍

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