I am writing a packet DMA driver on Win7-64 OS for a 64-bit PCIx data acquisition device. I am having a problem with large DMAs. I am hitting a ceiling of about 2GB max transfer size. Our max size req is 5GB for a single DMA transfer. Is this possible? Has anyone achieved such a transfer size?
I have plenty of RAM (24GB). I can alloc a 2.3GB receive buffer (and for my testing I am doing send as well, so I am allocing a 2.3GB send buffer as well). It appears that I can call GetScatterGatherList successfully for my full transfer upfront. I am using a descriptor ring with only 200 descriptors which works nicely under 2GB.
I get some data errors just above 2GB (all 0’s). And then no data written to the rest of the buffer.
I’d be happy to provide more info, but I am really curious to the question: has anyone ever done DMAs this large?
Thanks,
Jeff