Hi Markus,

Markus Franke wrote:
well, as far as I understand the generic DMA API in the Linux kernel should provide an abstraction layer to driver developers and tries to hide all the specifics about DMA implementation. That means a developer should be able to use DMA in it's drivers by simply using some kind of a call flow:

request_dma
set_dma_addr
set_dma_mode
set_dma_count
enable_dma
disable_dma
free_dma

As such, no specific knowledge about the DMA controller is needed by the driver developer to set up DMA transfers.

The MCF548x uses a very different DMA controller than for example the MCF5272. Now, Freescale provides the MCDMAAPI in order to control all the tiny bits in the controller. Furthermore, I have a modified version of the FEC-driver, from Freescale's latest BSP, running within uClinux. This driver strongly depends on the MCDMAAPI and some internals of the DMA controller itself. (e.g. setting descriptors which point to microcode necessary for the DMA engine)
I want to move this code on top of the generic linux DMA layer.

Now, my problem is that there are lot's of things to be followed in the FEC driver in order to get DMA working. Actually, all these things should be moved somewhere in target specific DMA code (maybe arch/m68knommu/dma.c???)

Perhaps something like arch/m68knommu/platform/547x/dma.c
may be more appropriate. I expect this will remain specific
to the 547x/548x parts.


in order to hide these things from the driver developer, right? The idea is now to remove all the MCDMAAPI-calls from the FEC-driver and replace them with the generic API calls listed above. Would this be the right way?

Yes, I think that is the right way to do it.
The DMA engine can be used for other things than the FEC ethernets
right?


If so I have some doubts that with the small amount of functions above, I will be able to use all the functionality of the MCF548x's DMA controller.

What parts of supporting don't you think will fit in that
framework?

Regards
Greg



Zitat von Greg Ungerer <[EMAIL PROTECTED]>:

Hi markus,

Markus Franke wrote:
Zitat von Greg Ungerer <[EMAIL PROTECTED]>:
As a general rule you want to follow the way Linux does things.
This is especially true for modern versions of the kernel (2.6.x),
and especially if you want the code to be acceptable for main
line inclusion.

apart from <LINUX/Documentation/DMA-API.txt>, is there any further documentation about the linux DMA subsystem available. LDD3 also talks

As far as I am aware that is all there is. Look at the code
for other architectures as an example as well.


more about the usage of the Generic DMA Layer, rather than saying something about how to connect your target specific DMA code to the DMA core. I am especially interested in the function stubs/macros one need to provide to the Linux DMA Layer.

The code for other architectures will probably provide the
best example of what to do.

Regards
Greg



------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     [EMAIL PROTECTED]
Secure Computing Corporation                PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev






--
------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     [EMAIL PROTECTED]
Secure Computing Corporation                PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to