软件简介

RISC-V Supervisor二进制接口(SBI)是以下之间的推荐接口:

  • 在M模式下运行的特定于平台的固件,以S模式或HS模式执行的引导加载程序,管理程序或通用OS。
  • 在HS模式下运行的管理程序,以及在VS模式下执行的引导加载程序或通用OS。

OpenSBI项目的目标是为在M模式下执行的平台特定固件(上面提到的情况1)提供RISC-V SBI规范的开源参考实现。 RISC-V平台和片上系统供应商可以轻松扩展OpenSBI实现,以适应特定的硬件配置。

OpenSBI的主要组件以独立于平台的静态库libsbi.a的形式提供,实现了SBI接口。固件或引导加载程序实现可以链接到此库,以确保符合SBI接口规范。 libsbi.a还定义了用于与平台固件实现提供的平台特定操作集成的接口(例如,控制台访问功能,处理器间中断控制等)。

为了说明libsbi.a库的使用,OpenSBI还提供了一组特定于平台的支持示例。对于每个示例,都可以编译特定于平台的静态库libplatsbi.a。该库通过将libsbi.a与必要的平台相关硬件操作函数集成来实现SBI调用处理。对于所有支持的平台,OpenSBI还提供了使用平台libplatsbi.a构建的多个运行时固件示例。这些示例固件可用于替换传统的riscv-pk引导加载程序(也称为BBL),并允许使用众所周知的引导加载程序,如U-Boot(https://git.denx.de/u-boot.git)。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表于硬件 & IoT专区
2020/12/05 23:41

RISC-V64 opensbi启动过程

RISC-V64 opensbi启动过程 1.说明 2.环境准备 2.1 交叉编译工具链 2.2 源代码准备 3.riscv架构 gdb调试方法 4.opensbi底层初始化流程 4.1 从qemu的加载执行开始 4.2 opensbi底层初始化 4.2 opensbi设备初始化 4.3 二级boot的跳转 5.小结 1.说明 最近有一些riscv的项目做,虽然以前也用过例如k210之类的riscv架构的芯片,但是都止于能够做一些应用,并未特别关注其芯片的体系架构方面的东西,但是随着接触的芯片架构的种类的逐渐...

0
0
发表于物联网专区
01/04 18:50

opensbi下的riscv64裸机编程2(中断与异常)

opensbi下的riscv64裸机编程2(中断与异常) 1.本文说明 2.riscv特权模式下的异常 2.1 CSPs 2.2 异常开关的寄存器 2.3 与中断相关的指令 3.中断测试 3.1 设置中断向量表 3.2 开启中断设置 3.3 初始化timer 3.4 开启中断 3.5 中断处理 4.测试及校验 5.总结 1.本文说明 任何时候,中断和异常的产生都是十分值得关注的,这些将破坏程序原有的执行逻辑。按照芯片的设计来说,中断和异常大致上可以分为三类异常(Exception)、陷入(Trap...

0
0
发表于硬件 & IoT专区
2020/12/30 19:10

opensbi下的riscv64裸机系列编程1(串口输出)

opensbi下的riscv64裸机系列编程1(串口输出) 1.说明 2.opensbi的编译 3.基本环境的准备 3.1 准备qemu 3.2 准备交叉编译工具链 4.工程完善 5.封装的sbi接口 6.程序运行 7.printf函数的实现 8.小结 1.说明 前面的文章中已经提到了opensbi的作用不仅仅是一个引导作用,还提供了M模式转换到S模式的实现,同时在S-Mode下的内核可以通过这一层访问一些M-Mode的服务。 本文会从最小系统角度出发,利用opensbi的M-Mode的服务在控制台上输...

0
0
发表于物联网专区
2020/12/13 16:31

riscv64架构上运行rt-thread

riscv64架构上运行rt-thread 1.本文目的 2.环境搭建 2.1 qemu编译riscv版本 2.2 交叉编译工具链下载 2.3 编译opensbi 2.4 编译rt-thread 3.程序运行 4.总结 1.本文目的 本文主要描述如何在riscv64 的qemu上运行rt-thread。该项目大部分工作借鉴中科院的点亮计划的项目,为这些不断贡献开源的同学点赞。项目地址如下: https://isrc.iscas.ac.cn/gitlab/summer2020/students/proj-2023112 该项目已经完成riscv64适配rt-thread的工...

0
0
发表于物联网专区
2020/12/19 22:10

关于risc-v启动部分思考

关于risc-v启动部分思考 1.本文说明 1.1 risc-v的诞生的时代背景 1.2 发展现状 2.risc-v 的芯片boot过程 2.1 risc-v的启动模式 2.2 risc-v的启动顺序 3.什么是SBI? 4.什么是opensbi 5.openSBI call接口的实现 6.总结 1.本文说明 risc-v的架构有着非常鲜明的特点,如果看过arm,aarch64,mips等架构的一些架构手册的基础知识,再看risc-v的芯片的架构设计,就会觉得非常有意思,可以找到一些影子,但是又比这些架构设计简洁的多...

0
0
发表了博客
2020/12/23 13:00

关于RISC-V启动部分的思考~

1.本文说明 RISC-V的架构有着非常鲜明的特点,如果看过arm,aarch64,mips等架构的一些架构手册的基础知识,再看RISC-V的芯片的架构设计,就会觉得非常有意思,可以找到一些影子,但是又比这些架构设计简洁的多。当我看完aarch64的芯片手册,再看RISC-V的boot时,设计思想竟然可以做一些对比,同样去看RISC-V和mips的寄存器,也可看到高度的一致性。对于x86的架构我未曾深入了解,但是在risc-v上应该也可以找到一些设计元素。总...

0
0
发表于物联网专区
2020/12/04 23:56

riscv64 qemu上进行Linux环境搭建与开发记录

riscv64 qemu上进行Linux环境搭建与开发记录 1.本文说明 2.riscv64 qemu的编译 3.riscv64 交叉编译工具链准备 4.编译uboot 5.编译opensbi 6.编译linux 7.buildroot与rootfs 8.小结 1.本文说明 最近在学习riscv64架构的一些知识,并且利用做一些项目的机会去了解更多的不同种类的的芯片的架构设计。学习riscv的好处在于其架构是开源的,也就是任何人只要有兴趣和时间都可以利用开源的代码在fpga设计出一款自己的CPU出来,我觉得这...

0
0
发表于openEuler专区
02/05 22:02

手把手教你搭建基于 RISC-V 的 openEuler 系统,部署 runc 并运行容器

RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。openEuler 在 RISC-V 上进行了一些探索: 以下相关信息来自于 https://gitee.com/openeuler/RISC-V 2020 年 6 月,openEuler 发布了第一版支持 RISC-V 的文件系统 rootfs 和 kernel 镜像。 2020 年 8 月,在 OBS 构建系统开始构建 openEuler RISC-V 软件包。 2020 年 9 月,在华为全联接(HC)2020 大会上发布了 openEuler RISC-V,国内首发 RISC-V 版 Linux。...

0
0
发表于物联网专区
01/19 19:30

riscv32 qemu rt-thread的最小移植实现(1)

riscv32 qemu rt-thread的最小移植实现(1) 1.说明 2.工具准备 2.1 安装riscv32交叉编译工具链 2.2 安装qemu 2.3 获取rt-thread的代码 3.移植整体思路规划 4.riscv32工程模板的构建 5.代码正常的跳转 6.栈帧布局设计 7.本文小结 1.说明 本文主要梳理riscv32在qemu的移植过程,将通过几天时间将其整理和最小系统的bring up。为了保证代码的可维护性,所有修改符合rt-thread bsp制作规范。目标就是riscv32 qemu 上运行rt-thread。以...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
1 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部