Thread (10 messages) 10 messages, 6 authors, 2009-11-23

Re: DMA to User-Space

From: Sergey Temerkhanov <hidden>
Date: 2009-11-23 17:17:54

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help