全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

RISC-V Linux运行时OpenSBI配置和编译

时间:2023-10-08 14:24

人气:

作者:admin

标签: 固件  编译 

导读:配置和编译 OpenSBI的配置选项位于不同平台下的 config.mk 文件,例如 platform/generic/config.mk : # Blobs to build FW_TEXT_START=0x80000000FW_DYNAMIC=yFW_JUMP=yFW_PAYLOAD=y ifeq ( $(PLATFORM_RISCV_XLEN) , 32) # This nee...

配置和编译

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启动时建立的页表有关,需要深入分析才知道。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信