User’s Guide
SanDisk SDK
SD Audio SDDK-07
Security Manager SDDK-06
SD Device Driver and File System SDDK-05
Revision 1.0
October 2003
140 Caspian Court • Sunnyvale, CA 94089 • Phone: 408-542-0500 • Fax: 408-542-0503
SanDisk SDK
User’s Guide, Rev. 1.0
Table of Contents
1
2
3
Introduction ..........................................................................................................................1
SD-SDK Architecture Overview ........................................................................................2
SanDisk SDK Components .................................................................................................3
4
5
6
7
SD-SDK Directory Structure...............................................................................................5
Sample Application Installation ........................................................................................6
Known Problems and Limitations.....................................................................................8
Part Numbers........................................................................................................................9
© 2003 SanDisk Corporation
1
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
1 Introduction
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.
© 2003 SanDisk Corporation
1-1
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
2 SD-SDK Architecture Overview
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.
© 2003 SanDisk Corporation
2
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
3 SanDisk SDK Components
SD-Audio Layer
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
Fast Forward, Fast Backward support
© 2003 SanDisk Corporation
3
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
•
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.
© 2003 SanDisk Corporation
4
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
1. sdaudlib
2. sdbuild
3. uiapp
4. set32env
The uiapp directory is unnecessary if this package is used in any environment other than the Windows OS.
SD-SDK High-level Directory Structure
SD_SDK:
README
UIApp
. base
. config
. debug
. io
. Imc
. res
. SdApp
. Debug
.SdApp.exe
. res
SdAudLib
. Debug
. sdaudlib.lib
. Release
.sdaudlib.lib
SdBuild
. Fatfiles
. Header
. Intrface
. Oem
. oem.lib
. SD_Oem
. sdoem.lib
. Platform
. TstSampl
. README
. Security
. Tstsampl
. README
. security.lib
Set32Env
. set32.bat
© 2003 SanDisk Corporation
5
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
5 Sample Application Installation
The required components necessary to install the sample application include a PCI-SD board, Windows OS, and a
SD Card w/development key.
Running the Sample Application
Option 1
1. Unzip the SD_SDK package
2. Change directory to sd_sdk\uiapp\sdapp\debug
3. Run sdapp.exe
Note: Ensure that the SD Card is properly inserted and has at least one track in it.
Option 2
1. Follow SD_SDK installation guide to rebuild the sdapp.exe from source code
2. Run sdapp.exe
SD_SDK Installation Guide
The sequence enumerated below should be followed.
1. Install Visual C++ 6.0 Enterprise edition at the default folder.
2. Copy SD_SDK source file or unzip all the source file to C:\SD_SDK directory
3. Change config.sys file to include the following line: Shell=C:\command.com c:\ /p /e:8192
(see C:\SD_SDK\set32env\config.sys for reference)
4. Reboot machine
5. Setup environment variable for building library under DOS prompt
6. Type: cd C:\SD_SDK\set32env
set32
7. Build file system OEM.lib by typing:
cd C:\SD_SDK\sdbuilt\OEM
nmake clean
nmake
8. Build secure key system SD_OEM.lib :
type “cd C:\SD_SDK\sdbuild\SD_OEM”
modify sd_oem.c to include OEM device key info to the SDK system
type “nmake clean”
type “nmake”
© 2003 SanDisk Corporation
6
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
9. saf;ljk Build security system Security.lib by typing:
cd C:\SD_SDK\sdbuild\SECURITY
nmake clean
nmake
10. Build SD aduioAPI SdAudlib.lib by opening Visual C++ 6.0 sdaudlib.dsw workspace which is under
C:\SD_SDK\sdaudlib\sdaudlib.dsw and choose menu “rebuild all” under “Build” menu item.
You may need to set include path by choose menu “options” under “Tools” menu item. Add
“C:\SD_SDK\UIApp\LMC\XINGMP3\INCLUDE” to “Directories”.
11. Build SD download utility application SdApp.exe by opening Visual C++ 6.0 sdApp.dsw workspace which
is under
C:\SD_SDK\UIApp\sdApp\sdApp.dsw and choose menu “rebuild all” under “Build” menu item.
You may need to set include path by choose menu “options” under “Tools” menu item. Add
“C:\SD_SDK\UIApp\LMC\XINGMP3\INCLUDE” to “Directories”.
12. Launch SdApp.exe by open Visual C++ 6.0 sdApp.dsw workspace which is under
C:\SD_SDK\UIApp\sdApp\sdApp.dsw and choose “Execute SdApp.exe “ under Menu Build item.
Ensure that the path to sdaudlib.lib, and security.lib is included in the make file settings.
© 2003 SanDisk Corporation
7
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
6 Known Problems and Limitations
For the UIAPP, the following items are relevant.
•
•
SdApp.exe is tested on Window 98 only
Some of the songs, when being played, will be stuck due to the freeware source code
used in the SdApp. Just click forward(>>) will let you continue to play
•
•
Play function only supports MP3 songs, not AAC songs
When click forward(>>), the timer will display 4 seconds, not 2 second forwarded, but in
reality, the contents is only forwarded by 2 seconds
For the SD-Audio, the following items are not supported.
•
•
•
Modify, Add, and Deletion of Playlists is not supported
WMA audio format is not supported
Creating a new playlist manager, track manager, key manager is not supported in this
release
For the SD Secure Manager, the following items are relevant
•
The file date of xxx.key file (in secure area) is not being updated even though the content
of the file has been changed
© 2003 SanDisk Corporation
8
10/2003
SanDisk SDK
User’s Guide, Rev. 1.0
7 Part Numbers
•
•
•
SDDK-05: SD Device Driver and File System
This software component includes all the files under directory “SDBuild” except “SD_Oem”
directory and “Security” directory. With those files, you would be able to build “Oem.lib”.
SDDK-06: Security Manager SDK
This software component includes all the files under directory “SD_Oem” and directory
“Security”. With those files and “Oem.lib”, you would be able to build “Security.lib”.
SDDK-07: SD Audio SDK
This software component includes all the files under directory “SdAudLib”. With those files, you
would be able to build “sdaudlib.lib”.
SanDisk Corporation
Corporate Headquarters
140 Caspian Court
Sunnyvale, CA 94089
408-542-0500
FAX: 408-542-0503
© 2003 SanDisk Corporation
9
10/2003
|