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*
硬件总览
总介
	SOC	
		4*U74 + 1*S7
	内存
		16GB DDR4
	存储
		1.32 MB Quad SPI Boot Flash
		2.SD卡槽
		3.M.2 M-Key Slot
	网络
		Gigabit Ethernet Port
	其他
		4*USB-TypeA
		1*USB串口
		1*JTAG
		PCIE卡槽
		M.2 E-Key Slot

在这里插入图片描述

  • soc 特性
宣传指标
	a high-performance multi-core, 64-bit dual-issue, superscalar RISC-V processor
	The Freedom U740 SoC is the highest performance RISC-V processor available today

硬指标
	Operating Frequency @ 1.2 GHz
	Dual-issue in-order 64-bit execution pipeline
	
	4 个 U74
		RV64IMAFDC
		32KB I-Cache / 32KB D-Cache per core
		M S U 三mode
		虚拟内存
	1 个 S7
		RV64IMAC
		16KB I-Cache / 8KB DTIM
		M 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 debugger
		2. jump to memory-mapped QSPI0 // 0x2000_0000
		3. jump to memory-mapped QSPI1 // 0x3000_0000
		4. jump to ZSBL

bootrom/ZSBL:
	位置 : mask ROM // memory-mapped 0x0000_1000-0x0000_1FFF
	
	会根据 MSEL[3:0] 选择 load 的数据 // 用 QSPI  接口 从 QSPIFlash 和 sdcard
	1.根据 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 8n1
	
	U-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)
	
	

opensbi
	OpenSBI从位于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-boot
	U-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
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SmartNFC开发是一种具备近场通信功能的开发。近场通信技术(NFC)是一种无线通信技术,可以实现设备之间的短距离通信和数据交换。SmartNFC开发提供了一个方便的平台,用于开发NFC应用程序和测试NFC功能。 SmartNFC开发的主要特点包括:首先,它具备高度集成的NFC芯片,可以支持多种标准的NFC协议。其次,开发上集成了丰富的硬件接口,包括UART、SPI、I2C等,可方便地与其他外部设备进行连接和通信。此外,开发还配备了一个保护电路,确保在使用NFC功能时电路的稳定性和安全性。 SmartNFC开发的应用非常广泛。例如,在移动支付方面,开发者可以利用SmartNFC开发开发支持NFC支付的应用程序,实现手机与POS终端之间的支付交互。此外,SmartNFC开发还可以应用于身份验证、门禁系统、智能家居等领域,扩展了这些应用的功能和便利性。 使用SmartNFC开发开发者可以快速开发出符合NFC标准的应用程序,并通过软件调试和测试来专注于应用的具体功能和用户体验。由于SmartNFC开发具备强大的硬件性能和灵活的接口设计,开发者可以根据自己的需求进行定制化开发,并与其他设备进行无缝集成。 总之,SmartNFC开发是一种实用的开发工具,可以帮助开发者快速、方便地开发NFC应用程序,并扩展智能设备的功能和应用领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值