Generic Driver Support Overview

Generic driver related concepts in Symbian platform.

Architecture

The role of a generic device driver is to give a user-side application access to peripheral resources without exposing the operation of the underlying hardware. A device driver is effectively an add-on to the kernel, and implements a polymorphic interface defined by the kernel. It resides on the kernel side and therefore has the same access rights, uses the kernel heap and links to the kernel, so that it can call kernel functions. Typically, hardware indicates completion of an operation by generating an interrupt. This is handled by an Interrupt Service Routine (ISR) provided by the driver. An ISR is restricted in what it can do, and must complete quickly. So it is normal for it to schedule a Delayed Function Call (DFC) which at some later time runs in the context of a kernel-side thread. Device driver services are generally asynchronous. A device driver includes:

  • A user-side API

  • Two kernel-side DLLs, each of which exports a single factory function at ordinal 1 to create the necessary kernel-side objects, namely

    • Logical device driver DLL with a file name extension .ldd

    • Physical device driver DLL with a file name extension .pdd

Components

The following components make up the generic driver support collection:

  • Generic Board Support Packages

  • Media Drivers

  • SD Card 3C Driver

  • SD Card 4C Driver

  • System On Chip ASSP

Using Generic Driver Support

  • Generic Board Support Packages - Generic Board Support Packages provides generic code for DMA framework, power management and digitizer.

  • Media Drivers - The Media Drivers collection provides the physical device drivers, called media drivers, and associated libraries that manage storage media hardware. Some media drivers have platform specific layers that a base port can implement for particular types of storage hardware.

  • SD Card 3C Driver - SD Card 3C Driver provides media drivers and generic (PIL) parts of the stack for accessing Secure Digital flash memory cards.

  • SD Card 4C Driver - SD Card 4C Driver provides media drivers and generic (PIL) parts of the stack for accessing 4C type Secure Digital flash memory cards.

  • System On Chip ASSP - System On Chip ASSP contains source for common hardware peripherals that may be used by multiple BSPs.

Note: 4C and 3C type SD card drivers are split, as they are available under different licenses.