Re: DMA b/w harddisk and vram

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux