Secure Digital Card Error Recovery (Windows Embedded CE 6.0)
1/6/2010
Secure Digital (SD) card error recovery provides a bus driver error recovery engine that can be called by a client driver, host controller driver, or an outside application. The error recovery engine can be used to recover a bus driver from a possible dead-response card or client driver by resetting the appropriate slot. The SD card error recovery engine also supports Secure Digital I/O (SDIO) version 1.1 select, deselect and rest logic flow.
The SDSetCardFeature function has been updated to support the SD card error recovery engine. SD_CARD_FORCE_RESET, SD_CARD_SELECT_REQUEST, and SD_CARD_DESELECT_REQUEST have been added as possible values for the CardFeature parameter. For a combo or multi-function card, the select or deselect request is not performed until all function drivers make the request. However, function drivers are notified by the bus driver when a select or deselect request is made.
SDIO client drivers that implement the error recovery engine receive additional information on slot select and deselect transactions. The following list shows some of the additional information that can be used by a client driver:
- For combo or multi-function cards, if one function driver makes a select or deselect request, the other function drivers are notified by a SDCardSelectRequest or SDCardDeselectRequest event.
- Client drivers receive a SDCardBeginSelectDeselect event notification when the bus driver begins to select or deselect a card. This event informs the client driver that the slot will soon become inaccessible.
- Client drivers receive a SDCardDeselected event when the bus driver deselects a slot. This event informs the client driver that the slot is inaccessible.
- Client drivers receive a SDCardSelected event when the bus driver selects a slot. This event informs the client driver that the slot has been reset. If necessary, the client driver must send an initialization command sequence in order to complete the initialization process.