riscv 开发板 HiFive Unmatched 总览

2024-05-27 15:18

本文主要是介绍riscv 开发板 HiFive Unmatched 总览,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

板子在这里买 https://www.crowdsupply.com/sifive/hifive-unmatched
资料在这里下 https://www.sifive.com/boards/hifive-unmatched
1_soc_datasheet_fu740-c000-manual-v1p3.pdf*
2_板级软件总体介绍_hifive-unmatched-sw-reference-manual-v1p0.pdf*
3_产品硬件简介_HiFive Unmatched Product Brief (released).pdf
4_产品硬件介绍_hifive-unmatched-datasheet.pdf*
5_产品入门指南_hifive-unmatched-gsg-v1p4_ZH.pdf*
6_电路图_hifive-unmatched-schematics-v3.pdf*
7_SDK介绍.png*
A_bom表_bill-of-materials-hifive-unmatched-3b0.pdf*
B_3D模型_hf105-mech-3.step*
C_购买渠道及产品介绍.png*
D_资料整体简介.png*
硬件总览
  • 之前做了硬件介绍,位于 市面上的单板计算机中的 HiFive Unleashed
总介SOC	4*U74 + 1*S7内存16GB DDR4存储1.32 MB Quad SPI Boot Flash2.SD卡槽3.M.2 M-Key Slot网络Gigabit Ethernet Port其他4*USB-TypeA1*USB串口1*JTAGPCIE卡槽M.2 E-Key Slot

在这里插入图片描述

  • soc 特性
宣传指标a high-performance multi-core, 64-bit dual-issue, superscalar RISC-V processorThe Freedom U740 SoC is the highest performance RISC-V processor available today硬指标Operating Frequency @ 1.2 GHzDual-issue in-order 64-bit execution pipeline4 个 U74RV64IMAFDC32KB I-Cache / 32KB D-Cache per coreM S U 三mode虚拟内存1 个 S7RV64IMAC16KB I-Cache / 8KB DTIMM U 两mode物理内存2 MB Coherent Banked L2-Cache
软件总览
Reset vector ROM位置 : mask ROM 中的 0x1000-0x1020 上电后 所有核心的 pc(每个核心有一个pc寄存器) 位于 0x1004会根据 MSEL[3:0] 选择 jump 到1. loops forever waiting for debugger2. jump to memory-mapped QSPI0 // 0x2000_00003. jump to memory-mapped QSPI1 // 0x3000_00004. jump to ZSBLbootrom/ZSBL:位置 : mask ROM // memory-mapped 0x0000_1000-0x0000_1FFF会根据 MSEL[3:0] 选择 load 的数据 // 用 QSPI  接口 从 QSPIFlash 和 sdcard1.根据 MSEL[3:0] 判定即将load的数据(u-boot spl)在哪里2.load该数据到内存3.跳转波特率 89856 8n1可以用 57600 来解析如果有错误,就会打印信息, 如Error 0x00000000000000019如果没错误,不会打印信息第0阶段引导加载程序(ZSBL)包含在0x1_0000的掩码ROM中。它负责从GUID分区表下载更复杂的U-Boot SPL。所有hart都直接从外部时钟输入输入输入ZSBL,预期为26 MHz。具有mhartid zero的内核配置外围时钟分配器,然后搜索GUID类型为5B193300-FC78-40CD-8002-E86C45580B47的分区。 // mhartid 为 非0 的核心呢 ? 它首先下载GPT头(字节512-604),然后逐块(512字节)顺序扫描分区表,直到找到分区。然后,将该分区的全部内容U-Boot SPL下载到地址0x0800_0000处的L2 LIM中。然后执行分支到U-Boot SPL。u-boot spl : 会根据 MSEL[3:0] 判断 opensbi 在哪里1.根据 MSEL[3:0] 判定即将load的数据(opensbi)在哪里2.load该数据到内存3.跳转波特率 115200 8n1U-Boot辅助程序加载程序(SPL)从位于0x0800_0000的L2 LIM执行。它负责准备从DDR运行的系统。它执行以下操作:•配置DDR PLL、PHY和控制器•将GEM GXL TX PLL设置为125 MHz并重置•如果有外部PHY,请将其重置•从GUID类型为2E54B353-1271-4842-806F-E436D6AF69851的分区下载OpenSBI和U-boot和u-boot的设备树dtb 到 0x8000_0000// U-Boot SPL读取MSEL开关以确定在何处查找该分区•在OTP上扫描芯片序列号•将嵌入式DTB复制到DDR,填写U-Boot SPL版本、内存大小和MAC地址•启用16个L2方式中的15个(这将删除几乎所有L2 LIM内存)•跳转到DDR内存(0x8000_0000)opensbiOpenSBI从位于0x8000_0000的DDR执行,并保持驻留在该位置的内存中。它负责提供监控二进制接口(SBI)以及模拟芯片本身未实现的任何RISC-V所需指令。// openSBI 应该跳到了 U-boot// U-boot 是什么时候 被加载到内存的呢?// 猜想是 U-boot SPL // U-Boot SPL then loads and starts the next boot stage, consisting of OpenSBI and U-Boot, from the micro SD card into DRAM.// U-boot 在哪里 不是 Sifive 规定的波特率 没有打印,在 linux boot 阶段 打印出来u-bootU-Boot管理用于加载Linux内核的硬件。在板级,U-Boot在控制台串行端口上公开命令行接口。有关U-Boot SiFive使用U-Boot的更多信息,请参阅HiFive Unmatched Software Reference Manual(HiFive Unmatched软件参考手册)。波特率 115200 8n1
linux波特率 115200 8n1
systemd波特率 115200 8n1
  • 启动流程中 sifive 规定了什么
Reset vector ROM  的代码及位置及执行 是 固定的, 动不了
bootrom/ZSBL 的代码及位置及执行是固定的,动不了
u-boot spl 的 代码及位置 及执行是可选的
opensbi 的 代码及位置及执行是由 u-boot spl(也就是用户)定的,但是 sifive 给出了建立 // 不建议改动,当然也可以改
u-boot 的代码及位置及执行是可选的  // 可以改动
linux 的代码及位置及执行是可选的
systemd 的代码及位置及执行是可选的
Hifive Unmatched 当前配置
Reset vector ROM 和 bootrom/ZSBL 在 soc 中
u-boot-spl opensbi u-boot  linux rootfs 在 sd中
sd 被分成了4个分区分区1 : type : raw 		, u-boot-spl分区2 : type : raw 		, opensbi u-boot u-boot的设备树分区3 : type : fat16 	, 内核, 内核的设备树 , u-boot配置文件分区4 : type : ext4 	, rootfs
SMP 如何boot
TODO
S7 肯定不跑 opensbi

这篇关于riscv 开发板 HiFive Unmatched 总览的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007845

相关文章

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录 一、裸机开发(21个)二、嵌入式Linux驱动例程三、汇编3.1 处理器内部数据传输指令3.2 存储器访问指令3.3 压栈和出栈指令3.4 跳转指令3.5 算术运算指令3.6 逻辑运算指令 一、裸机开发(21个) 二、嵌入式Linux驱动例程 三、汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一

龙芯L2K0300开发板综合测试

CPU 查看cpu版本信息 cat /proc/cpuinfo 可以看到cpu是64位的LoongsonArch架构 stress压力测试结果 RAM 久久派板载512MB DDR4-2666内存,查看内存信息 cat /proc/meminfo 可以用memtester进行内存性能测试 memtester <size> <times> memtester测试结果

实操在聆思CSK6大模型开发板的英文评测SDK中自定义添加单词、短语、句子资源

引言 英文评测示例通过对用户语音输入的英文单词进行精准识别,提供 单词、短语、句子 三种类型,用户在选择好类型后,可根据屏幕上的提示进行语音输入,评测算法将对输入的英文语音进行精准识别,并对单词的发音、错读、漏读、多读等方面进行评估。 本文将详细介绍在聆思CSK6大模型语音视觉开发板上,如何替换英文评测示例中的单词、短语和句子,从而让您有更好的AI应用体验。 ·· 获取英文评测SDK 部

【免费分享】嵌入式Linux开发板【入门+项目,应用+底层】资料包一网打尽,附教程/视频/源码...

想要深入学习嵌入式Linux开发吗?现在机会来了!我们为初学者们准备了一份全面的资料包,包括原理图、教程、课件、视频、项目、源码等,所有资料全部免费领取,课程视频可试看(购买后看完整版),让你从零开始,快速掌握嵌入式Linux开发技能。 后台私信小雯老师,回复“嵌入式Linux”即可获取开发板完整资料包。 一、资料内容 开发教程:9大教程,覆盖应用层+底层开发 《Linux基础

AI-Talk开发板之helloword

一、说明         创建第一个应用在AI-Talk开发板上运行,编写一个“Hello World”应用,启动之后在主函数里通过UART0(debug)打印"Hello World"。 官方指导:第一个应用 | 聆思文档中心 (listenai.com) 二、创建工程 1、创建项目 在snap的同级目录下创建examples目录,然后进入examples目录,执行创建项目的命令:

TQZC706开发板教程:LWIP自环测试

本例程基于ZC706开发板实现LWIP自环通讯测试。使用开发板的网口与电脑或路由器等设备连接,使开发板与电脑在同一局域网内,使用telnet工具连接开发板,进行LWIP自环测试。        LWIP自环测试工程在Hello World项目上进行修改,vivado项目不需要有修改直接打开vitis,如下图所示点击pla...-->Board...-->Mod...-->勾选lw

迅为电子RK3588S开发板第三章Buildroot系统功能测试

iTOP-3588S开发板采用瑞芯微RK3588S处理器,是全新一代AloT高端应用芯片,采用8nm LP制程,搭载八核64位CPU(四核Cortex-A76+四核Cortex-A55架构),集成Mali G610 MP4四核GPU,内置AI加速器NPU,算力达6Tops,支持8K视频硬件编码器和硬件解码器,提供了许多功能强大的嵌入式硬件引擎,性能更强的同时,功耗也能稳稳把控。在各个行业,性能表现

IM项目:进阶版即时通讯项目---项目总览

文章目录 写在前面相关文档相关架构网关服务用户管理好友管理文件管理消息管理转发管理语音转换 写在前面 之前用Qt已经完成过一个即时通讯的项目,具体如下: Qt项目:C++全栈聊天项目总结 在这个项目的引导下,接触到了如何使用grpc协议来进行RPC调用,之后又对于项目进行了一些其他的改造,主要的侧重点在于对于服务的分布式部署,然后服务和服务之间使用的就是这个rpc协议来进行