Adaptation/GUID-0804E71D-8B20-49A2-9F7C-F2D6795681D0.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-0804E71D-8B20-49A2-9F7C-F2D6795681D0" xml:lang="en"><title>DMA Quick Start</title><shortdesc>DMA is used to ease the burden on the main CPU, by performing
some of the data transfers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>There are two types of user that are interested in DMA: those that
want to use it to transfer data, and those that need to implement
it for their hardware.</p>
<section id="GUID-0C4E7346-F73E-4348-8C1D-0CE6211BE222"><title>Users</title><ul>
<li><p>Device driver developers use DMA to reduce the burden on the
main CPU. They open a channel and then use that channel to queue one
or more DMA requests.</p></li>
<li><p>Hardware implementers, usually device creators, implement the
DMA Platform Specific Layer (PSL) so that it will work with the particular
DMA controller on a device.</p></li>
</ul><p>Some devices will have more than one DMA controller, which
means the DMA channel manager may require the hardware implementer
to provide a means of identifying whether a particular DMA channel
is of the correct type and on the appropriate controller.</p></section>
<section id="GUID-AC961C9D-DD23-41D0-89AC-C89C5A2A6B6F"><fig id="GUID-01E7521A-ECD4-45F8-B104-659054A457AF">
<title>DMA Class Diagram</title>
<image href="GUID-F7ABA3C6-60DD-4AE1-916B-BE2BCF6285CE_d0e89266_href.png" placement="inline"/>
</fig><p>The diagram represents different classes related to the DMA.
The classes in green provide the Client Interface which allows the
users to request data transfer, the classes in blue implement the
platform specific layer and the classes in white are the abstract
classes.</p></section>
<section id="GUID-05B51EC6-F4CC-4C1C-AF91-1977FEE68FF6"><title>Device
driver developers</title><p>The device driver writers including the
developers of physical device drivers and kernel extension writers
use the client interface of the DMA platform service. </p><ul>
<li><p>DMA technology is described the <xref href="GUID-4E3C086B-25BE-4DAC-9E21-CFC4F8B792A5.dita">DMA Technology Guide</xref></p></li>
<li><p>The concepts of device driver are described in the <xref href="GUID-EE50283A-543C-446F-A5D1-E64043F988ED.dita">DMA Device Driver
Guide</xref></p></li>
<li><p>The Client Interface is explained in the <xref href="GUID-D5ED62EB-744D-42EB-B8CF-D5623BDA5B38.dita">DMA Client Interface
Guide</xref></p></li>
</ul></section>
<section id="GUID-556FBE81-A39C-429F-8AF5-CDE5C0E076CA"><title>Hardware
implementers</title><p>If you are a device creator or are adapting
the DMA Framework for your DMA controller, you must implement the
Platform Specific Layer.</p><ul>
<li><p>The hardware interface is explained in the <xref href="GUID-6873E764-4132-46C8-8444-6301CF4D2033.dita">DMA Hardware Interface</xref></p></li>
<li><p>The hardware specific functions are implemented in the platform
specific layer and the implementation is explained in the <xref href="GUID-95A33491-17AC-4F12-948E-A1352ADDA483.dita">DMA Implementation
Guide</xref></p></li>
<li><p>Testing the implementation is described in the <xref href="GUID-C2114C7B-705C-4527-836A-C6E72227111A.dita">DMA Testing Guide</xref></p></li>
</ul></section>
</conbody></concept>