所提供的 PCIe 驱动程序和软件应根据特定平台进行自定义。要完成此操作,所开发的驱动程序和软件通常会先验证供应商 ID、器件 ID、版本 ID、子系统供应商 ID 和子系统 ID,然后再尝试访问器件扩展功能或外设(如 PCIe-XVC-VSEC 或 AXI-XVC)。由于提供的驱动程序为通用型驱动程序,因此它仅验证供应商 ID 和器件 ID 以确认兼容性,然后再尝试验证 PCIe-XVC-VSEC 或 AXI-XVC 外设。
XVC 驱动程序和软件均作为 ZIP 文件提供,包含在 Vivado Design Suite 安装内。
- 请将此 ZIP 文件从 Vivado 安装目录复制到 FPGA 连接的主机 PC 并解压其内容。此文件位于 Vivado 安装目录内的以下路径中。
XVC Driver and SW Path: …/data/xicom/driver/pcie/xvc_pcie.zip
driver_* 和 xvcserver 目录内的 README.txt 文件用于识别如何编译、安装和运行 XVC 驱动程序和软件,详细步骤汇总如下。将驱动程序和软件文件复制到主机 PC 并以具有 root 用户权限的用户身份登录后,请遵循以下步骤进行操作。
- 修改 driver_*/xvc_pcie_user_config.h 文件中的变量以匹配您的硬件设计和 IP 设置。请考虑修改以下变量:
- PCIE_VENDOR_ID
- PCIe® IP 自定义中定义的 PCIe 供应商 ID。
- PCIE_DEVICE_ID
- PCIe® IP 自定义中定义的 PCIe 器件 ID。
- Config_space
- 允许选择使用 PCIe-XVC-VSEC 或 AXI-XVC 外设。默认值 AUTO 会首先尝试发现 PCIe-XVC-VSEC,然后,如果未找到 PCIe-XVC-VSEC,则会尝试连接至 AXI-XVC 外设。值 CONFIG 或 BAR 可用于在 PCIe® -XVC-VSEC 实现和 AXI-XVC 实现之间明确选择所期望的实现。
- config_vsec_id
- 当“Bridge Type”(桥接类型)配置为“From PCIE to BSCAN”(从 PCIE 到 BSCAN)时,该值为在“Debug Bridge IP”中定义的 PCIe XVC VSEC ID(默认值
0x0008
)。该值仅用于检测 PCIe® -XVC-VSEC。 - config_vsec_rev
- 当“Bridge Type”配置为“From PCIe to BSCAN”(从 PCIe 到 BSCAN)时,该值为在“Debug Bridge IP”中定义的 PCIe XVC VSEC Rev ID(默认值
0x0
)。该值仅用于检测 PCIe-XVC-VSEC。 - bar_index
- PCIe BAR 索引,当“Bridge Type”配置为“From AXI to BSCAN”(从 AXI 到 BSCAN)时,应使用此索引值来访问“Debug Bridge IP”。此 BAR 索引指定为 PCIe IP 自定义与系统设计中可寻址的 AXI 外设的组合。该值仅用于检测 AXI-XVC 外设。
- bar_offset
- PCIe BAR 偏移,当“Bridge Type”配置为“From AXI to BSCAN”时,应使用此偏移值来访问“Debug Bridge IP”。此 BAR 偏移指定为 PCIe IP 自定义与系统设计中可寻址的 AXI 外设的组合。该值仅用于检测 AXI-XVC 外设。
- 请将源文件移至您所选的目录内。例如,请使用:
/home/username/xil_xvc or /usr/local/src/xil_xvc
- 请确保您具有 root 用户权限,并切换至包含驱动程序文件的目录。
# cd /driver_*/
- 编译驱动程序模块:
# make install
内核模块对象文件将安装为:
/lib/modules/[KERNEL_VERSION]/kernel/drivers/pci/pcie/Xilinx/xil_xvc_driver.ko
- 运行
depmod
命令以选择新安装的内核模块:# depmod -a
- 请确保未加载任何旧版本的驱动程序:
# modprobe -r xil_xvc_driver
- 加载模块:
# modprobe xil_xvc_driver
如果运行
dmesg
命令,您将看到以下消息:kernel: xil_xvc_driver: Starting…
注释: 您还可在内核对象文件上使用insmod
来加载模块:# insmod xil_xvc_driver.ko
但由于与旧内核存在兼容性问题,因此不推荐此方法,如非必要请勿使用。
- 生成的字符文件 /dev/xil_xvc/cfg_ioc0 归用户根和组根所有,并且它需要具备
660
的权限。如果此文件不允许应用与驱动程序进行交互,请更改其中的权限。# chmod 660 /dev/xil_xvc/cfg_ioc0
- 为驱动程序构建简单的测试程序:
# make test
- 运行测试程序:
# ./driver_test/verify_xil_xvc_driver
您应可看到各项不同长度的测试成功消息,后接以下消息:
"XVC PCIE Driver Verified Successfully!"