diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-4E3C086B-25BE-4DAC-9E21-CFC4F8B792A5.dita
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-4E3C086B-25BE-4DAC-9E21-CFC4F8B792A5.dita Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,121 @@
+
+
+
+
+
+ The DMA framework provides a generic simple interface for the
+clients to access DMA resources in a device. The primary clients are
+device drivers that will use the DMA framework to set up DMA transfers.
+A device can have more than one DMA controller (DMAC). The key concepts related to DMA framework are: A device driver or a kernel object that needs to use the resources
+of the DMA framework. On the Symbian platform, the Physical Device
+Drivers are the primary clients of the DMA framework. The generic interface to provide DMA services to the clients. The DMA clients link against the The platform-independent layer contains the generic framework
+independent from the hardware. The platform-specific layer is specific to the baseport and
+the hardware used. The DMAC is the DMA hardware implementation. The number of
+DMAC in the implementation of the DMA Framework depends on the hardware.
+The DMAC is a peripheral to the CPU and is programmed to control data
+transfers without using the CPU. The key concepts related to functionality
+provided by the DMA framework are: Some DMA controllers transfer data using scatter/gather mode.
+In this mode, the operating system creates a DMA descriptor with source
+and destination memory addresses and the configuration. The source
+and destination data can be a list of scattered memory blocks. The
+DMA controller uses this configuration to perform the data transfer. The data structure used by the DMA framework to store the configuration
+of the data transfer. These will store details such as source address,
+destination address, number of bytes and pointer to the next descriptor,
+when the DMA is used to transfer disjoint blocks of data. This structure
+is defined in the platform specific layer. The descriptors are always
+used to store the configuration even if the DMA controller does not
+support scatter/gather mode. When the scatter/gather mode is not supported
+by the DMAC, the descriptors used to store the configuration are called
+as pseudo-descriptors. The descriptor headers are used to store additional information
+about the descriptors. The descriptors are accessed using the descriptor
+headers which contain the pointer to the descriptor. The device drivers configure and initialize a data transfer
+using the class memory to memory memory to peripheral peripheral to memory
+
+
+
The transfer request stores the callback function of the clients.
+The callback function is used to notify the success or failure of
+a data transfer.
The object which represents a single hardware, logical or a +virtual channel. In the DMA platform service API, each DMA channel +is referred to by a 32-bit value called a cookie. Each DMA transfer +is in the form of a description header and its associated DMA descriptor. +The queue of transfer requests (both being transferred and pending) +consists of a linked list of the DMA headers.
The channel manager controls the opening and closing of DMA +channels. The channel manager functions are defined in the platform +independent layer and implemented in the platform specific layer.
The typical use cases of a DMA framework are:
programmable data transfer between hardware peripherals and +memory buffers
programmable data transfer of block of data between different +regions of memory