SanDisk® Corporation general policy does not recommend the use of its products in life support applications where
in a failure or malfunction of the product may directly threaten life or injury. Per SanDisk Terms and Conditions of
Sale, the user of SanDisk products in life support applications assumes all risk of such use and indemnifies SanDisk
against all damages. See “Disclaimer of Liability.”
This document is for information use only and is subject to change without prior notice. SanDisk Corporation
assumes no responsibility for any errors that may appear in this document, nor for incidental or consequential
damages resulting from the furnishing, performance or use of this material. No part of this document may be
reproduced, transmitted, transcribed, stored in a retrievable manner or translated into any language or computer
language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual or otherwise,
without the prior written consent of an officer of SanDisk Corporation.
All parts of the SanDisk documentation are protected by copyright law and all rights are reserved.
SanDisk and the SanDisk logo are registered trademarks of SanDisk Corporation. CompactFlash is a U.S.
registered trademark of SanDisk Corporation.
Product names mentioned herein are for identification purposes only and may be trademarks and/or registered
trademarks of their respective companies.
SanDisk products are covered or licensed under one or more of the following U.S. Patent Nos. 5,070,032;
5,095,344; 5,168,465; 5,172,338; 5,198,380; 5,200,959; 5,268,318; 5,268,870; 5,272,669; 5,418,752; 5,602,987.
Other U.S. and foreign patents awarded and pending.
This release note contains information about the SanDisk SDK architecture, installation of SD_SDK and sample
application in Windows OS environment, system configuration supported by SD_SDK, and about known problems
and limitations. If you encounter any problem while installing or using SD_SDK, please check here to see if it is a
known problem.
This guide will give an overview of the SDK architecture, supported futures, SD-SDK directory structure,
installation of the sample application and SDK on Windows OS. Finally this guide will reveal any known problems
and/or limitations and Part Number information for ordering the individual software component.
The Secure Digital (SD) Memory Card offers protection of copyrighted materials such as digital music. Numerous
underlying security elements work together to ensure that protected content is shielded from unauthorized access.
To accelerate the design cycle for products utilizing the SD Memory Card, SanDisk offers the SD Software
Development Kit (SD-SDK). The SD-SDK contains all the software layers that developer need to integrate a host
platform such as a music player with a SD Memory Card. Tailoring a few of the SDK configuration options and
calling the appropriate SDK API functions are all that is necessary to enable a music player to retrieve song titles
and initiate playing music files.
The components include:
• FAT File System Engine: FAT file system support for accessing files in both the user and
protected areas of the SD Memory Card.
• SD Memory Card Device Driver: Provides support for low-level access to the SD
Memory Card for both normal MultiMediaCard-compatible commands and the SD
security commands
• SD Audio Software Layer: this layer contains intimate knowledge of the SD-Audio
standard. It formulates requisite security key values, parses related files in the user and
protected areas, and handles all aspects of decrypting/ playing protected content. It
carries out security-related processing by calling into the SanDisk Security Manger
(SSM) layer
• SanDisk Security Manager (SSM): Controls accesses that result in security commands
being generated to the SD Memory Card. Protects critical key values and authentication
file system elements.
• Application Program Interface (API): All functionality required by a typical music player
is easily achieved through this API library. These functions include the ability to:
mount/unmount volumes; retrieve play lists and track titles; play/stop/pause tracks; and
skip forwards/backwards within a given musical track
• Sample Music Player Application: This sample application, written in Visual C++ 6.0
Enterprise Edition, demonstrates how the SD-SDK (SD-Audio) services can be easily
incorporated into a music player application. It provides a sample GUI via which audio
content can be downloaded, viewed, and played.
Using the API shields host application software form the complexity of SD-Audio. Music player software that
controls the display and playing of play lists can accomplish these tasks by calling the API functions. There’s never
any need to deal directly with the internals of the functions, files, and data structures.
Supported Functionality with 1.0 Release
• SD-Audio navigation support
− This function’s behavior model is to return the number of play lists, play list’s name,
number of tracks in each play list, and track information for each play list
− This function also contains the list of available/free file number (AOBxxx.SA1) for
download purpose
− This function also contains links and information of a song that is stored in multiple
files (2 or more files)
− Handles the play list selection, and track selection
• Audio Playback support
− Support continues play of the entire tracks in the play lists
− Support single track selection playback
− Random track selection playback
− Also supports playback of all tracks that exists’ in the SD Card
• Delete Operation
− Multiple file deletion of the long song
− Single track deletion
• Download Operation:
− MP3 Audio format
− AAC Audio format
• Playback of long song that is required more that one SDA file format to store
− These files can be stored in sequence SDA files such as (AOB001.SA1,
AOB002.SA1, etc).
− These files can be stored out of order SDA files such as (AOB001.SA1,
AOB004.SA1, etc).
• Download of long song, that requires more than one SDA file format to store
− These files can be stored in sequence SDA files such as (AOB001.SA1,
AOB002.SA1, etc).
− These files can be stored out of order SDA files such as (AOB001.SA1,
AOB004.SA1, etc).
• Next Track, Previous track function is supported in this release
• At any given operational state, the maximum buffer required is 1K, except during the
download or playback states. These two depends on the host system
Security Manager Layer
This layer encapsulates the SD Security, and SD Secure Files System. Using the API, SD-Audio layer can access
this layer, and all the complexity of MKB process, AKE process, Bus Encryption/Decryption, and Audio Content
Encryption/Decryption is hidden from the application layer.
Supported Functionality with 1.0 Release
• AKE process is handled in this layer
• Bus Encryption/Decryption is performed immediately after each AKE process
successfully finished
• MKB process is handled in this layer, its been invoked during the SD-Audio initialization
• To support the download operations, generating title key method implemented in this
layer
• Title Key encryption/decryption
• Audio content encryption/decryption
• Secure file manipulation such as (open, read, delete, write, etc.) handled in this layer
• Required buffer in this layer is 1.5 Kbytes for internal use, this is need for the MKB
process after the MKB process is complete this layer only require 512 bytes for other
operations
File System Layer
This layer provides full FAT file system interface to SD card user area with API functions such as create, delete,
insert, merge files, sub-directories, file date/time, file attributes and volume labels.
Supported Functionality with 1.0 Release
• Support for FAT12, FAT16 and FAT32
• Support for short and long file names
Device Driver Layer
This layer handles all low-level I/O access to MMC card and SD card. It provides eight functions. They are:
xxx_init, xxx_drive_open, xxx_drive_close, xxx_read, xxx_write, xxx_erase, xxx_read_serial, where xxx is the
peripheral bus name, such as MMC or SPI.
Supported Functionality with 1.0 Release
• Hardware access to memory card is through SanDisk verilog host controller.
• SD protocol, MMC protocol are implemented and tested on the top of the verilog host
controller.
• SPI protocol is implemented but not tested on the top of the verilog host controller, due
to the limitation of the host controller in SPI mode.
4 SD-SDK Directory Structure
There are four directories under the SD_SDK directory.