SD Card Overview

Description of SD card features available to application developers and what a device creator must write to provide SD card support.

SD memory cards (Secure Digital memory cards) are flash-based memory cards designed to provide secure high capacity data storage.

The SD controller supports the Simplified SD Physical layer specification version 2.0 which is owned by the SD Card Association and the SD Group.

The SD memory card standard is defined to be protocol forward compatible with MultiMediaCard version 2.11 and it is possible for a MultiMediaCard to be inserted into an SD memory card socket and host systems to support both types of card.


SD cards are based on MultiMediaCards (MMC) but with additional functionality detailed below. Symbian platform support for SD is built on top of the MMC support. This section describes the additional functionality available to applications using SD cards. This section also describes the additional work required to support SD cards.

Required background

You should be familiar with the following:

Key concepts and terms

An SD card is very similar to a MultiMediaCard (MMC) but with additional features to support high capacity, high speed, secure storage.

As SD cards are very similar to MMC, you should read the section on MMC Controller Architecture before reading the SD Controller documentation.


SD support is divided into two parts, the Platform Independent Layer (PIL) and the Platform Specific Layer (PSL).

The PIL is implemented as an E32 peripheral bus controller - EPBUSSD.DLL which is a kernel extension and extends the functionality of the matching MMC library EPBUSM.DLL. The EPBUSSD.DLL library consists of a generic peripheral bus layer, which is identical to the one used for MMC, and a generic SD card layer. The SD card layer is a superset of the MMC layer and derives additional classes for SD cards from the MMC classes. These derived classes support the additional features found in an SD card.

The additional functionality available in an SD card includes:

  • an optional 4-bit wide data bus

  • individual SD card addressing

  • support for card capacities of 4Gb and above

  • revised erase ranges allowing smaller ranges to be erased from an SD card

  • optional secure data area for DRM - the Symbian platform does not provide support for using the secure data area on an SD card.

You, as a device creator, will need to write the PSL. Implementing the PSL is described in SD Controller PSL Implementation.

Key Classes

The classes used for SD cards are SD specific versions of the classes used for the MMC cards and the main SD-related are listed here.

Class Description


The stack of memory cards, derived from DMMCStack. Uses the star topography to identify each SD card rather than the bus topography used by MMC. Also handles individual card initialization.


Derived from TMMCard but contains the erase sector size and any special formatting requirements for the SD card. Includes information from the SCR.

Typical uses

The typical uses for the SD card classes are the same as for MMC.