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 @@ + + + + + +DMA Technology GuideDescribes the Direct Memory Access framework. +
Purpose

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).

+
Architectural +concepts

The key concepts related to DMA framework are:

+DMA Framework + +
+ +
DMA Client
+

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.

+
+ +
DMA Platform Service API
+

The generic interface to provide DMA services to the clients.

+
+ +
DMA Import Library
+

The DMA clients link against the dma.lib file.

+
+ +
DMA Platform-Independent Layer (PIL)
+

The platform-independent layer contains the generic framework +independent from the hardware.

+
+ +
DMA Platform-Specific Layer (PSL)
+

The platform-specific layer is specific to the baseport and +the hardware used.

+
+ +
DMA Controller (DMAC)
+

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.

+
+
+
DMA +functionality

The key concepts related to functionality +provided by the DMA framework are:

+ +
Scatter/Gather Mode
+

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.

+
+ +
DMA Descriptors
+

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.

+
+ +
Descriptor Headers
+

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.

+
+ +
Transfer Request
+

The device drivers configure and initialize a data transfer +using the class DDmaRequest. The data can be transferred +between:

    +
  • 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.

+
+ +
DMA Channel
+

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.

+
+ +
DMA Channel Allocator
+

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.

+
+
+
Typical +Uses

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

  • +
+
+ +ARM DMA Controller Reference Manual +
\ No newline at end of file