Share via


SDIO Bus Driver Soft-Block Support (Windows Embedded CE 6.0)

1/6/2010

An SDIO bus driver determines if Soft-Block is enabled and implements Soft-Block support with minimal impact to true multi-block cards. If an SDIO card does not support multi-block operations and a multi-block operation is requested, the driver should attempt to separate the multi-block operation into single block operations, such as:

  • Initialization
    • Clear the block mode bit in the CMD 53 request
    • Save the original buffer pointer
    • Save the original register address
    • Save the original block count
  • Request initialization
    • Set the appropriate buffer pointer
    • Set the appropriate register address
    • Replace the block count with the block size for the appropriate function
    • Set the transfer length to zero
    • Issue the request
  • Request completion for each block
    • Exit Soft-Block loop on errors
  • Request restoration
    • Set the block mode bit in the CMD 53 request
    • Set the original buffer pointer
    • Set the total transfer length
    • Restore the original buffer pointer
    • Restore the original register address
    • Restore the original block count

Soft-Block support requires that the SD bus driver handle completion of requests from the host controller. Non-Soft-Block requests are immediately passed to the specified client or to the default SD bus driver completion handler. All Soft-Block requests require some initialization and segmentation processing. Additionally, most Soft-Block requests send multiple blocks, requiring the completion handler to start the processing of the next segment of the request until either an error occurs or the multi-block request is complete. When a Soft-Block request completes segmentation processing, the request restoration processing runs prior to passing the request to either the specified client or to the default SD bus driver completion handler.

See Also

Concepts

SDIO Client Driver Soft-Block Support
SDIO Host Controller Driver Soft-Block Support

Other Resources

SDIO Soft-Block Support