|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-4E3C086B-25BE-4DAC-9E21-CFC4F8B792A5" xml:lang="en"><title>DMA |
|
13 Technology Guide</title><shortdesc>Describes the new Direct Memory Access framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <section id="GUID-E987EF55-27CE-4EC2-B250-2C3D7C36CAF9"><title>Purpose</title><p>The |
|
15 Symbian platform DMA framework provides a generic simple interface for the |
|
16 clients to access DMA resources in a device. The primary clients are device |
|
17 drivers that will use the DMA framework to set up DMA transfers.</p></section> |
|
18 <section id="GUID-7607CC80-0FA0-4FC2-897A-C4AB6B6C74FC"><title>Key concepts</title><fig id="GUID-93B0F1CF-5F84-4952-8D8C-7BE581EC5353"> |
|
19 <title>New DMA Framework</title> |
|
20 <image href="GUID-74C99E44-8900-47FB-AF79-5627C37B9843_d0e325662_href.png" placement="inline"/> |
|
21 </fig><dl> |
|
22 <dlentry> |
|
23 <dt>DMA Client</dt> |
|
24 <dd><p>A device driver or other kernel objects that needs to use the resources |
|
25 of the DMA framework.</p></dd> |
|
26 </dlentry> |
|
27 <dlentry> |
|
28 <dt>DMA API</dt> |
|
29 <dd><p>The generic interface to provide DMA services to the clients.</p></dd> |
|
30 </dlentry> |
|
31 <dlentry> |
|
32 <dt>DMA Import Library</dt> |
|
33 <dd><p>The DMA clients link against the <filepath>dma2.lib</filepath> file.</p></dd> |
|
34 </dlentry> |
|
35 <dlentry> |
|
36 <dt>DMA Platform Independent Layer (PIL)</dt> |
|
37 <dd><p>The platform independent layer that contains the generic framework |
|
38 independent of the baseport.</p></dd> |
|
39 </dlentry> |
|
40 <dlentry> |
|
41 <dt>DMA HAI</dt> |
|
42 <dd><p>The simplified hardware abstract interface between the platform independent |
|
43 layer and platform specific layer.</p></dd> |
|
44 </dlentry> |
|
45 <dlentry> |
|
46 <dt>DMA Platform Specific Layer (PSL)</dt> |
|
47 <dd><p>The platform specific layer is specific to the baseport and the hardware |
|
48 used.</p></dd> |
|
49 </dlentry> |
|
50 <dlentry> |
|
51 <dt>DMA Controller (DMAC)</dt> |
|
52 <dd><p>The DMAC is the hardware implementation of the DMA framework. The number |
|
53 of DMAC depends on the PSL implementation.</p></dd> |
|
54 </dlentry> |
|
55 <dlentry> |
|
56 <dt>DMA Channel</dt> |
|
57 <dd><p>The object which represents a single hardware channel. The DMA channels |
|
58 are referred by a 32-bit value called as cookie. They channel object stores |
|
59 the required number of descriptors for a given channel.</p></dd> |
|
60 </dlentry> |
|
61 <dlentry> |
|
62 <dt>DMA Channel Manager</dt> |
|
63 <dd><p>The channel manager controls the DMA channels. The channel manager |
|
64 functions are defined in the platform independent layer and implemented in |
|
65 the platform specific layer.</p></dd> |
|
66 </dlentry> |
|
67 <dlentry> |
|
68 <dt>DMA Descriptors</dt> |
|
69 <dd><p>The data structure uses by the DMA framework to store configuration |
|
70 of the data transfer block with details such as source address, destination |
|
71 address, number of bytes and pointer to the next descriptor, when DMA is used |
|
72 to transfer disjoined blocks of data. This structure is defined in the platform |
|
73 specific layer. The DMA descriptors must not be confused with the Symbian |
|
74 platform descriptors.</p></dd> |
|
75 </dlentry> |
|
76 <dlentry> |
|
77 <dt>Descriptor Headers</dt> |
|
78 <dd><p>The descriptor headers are used to store additional information about |
|
79 the descriptors.</p></dd> |
|
80 </dlentry> |
|
81 <dlentry> |
|
82 <dt>Transfer Request</dt> |
|
83 <dd><p>The transfer request are the process of initialising a data transfer |
|
84 by the device drivers. </p></dd> |
|
85 </dlentry> |
|
86 </dl></section> |
|
87 <section id="GUID-F64155FC-5245-447F-88E7-C642EDEB2CEE"><title>Typical Uses</title><p>The |
|
88 typical use cases of a DMA framework are:</p><ul> |
|
89 <li><p>programmable data transfer between hardware controllers and memory |
|
90 buffers</p></li> |
|
91 <li><p>programmable data transfer of block of data between different regions |
|
92 of memory</p></li> |
|
93 <li><p>programmable data extraction at regular intervals in a data structure</p></li> |
|
94 <li><p>programmable rotation of a two dimensional data structure in memory |
|
95 such as an image.</p></li> |
|
96 </ul></section> |
|
97 </conbody></concept> |