xilinxpci

Windows driver API that enables multi-word read/write


Good afternoon. I'm struggling with windows PCI driver. What I want to do is write and reading into MMIO space of my Xilinx FPGA board through PCI. To do so, currently I'm using WRITE_REGISTER_BUFFER_ULONG function to transfer data. Whenever I call this function, ILA debug on the board shows only 64 bits are transferred at a time, and it seems this is intended behavior. However, what I want to do is transferring more than 64 bits (probably 512 bits) in one TLP transaction, which will incur more DWORDS following one TLP packet header. Is there any other API in windows kernel driver that can send more than 64 bits into MMIO space, rather than DMA APIs?

Thanks!


Solution

  • I doubt you'll be able to do that with MMIO from the host CPU. You'll probably need to make your PCIe device be a bus master to do more efficient transfers.