Xilinx XDMA pcie 上位机应用程序控制逻辑
1. 驱动安装的参数
关于驱动的编译和安装这里就不多讲了,无非就是make 和 insmod 。这里讲一下驱动安装时,控制驱动属性的几个参数:
1.中断模式
static unsigned int interrupt_mode;
module_param(interrupt_mode, uint, 0644);
MODULE_PARM_DESC(interrupt_mode, "0 - Auto , 1 - MSI, 2 - Legacy, 3 - MSI-x");
中断模式分为三种,MSIX是最新的中断模式,老版本的内核可能不支持。就比如说我的内核。如果不指定驱动安装额中断参数,那么就会产生内核安装的错误。所以这里我们选择MSI的中断模式。
2.驱动运行模式
static unsigned int poll_mode;
module_param(poll_mode, uint, 0644);
MODULE_PARM_DESC(poll_mode, "Set 1 for hw polling, default is 0 (interrupts)");
驱动的运行模式分为两种, 中断模式和poll_mode 模式,默认是中断模式,设置为1是硬件polling模式。根据实际应用场景可以选择相应的设置。
3.sgdma传输延时
unsigned int h2c_timeout = 10;
module_param(h2c_timeout, uint, 0644);
MODULE_PARM_DESC(h2c_timeout, "H2C sgdma timeout in seconds, default is 10 sec.");
unsigned int c2h_timeout = 10;
module_param(c2h_timeout, uint, 0644);
MODULE_PARM_DESC(c2h_timeout, "C2H sgdma timeout in seconds, default is 10 sec."