On Wednesday 04 November 2009 02:37:38 Jonathan Haws wrote: > All, > > I have what may be an unconventional question: > > Our application consists of data being captured by an FPGA, processed, and > transferred to SDRAM. I simply give the FPGA an address of where I want > it stored in SDRAM and it simply DMAs the data over and interrupts me when > finished. I then take that data and store it to disk. > > I have code in user space that handles all of the writing to disk nicely > and fast enough for my application (I am capturing data at about 35-40 > Mbytes/sec). > > My question is this: is it possible to give a user-space pointer to the > FPGA to DMA to? It seems like I would have problems with alignment, > address manipulation, and a whole slew of other issues.
Well, it's possible: you'll have to use zero-copy I/O. Here's an article on this subject: http://lwn.net/Articles/28548/. Have a look at drivers/scsi/st.c at sgl_get_user_pages() or drivers/infiniband/hw/ipath/ipath_user_pages.c for example of how to use that. Regards, Sergey Temerkhanov. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev