本文档讲解如何在 Linux Host-PC 上编译和加载 Xilinx 提供的 xdma 的驱动。为运行软件打基础。
Linux 重启后,运行 lspci 命令来看看 PCIe 设备是否被正常识别。如果发现其中有 "Memory controller: Xilinx..." ,说明识别成功。
$ lspci
... # 其它 PCI 设备
01:00.0 Memory controller: Xilinx Corporation Device 7021 # Xilinx PCIe-XDMA 设备
... # 其它 PCI 设备
然后 cd 到以下目录中,并运行 make 编译 Xilinx 提供的 XDMA 驱动 (注意这里需要用管理员权限) 。
$ cd host_software/driver/xdma
$ sudo make编译成功后,会产生驱动模块文件 xdma.ko 。
注意:如果你想重新编译,则需要删除所有编译生成的 .o 和 .ko 文件,然后重新运行 make 来编译:
$ sudo rm *.o
$ sudo rm *.ko
$ sudo make
编译成功后,cd 到 上级目录,运行 load_driver.sh 脚本来加载驱动 。
$ cd .. # cd 到上级目录 host_software/driver 中
$ sudo ./load_driver如果驱动加载成功,则显示 "DONE" 。
然后我们运行以下命令,会发现 /dev 目录下出现一系列 xdma 设备。
$ ls /dev/xdma*
...
/dev/xdma0_c2h_0
...
/dev/xdma0_h2c_0其中我们要用到的设备是 /dev/xdma0_c2h_0 和 /dev/xdma0_h2c_0 ,前者用来从 FPGA 中读取数据 (device_to_host) ,后者用来向 FPGA 中传送数据 (host_to_device)