Robin Randhawa wrote:
Hi Ashok.
On Mon, 2007-09-24 at 09:55 +0530, ashok.shanmugam@xxxxxxxxx wrote:
Is it possible to setup a DMA operation between harddisk and video
memory. Please let me know, is DMA can happen only b/w mainMemry-I/O
and not b/w the I/O devices.
In the canonical sense, a DMA operation is arbitrated by a DMA
controller so that data transfers between a peripheral and Core memory
can be made without the CPU's direct intervention (which is expensive,
there are a slew of entities memory controllers, caches, etc involved).
That said, DMA Controllers are intrinsically simple beasts, you setup
descriptors somewhere that describe the data transfer characteristics,
including the source and destination addresses, and instruct the
controller to proceed. Someone takes care of cache coherency issues
along the way.
Therefore, the source and destination can be I/O devices in principle.
However, this is largely a platform specific issue and will need
studying the manuals relevant to your platform, system controller etc.
Cheers,
Robin
Hi Robin
Thanks for your quick reply. Now i understand things better.
I have one more doubt about DMA :
Im working on libata driver of 2.6.14 kernel.
With respect to write call, can you please tell me whether the address
from scatter-gather list "sg[i].dma_address" is DMA-buffer(which in turn
a Main Memory) address?.
Is it possible to change this address to an I/O device address?, so that
the DMA takes place b/w that I/O device and HardDisk.
Thanks
Ashok
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ