|
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-A849B353-76E5-5AD6-851A-AF18C66AED48" xml:lang="en"><title>Generic |
|
13 Driver Support Overview</title><shortdesc>Generic driver related concepts in Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-7-1-14-1-1-12-1-4-1-3-1"><title>Architecture</title> <p>The |
|
15 role of a generic device driver is to give a user-side application access |
|
16 to peripheral resources without exposing the operation of the underlying hardware. |
|
17 A device driver is effectively an add-on to the kernel, and implements a polymorphic |
|
18 interface defined by the kernel. It resides on the kernel side and therefore |
|
19 has the same access rights, uses the kernel heap and links to the kernel, |
|
20 so that it can call kernel functions. Typically, hardware indicates completion |
|
21 of an operation by generating an interrupt. This is handled by an Interrupt |
|
22 Service Routine (ISR) provided by the driver. An ISR is restricted in what |
|
23 it can do, and must complete quickly. So it is normal for it to schedule a |
|
24 Delayed Function Call (DFC) which at some later time runs in the context of |
|
25 a kernel-side thread. Device driver services are generally asynchronous. A |
|
26 device driver includes: </p> <ul> |
|
27 <li id="GUID-DE0F5D5C-B3C2-547D-BE5B-EA80FE290A20"><p>A user-side API </p> </li> |
|
28 <li id="GUID-33122E07-9C29-5138-8FBD-D8B34195091D"><p>Two kernel-side DLLs, |
|
29 each of which exports a single factory function at ordinal 1 to create the |
|
30 necessary kernel-side objects, namely </p> <ul> |
|
31 <li id="GUID-33F58387-8EB1-559B-9410-F06F76DA436C"><p>Logical device driver |
|
32 DLL with a file name extension <codeph>.ldd</codeph> </p> </li> |
|
33 <li id="GUID-ED88F823-7883-5BEC-8E50-728F59901D05"><p>Physical device driver |
|
34 DLL with a file name extension .pdd </p> </li> |
|
35 </ul> </li> |
|
36 </ul> </section> |
|
37 <section id="GUID-A51AA612-F9DC-4A57-A110-BABB0002B624"><title>Components</title> <p>The |
|
38 following components make up the generic driver support collection: </p> <ul> |
|
39 <li id="GUID-10D21882-F873-5A7A-BF95-1099CF2D1105"><p>Generic Board Support |
|
40 Packages </p> </li> |
|
41 <li id="GUID-3537A6C7-9DA1-57D8-9C41-BA15A7647979"><p>Media Drivers </p> </li> |
|
42 <li id="GUID-0DDB7C2E-2231-5C12-9650-5BEA71A21A89"><p>SD Card 3C Driver </p> </li> |
|
43 <li id="GUID-60CCAEA4-0260-55DB-AD7E-4565C9866A9F"><p>SD Card 4C Driver </p> </li> |
|
44 <li id="GUID-D196EB31-A9A9-591D-B193-D51A51CBF36C"><p>System On Chip ASSP </p> </li> |
|
45 </ul> </section> |
|
46 <section id="GUID-B6DCB613-80AF-416C-A8E2-3321CE02C1C6"><title>Using Generic |
|
47 Driver Support</title> <ul> |
|
48 <li id="GUID-F905C135-E1B0-5AB1-A131-5136CC4B45F7"><p>Generic Board Support |
|
49 Packages - Generic Board Support Packages provides generic code for DMA framework, |
|
50 power management and digitizer. </p> </li> |
|
51 <li id="GUID-44105C97-F2CD-597C-8645-2A3556B711AE"><p>Media Drivers - The |
|
52 Media Drivers collection provides the physical device drivers, called media |
|
53 drivers, and associated libraries that manage storage media hardware. Some |
|
54 media drivers have platform specific layers that a base port can implement |
|
55 for particular types of storage hardware. </p> </li> |
|
56 <li id="GUID-1A009040-46D7-5BE9-A31E-CECBF3FC0DF4"><p>SD Card 3C Driver - |
|
57 SD Card 3C Driver provides media drivers and generic (PIL) parts of the stack |
|
58 for accessing Secure Digital flash memory cards. </p> </li> |
|
59 <li id="GUID-813297BC-3DC3-519A-9193-EACB6DDFBA2F"><p>SD Card 4C Driver - |
|
60 SD Card 4C Driver provides media drivers and generic (PIL) parts of the stack |
|
61 for accessing 4C type Secure Digital flash memory cards. </p> </li> |
|
62 <li id="GUID-A424393A-EDA6-524A-9117-6AFB8595EF2D"><p>System On Chip ASSP |
|
63 - System On Chip ASSP contains source for common hardware peripherals that |
|
64 may be used by multiple BSPs. </p> </li> |
|
65 </ul><note> 4C and 3C type SD card drivers are split, as they are available |
|
66 under different licenses.</note> </section> |
|
67 </conbody><related-links> |
|
68 <link href="GUID-52371DAB-A231-558C-B3E6-220DAAEE566B.dita#GUID-52371DAB-A231-558C-B3E6-220DAAEE566B/GUID-D25228C5-D51E-54A3-A5D0-0B68A9E8E7C8"> |
|
69 <linktext>Logical Device Drivers and Generic Driver Support</linktext> |
|
70 </link> |
|
71 </related-links></concept> |