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

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

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

一图看懂RISC-V星光板的启动流程

时间:2022-04-22 13:43

人气:

作者:admin

标签: RISC 

导读:继《最全教程来啦!在RISC-V星光板上创建Debian系统镜像》之后,这一期来聊聊RISC-V星光板的启动流程。如何更直观理解VisionFive的启动流程呢?小编用一张图摹拟整个过程。通电开机加载...

继《最全教程来啦!在RISC-V星光板上创建Debian系统镜像》之后,这一期来聊聊RISC-V星光板的启动流程。

如何更直观理解VisionFive的启动流程呢?小编用一张图摹拟整个过程。

0013f5fa-bce7-11ec-82f6-dac502259ad0.png

通电开机加载BootROM后,有两种方法去启动Bootloader(在嵌入式系统中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务完全由Bootloader来完成)。

第一种是通过UART,即通过简单输入一条命令,加载一个固定大小的二进制文件到芯片的内存中并执行它,这种模式主要用于固件更新;

第二种是通过QSPI(Quad SPI),即BootROM将32k大小的Bootloader从QSPI读取到SRAM区并开始执行。不难看出,QSPI更为方便,官方也推荐这个方式。

通过QSPI模式,BootROM把32k的bootloader从QSPI读取到主芯片内部的SRAM区并启动。大家可以看到上图浅蓝色区域,这个区域的文件都是在开发板出厂时,刷写好到QSPI闪存芯片里的内容,包括了secondboot,ddrinit,OpenSBI和U-Boot。

secondboot是一个只有9KB左右的bin文件,它去读取闪存中ddrinit,跳转过去后初始化内存并引导闪存上的fw_payload.bin.out文件,而这个fw_payload.bin.out包含了 OpenSBI和Uboot的头和文件信息,于是直接跳转到OpenSBI了。

什么是OpenSBI呢?

OpenSBI的全称是Open SupervisorBinary Interface ,即“开放的操作系统二进制接口”,大家可以将OpenSBI 理解成固件。其特点有二,第一,以 M 模式和启动器来定义的平台固件,可以作为一个管理程序或者是通用操作系统执行,并且进入S或者HS模式;第二,以HS模式和启动器的管理程序,或者一个通用的操作系统,可以执行并进入VS模式。

M模式即Machine-Mode,可以理解为固件特权级;S模式即Supervisor-Mode,可以理解为操作系统内核特权级。在启动流程中,OpenSBI作用就是让开发板从M运行模式引导操作系统内核,让操作系统内核运行进入 S 模式。

其他模式就不过多解释啦,感兴趣的朋友可自行搜索。


0031576c-bce7-11ec-82f6-dac502259ad0.png

最后,从OpenSBI到U-Boot 的过程可以拆分来看,OpenSBI为Linux提供基本的系统响应,系统从M模式转换为S模式,跳转并启动位于内存对应位置的U-Boot。而随着U-Boot启动,Linux系统也开始启动了。

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

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

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

关注微信