linux DMA capabilities in MV64460
Phil Nitschke
Phil.Nitschke at avalon.com.au
Mon Mar 6 15:09:38 EST 2006
>>>>> "MAG" == Mark A Greer <mgreer at mvista.com> writes:
MAG> On Tue, Dec 20, 2005 at 10:49:58AM +1030, Phil Nitschke wrote:
>> ... if I wanted to suck the data into main memory using the mv64460
>> IDMA controller (assuming the device couldn't initiate its own
>> burst writes), is there a standard kernel interface to allow me to
>> do this?
MAG> Yes. You would make a "dma ctlr driver" for the dma ctlr(s). I
MAG> don't know what the best example would be but hopefully someone
MAG> else has a suggestion.
I'm following up to a thread started in December last year. The thread
was talking about this device:
http://www.marvell.com/products/communication/discoveryIII/index.jsp
http://www.marvell.com/products/communication/Discovery%20MV64460%20FINAL.pdf
Currently I've found the linux kernel has the following files relevant
to this hardware (2.6.15 kernel):
./arch/ppc/syslib/mv64360_pic.c
./arch/ppc/syslib/mv64x60.c
./arch/ppc/syslib/mv64x60_dbg.c
./arch/ppc/syslib/mv64x60_win.c
./drivers/char/watchdog/mv64x60_wdt.c
./drivers/i2c/busses/i2c-mv64xxx.c
./drivers/net/mv643xx_eth.c
I'm now looking seriously (and reluctantly!) at writing a DMA Controller
Driver to supplement these functions, and I've started the process of
getting an NDA from Marvell, so I can get their User Manual (and errata!).
Can someone point me in the right direction to get me started? I need
to come up the learning curve to find out where to start.
How is a DMA controlled (from a device driver writer's perspective) when
a third-party (i.e. in the bridge) DMA controller needs to do the work
to get the data from a PCI Target into main memory?
What kernel API should be provided by the DMA Controller Driver?
Any documentation, examples, similar device drivers, etc, would be
appreciated. TIA,
--
Phil
More information about the Linuxppc-embedded
mailing list