米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试

1、概述

NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。

此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。

       基于MZ7035核心板我们设计了一款底板支持PCIE ROOT,用于NVME测试。

2、搭建FPGA BD工程

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第1张图片

3、设置PCIE核

主要对PCIE核的设置说明,其他的不再说明

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第2张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第3张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第4张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第5张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第6张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第7张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第8张图片

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第9张图片

4、XDC约束文件

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第10张图片

5、导入到SDK

米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第11张图片

 

5、配置kernel

1)、在路径osrc-lab/scripts/执行source settings64.sh

2)、在路径osrc-lab/sources/kernel/ 执行make menuconfig ARCH=arm

3)、配置NVME驱动,配置好后报存退出

 米联客(MSXBO)MZ7035FC PCIE Nvme SSD验证测试_第12张图片

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

 

7、连接PCIE-NVME卡

 

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)MZ7035FC PCIE Nvme SSD验证测试_第13张图片

 

转载于:https://my.oschina.net/msxbo/blog/3100243

你可能感兴趣的:(嵌入式)