配置和编译
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
=yFW_JUMP
=yFW_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_ADDR
和FW_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次阅读
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 目前,方舟编译器可以在
关于risc-v启动部分的思考
顺序 3.什么是SBI? 4.什么是opensbi 5.openSBI call接口的实现 6.总结 1.本文说明 risc-v的架构有着非常鲜明的特点,如果看过arm,aarch64,mips等架构
RISC-V嵌入式开发准备篇1:编译过程简介
本文的目的是对编译过程进行简单的科普与回顾,为后续详细介绍“RISC-V GCC工具链”和“RISC-V汇编语言程序设计”打下基础。
发表于 11-02 19:06
•38次下载
RISC-V MCU开发 (四):编译配置
RISC-V MCU开发 (四):编译配置在嵌入式开发中,当我们完成了工程创建、代码编辑等操作之后,就可以开始进行工程编译。 对于使用内置工程模板创建或外部导入的项目,MounRive
发表于 12-07 19:21
•3次下载
ch32v307记录程序运行时间
ch32v307记录程序运行时间 在程序开发中,很重要的一项任务就是对程序的运行时间进行评估。对于大型的程序系统来说,它们通常需要处理大量的数据或进行复杂的计算操作。因此,如果程序的运行时
评论