Adaptation/GUID-C9923DF3-8425-4EB4-8066-FB5A92A85F5B.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-C9923DF3-8425-4EB4-8066-FB5A92A85F5B" xml:lang="en"><title>Adaptation Process Guide</title><shortdesc>Adaptation is the process of porting a platform on to a
new hardware configuration. The existing process requires developers
to write new hardware abstractions for any changes in the hardware
configuration. Platform services provide a simple standard interface
that reduces the adaptation time for a given hardware component.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-2CD8042D-F591-430B-8A07-B22502C908DD"><title>Hardware </title><p>A hardware component can be added to introduce a new feature or
create a new variant of an existing feature. Mobile phones are developed
with various form factors, a new variant is created for each form
factor. </p><p>A particular new piece of hardware may require several
platform services to be used to support all the functionality of that
hardware. A camera may provide photos and video streams and require
the use of a GPIO platform service to configure the camera resolution,
to set focal distance, or to trigger the shutter.</p><fig id="GUID-D88555D3-7BC1-49AA-BC14-0FAE8BDE0475">
<title>Basic blocks of an adaptation</title>
<image href="GUID-5392507E-45FF-4B20-B257-E58E23685295_d0e410_href.png" placement="inline"/>
</fig></section>
<section id="GUID-90AED82D-2F1B-4FF4-8484-EDF00743A58A"><title>Platform
services</title><p>Platform services are intended to be platform agnostic
and aim to reduce the porting time of hardware adaptation from one
platform to other. Platform services can be broadly classified into
two categories:</p><ol>
<li id="GUID-AC4E61B7-7124-46C6-A4CE-D79AAE733CD6"><p>Platform services
that provide a service to other platform services.</p></li>
<li id="GUID-8F6EF6E1-C8A5-4470-A913-54DB04FB833E"><p>Platform services
that use various kernel services and other platform services to drive
a hardware component.</p></li>
</ol><fig id="GUID-BAF6CE9B-80C3-4BC2-B495-FB24F871ED00">
<title> Types of platform service</title>
<image href="GUID-14B65BE7-A166-48B6-B43D-DFF267F87F9E_d0e433_href.png" placement="inline"/>
</fig><p>The adaptation developer should identify the platform services
 required to implement the new hardware. Some platform services may
already be implemented for other hardware and so it may be a simple
matter of reusing another implementation with minor modifications
for your particular component.</p></section>
<section id="GUID-39421865-C5D6-4FA6-8821-DE09FA1F4837"><title>Hardware
configurations</title><p>The adaptation will use certain hardware
configurations and some of the configuration parameters can be reused.
Reusable hardware configurations can be stored in a repository called
the Hardware Configuration Repository (HCR). The HCR allows the configurations
to be stored in the repository during various stages of the device
creation. The HCR platform service provides APIs to the kernel and
device drivers to read the values stored in the repository. For more
information, see the <xref href="GUID-14F5433A-16F4-4F01-8A7B-C8E26F46C98B.dita">HCR Platform Service</xref> documentation.</p></section>
<section id="GUID-6E9C4D9C-E0ED-44E8-84BE-49383DA26A15"><title>Implementation</title><p>The adaptation developer needs to know the specifications to implement
a hardware on the device. The implementation process involves the
identification of other services that must be implemented to support
a hardware. The other services may be provided by other platform services,
kernel extensions or drivers of other hardware components.</p></section>
<section id="GUID-1AE8935F-E212-4D13-B7D7-47A5C7D14101"><title>Platform
service compliance</title><p>Once the hardware component is implemented,
the developer must ensure that the implementation conforms to the
relevant platform service compliance testing. If the test fails then
the adaptation code should be modified until the tests pass. </p></section>
<section id="GUID-1E15BAC5-45DC-4550-AFC3-5CF72B72E2E5"><title>Adaptation
process</title><p>The adaptation process can be summarized as:</p><ol>
<li id="GUID-14817153-B03B-40EE-BACB-EAF2D66D3575"><p>Identify the
hardware</p></li>
<li id="GUID-3D250941-5BC5-4310-AB66-FFE520D381FB"><p>Identify the
platform services required to implement the hardware component</p></li>
<li id="GUID-A66BEC8A-7096-4506-9F5D-30AB793E165E"><p>Identify the
dependencies</p></li>
<li id="GUID-F381E27C-27B0-44D1-9592-350F73C1C63F"><p>Identify the
required interfaces to be implemented</p></li>
<li id="GUID-FD30A917-2A08-4575-8FE5-D8A50FF0779A"><p>Implement the
required interfaces</p></li>
<li id="GUID-F161C4E8-922F-41B1-A1BF-F9AB4B1339CA"><p>Build and test
the interfaces</p></li>
<li id="GUID-B7747558-12DD-420E-824C-7B6C0524E781"><p>Modify the implementation,
if required</p></li>
</ol><fig id="GUID-F0B99DE7-32BF-4C55-B3A4-5632D89DAF39">
<title>Adaptation process flowchart</title>
<image href="GUID-04FF36CE-DEFA-45DC-BAAF-77F3BB649AFF_d0e499_href.png" placement="inline"/>
</fig></section>
</conbody><related-links>
<link href="GUID-D5EE0A17-2246-4CB3-9CE5-538F1E01F8D4.dita"><linktext>What
is Adaptation?</linktext></link>
<link href="GUID-95BD3650-08CB-407D-969E-DFDB39B2FEFC.dita"><linktext>What
is a Platform Service?</linktext></link>
<link href="GUID-A74F0245-1A37-41C8-B0E9-63AF858EE4B6.dita"><linktext>Platform
Services</linktext></link>
</related-links></concept>