如图所示,给Zynq开发板装上NVMe ssd固态硬盘,其M.2接口是PL端的资源,通过Vivado配置可以让Linux系统访问硬盘
进行Block Design
生成比特流,导出xsa
生成设备树,摘要部分在下文
这里选择了内存结尾的 256M 空间来作为 DMA 缓存,reserved-memory 即为预留内存,系统将会保留这一段内存,其他程序均无法访问
memory {
device_type = "memory";
reg = <0x0 0x0 0x0 0x7ff00000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* global autoconfigured region for contiguous allocations 256MB*/
linux,cma@0x6ff00000 {
compatible = "shared-dma-pool";
reusable;
reg = <0x0 0x6ff00000 0x0 0x10000000>;
alignment = <0x1000>;
linux,cma-default;
};
};
然后到Linux环境交叉编译生成BOOT文件,存入sd卡
前面流程都正确后,开机ssd会亮灯
开机后,ssh登录,命令行输入
fdisk -l
可以看到Linux系统识别出了加装的nvme ssd硬盘,即/dev/nvme0n1
,空间为477G
分别输入下面命令测试硬盘读写速度
time dd if=/dev/zero of=/dev/nvme0n1 bs=2M count=1024
time dd if=/dev/nvme0n1 of=/dev/null bs=2M count=1024
注意测试会擦除硬盘,请勿在存放有重要文件的硬盘尝试
本文章使用limfx的vscode插件快速发布