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

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

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

OpenSBI固件类型介绍

时间:2023-10-08 14:11

人气:

作者:admin

标签: 寄存器  固件 

导读:...

OpenSBI固件类型

在介绍OpenSBI固件类型前,我们需要知道一点RISC-V Linux的启动过程:

图片

启动流程:ZSBL-->FSBL-->OpenSBI-->u-boot-->Linux

ZSBL和FSBL通常固化在芯片内部,不在本文讨论范围,本文关注OpenSBI。

可以看到,在启动uboot之前,需要先启动OpenSBI,然后再执行uboot/linux。而OpenSBI提供了不同的固件类型来处理不同平台早期启动阶段的差异。

OpenSBI简介

OpenSBI为特定平台提供固件构建,支持不同类型的固件来处理不同平台早期启动阶段之间的差异。所有固件将根据平台特定代码以及OpenSBI通用库代码执行平台硬件的相同初始化过程。支持的固件类型在如何处理平台早期启动阶段传递的参数以及如何处理和执行固件之后的启动阶段方面会有所不同。

上一个引导阶段将通过RISC-V CPU的以下寄存器传递信息:

  • hart id通过a0寄存器传递
  • 通过 a1 寄存器在内存中存储设备树 blob 地址。地址必须与 8 个字节对齐。

OpenSBI 目前支持三种不同类型的固件

  • fw_dynamic固件:带有动态信息的固件
  • fw_jump固件:指定下一引导阶段的跳转地址,不直接包含下一阶段的二进制代码
  • fw_payload固件:包含下一引导阶段有效负载的二进制代码,通常这个有效负载是bootloader或者操作系统镜像
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

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

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

关注微信