SD Bus Driver Design Guide

In this section

SD Card Driver Stack

Opening, Initializing and Closing an SD Card Bus Interface

Handling SD Card Interrupts

SD Card Requests

SD Card Hardware Identifiers

For information about Secure Digital (SD) device identification strings, see Identifiers for Secure Digital (SD) Devices.

Restrictions on SD Card Drivers

Certain restrictions apply to Secure Digital (SD) card device drivers that manage a function on an SD combo or multifunction card. The driver stacks for the various card functions on a multifunction card must operate independently of one another. To ensure this independence, the bus driver rejects the following operations:

  • SD commands that change the device state, such as SELECT_CARD.

  • SD I/O commands that specify function zero but are outside the range of the address specified in the function basic register (FBR).

  • SD I/O commands that specify a function number of a different device stack.

SD device drivers can manage the host controller's common register set and the state of the device by calling SdBusSubmitRequest with function requests of type SDRF_GET_PROPERTY and SDRF_SET_PROPERTY. For a description of these function request types, see SD_REQUEST_FUNCTION.

SD Bus Sample

This is a sample for a functional Secure Digital (SD) IO driver. The driver is written using the Kernel Mode Driver Framework. It is a driver for a generic mars development board that implements the SDIO protocol without additional functionality.

Download the Storage SDIO driver sample from GitHub.