Symbian3/PDK/Source/GUID-4E3C086B-25BE-4DAC-9E21-CFC4F8B792A5.dita
changeset 5 f345bda72bc4
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
       
     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>