Symbian3/PDK/Source/GUID-9BBDFF77-5E2C-4E13-BEB3-716CC80B3375.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Wed, 31 Mar 2010 11:11:55 +0100
changeset 7 51a74ef9ed63
parent 5 f345bda72bc4
permissions -rw-r--r--
Week 12 contribution of API Specs and fix SDK submission

<?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-9BBDFF77-5E2C-4E13-BEB3-716CC80B3375" xml:lang="en"><title>SDIO Implementation
Overview</title><shortdesc>How to port the SDIO Controller for your platform to provide the
SDIO adaptation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The SDIO implementation shares most of its functionality with the Secure
Digital (SD) Controller, which in turn extends the MultiMedia Card (MMC) Controller.
SDIO adds support for data transfer between Input/Output hardware included
on SDIO cards. The SD stack is used to access memory functions on SDIO combined
(or combo) cards. The SDIO Controller recognizes SDIO cards, extends the set
of available commands, and provides an API so that other drivers can access
the card.</p>
<p>Providing an SDIO adaptation for your platform means porting the SDIO Controller.
This is done by implementing the SDIO functions of the Platform-Specific Layer
(PSL).</p>
<section id="GUID-64516BCF-2245-46DF-9E7F-FFC18AC7F691"><title>Prerequisites</title><p>SDIO
depends on SD and MMC: the SDIO protocol is a super-set of the SD protocol
(and of the MMC protocol). Therefore, in addition to the SDIO standard, you
need to know about the following:<ul>
<li><p>SD (Secure Digital)</p></li>
<li><p>MMC (MultiMedia Card)</p></li>
</ul></p><p>Moreover, you must have ported the underlying SD Controller to
your platform before doing so for SDIO. See the following porting guides:<ul>
<li><p><xref href="GUID-E194A923-99E7-5DC1-BB78-D050A4793A60.dita">SD Controller
PSL Implementation</xref></p></li>
<li><p><xref href="GUID-86082C0C-B0EE-5E7C-85B4-4A509066012F.dita">MMC Porting
Implementation Tutorial</xref></p></li>
</ul></p>     </section>
<section id="GUID-A6598353-0AC5-4DB0-82AD-C2F397CB5CD0"><title>Architecture</title><p>The
following diagram illustrates the implementation of the SDIO extension for
the MMC Controller. The classes in green provide the hardware interface and
the classes in blue implement the platform-specific functions.</p><fig id="GUID-AA66D99B-9EF2-4803-8D43-A3BDA180C9C9">
<title>SDIO Controller classes</title>
<image href="GUID-D5030CC5-1FC1-40F3-9D68-4A454B25C58B_d0e322087_href.png" placement="inline"/>
</fig></section>
<section id="GUID-20DF01A9-64AF-45E6-8F22-2E384F4177EA"><title>Implementation</title>The
Platform-Independent Layer (PIL) of the SDIO Controller is made up from three
sets of files described in the following table:<p><table id="GUID-54A82958-4168-42CD-81DE-466CEA0FEEFC">
<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
<thead>
<row>
<entry valign="top">Standard</entry>
<entry valign="top">Source code location</entry>
</row>
</thead>
<tbody>
<row>
<entry>MMC</entry>
<entry><p><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc</filepath></p><p>See
also <xref href="GUID-40F2BC43-5022-5F4E-B445-56FEF43FEB8B.dita">Code Organisation</xref> in
the MMC section.</p></entry>
</row>
<row>
<entry>SD</entry>
<entry><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/</filepath><p>Also
see <xref href="GUID-E194A923-99E7-5DC1-BB78-D050A4793A60.dita#GUID-E194A923-99E7-5DC1-BB78-D050A4793A60/GUID-59DA32AA-97F3-4001-9B6F-887E986C633D">Source
Code</xref> in the SD section.</p></entry>
</row>
<row>
<entry>SDIO</entry>
<entry><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdio/</filepath></entry>
</row>
</tbody>
</tgroup>
</table></p><p>The Platform-Specific Layer (PSL) should be located in a variant
directory and have a similar folder hierarchy to the PIL. It should provide
the following implementations:<ul>
<li><p>Stack</p></li>
<li><p>Power Supply Unit (PSU)</p></li>
</ul> </p></section>
</conbody></concept>