[X]关闭

米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试

文档创建者:uisrc
浏览次数:7030
最后更新:2022-07-08
 

米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-1.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-2.jpg
1、概述
NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。
此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。
       基于MZ7035FB我们设计了一款PCIE NVME FEP卡,用于NVME测试。
2、搭建FPGA BD工程
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-3.jpg
3、设置PCIE核
主要对PCIE核的设置说明,其他的不再说明
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-4.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-5.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-6.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-7.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-8.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-9.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-10.jpg
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-11.jpg
4、XDC约束文件
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-12.jpg
5、导入到SDK
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-13.jpg

5、配置kernel
1)、在路径osrc-lab/scripts/执行source settings64.sh
2)、在路径osrc-lab/sources/kernel/ 执行make menuconfig ARCH=arm
3)、配置NVME驱动,配置好后报存退出
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-14.jpg
3)、在路径osrc-lab/scripts/kernel 执行save_ kernel _config.sh保存配置。
6、修改设备树
/ {
         amba_pl: amba_pl {
                   #address-cells = <1>;
                   #size-cells = <1>;
                   compatible = "simple-bus";
                   ranges ;
                   axi_pcie_0: axi-pcie@40000000 {
                            #address-cells = <3>;
                            #interrupt-cells = <1>;
                            #size-cells = <2>;
                            clock-names = "REFCLK";
                            clocks = <&misc_clk_0>;
                            compatible = "xlnx,axi-pcie-2.9", "xlnx,axi-pcie-host-1.00.a";
                            device_type = "pci";
                            interrupt-map = <0 0 0 1 &pcie_intc_0 1>, <0 0 0 2 &pcie_intc_0 2>, <0 0 0 3 &pcie_intc_0 3>, <0 0 0 4 &pcie_intc_0 4>;
                            interrupt-map-mask = <0 0 0 7>;
                            interrupt-names = "interrupt_out";
                            interrupt-parent = <&intc>;
                            interrupts = <0 29 4>;
                            ranges = <0x02000000 0x00000000 0x80000000 0x80000000 0x00000000 0x04000000>;
                            reg = <0x40000000 0x2000000>;
                            pcie_intc_0: interrupt-controller {
                                     #address-cells = <0>;
                                     #interrupt-cells = <1>;
                                     interrupt-controller ;
                            };
                   };
                   misc_clk_0: misc_clk_0 {
                            #clock-cells = <0>;
                            clock-frequency = <100000000>;
                            compatible = "fixed-clock";
                   };
         };
};
7、编译并且部署系统到TF卡进行测试
1)、get_hw_description.sh
2)、make_uboot.sh
3)、make_kernel.sh
4)、create_image.sh
插入TF卡
5)、make_parted.sh
6)、deploy_image.sh
完成卡的制作
但是需要对uEnv.txt修改增加cma=128M
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-15.jpg

8、测试
弹出Tf卡一定不要带电插拔,把TF卡插入到开发板,上电启动。
1)、查看设备节点
输入名令: cd /dev
           ls
可以看到设备节点
2 )、查看磁盘
输入命令: fdisk -l
即可看到磁盘的大小
3 )、格式化SSD
       fdisk /dev/nvme0n1
4 )、测试读速度
       time dd if=/dev/zero of=/dev/nvme0n1 bs=2M count=1024
5 )、测试写速度
       time dd if=/dev/nvme0n1 of=/dev/null bs=2M count=1024
米联客(MSXBO)MZ7035FB FEP Nvme SSD 卡测试-16.jpg

发表评论已发布 3

米联客(msxbo) 该用户已被删除

发表于 2019-9-2 17:22:01 来自手机 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽

田野

发表于 2021-8-3 16:32:16 来自手机 | 显示全部楼层

代码可以分享一下吗?

冰洋懒鳕鱼

发表于 2022-7-8 17:56:15 来自手机 | 显示全部楼层

请教一下
1.root设备为什么要使能msi
2.分区后没有看到格式化和挂载的步骤可以直接测速吗
3.vivado工程内的地址分配能看一下吗
4.我自己的7035板子,裸跑可以枚举成功并识别到ssd卡,跑petalinux时候,跑到该格式化的时候,就会不停的的linkdown 不知道有没有什么思路,我自己怀疑和vivado工程的复位有关。
5.如果不修改设备树会不会出现我第4个问题的现象
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则