
©Copyright 2000-2007 SD Card Association
SDIO Simplified Specification Version 2.00
33
Field
Type
Description
FSx
R/W
Select Function bits 3:0 These four bits are used to select a function number (0-7) or
the memory of a combo card (8) for Suspend/Resume. There are 2 means to write
the value of FSx. First, an I/O writes to the register in the CCCR and second, a new
I/O command causes the FSx to be set to the function number in that command. The
value of FSx shall remain until overwritten. If a function or memory is currently
suspended, the writing of it’s number to FSx shall re-start (resume) the data transfer
operation When reading FSx, the value returned shall be the number of the currently
addressed function. Note that when reading FSx, if the Bus Status is 0 (BS=0), the
FSx value is undefined. The FSx bits are coded as follows:
FSx Current
Transaction
0000
Transaction of function 0 (CIA)
0001-0111
Transaction to functions 1-7
1000
Transaction of memory in combo card
1001-1111
Not defined, reserved for future use
If SBS=0 these bits shall be R/O.
DF
R/O
Resume Data Flag: A data transaction is resumed by writing its number to FSx. Once
the transaction is resumed, the DF indicates if more data will be transferred. If DF is
cleared to 0, then no additional data will be transferred after the function or memory is
resumed. If DF is set to 1, then there is more data to transfer that will begin after the
function or memory in resumed. The DF flag can be used to control the interrupt cycle
in 4-bit mode. If DF=1, there is more data to transfer after restoring the function. In
this case, the interrupt cycle should be disabled. If DF=0, the function or memory was
suspended at end of data transfer (during busy). In this case, no data transfer shall
begin after resume so the host can detect a start interrupt cycle after restore. When
resuming, if the suspended function cannot continue data transfer the card shall
return DF=0 to abort the transfer.
EXx
R/O
Execution Flag bits 7:0 These bits are used by the host to determine the current
execution status of all functions (1-7) and memory (0). The bit is set to 1 for each
function or memory that is currently executing a command. The EXx bits tell the host
that a function or memory is currently executing a command so no additional
command should be issued to that function/memory. These bits are only defined if
SBS=1. This bit is set if the function is active (either currently executing or
suspended). If SBS=0 these bits shall be read as zero.
RFx
R/O
Ready Flag bits 7:0 These bits tell the host the read or write busy status for functions
(1-7) and memory (0). If a function or memory is executing a write transaction, an RFx
bit cleared to 0 indicates the function/memory is busy and not ready to accept more
data. If the RFx bit is set to 1, then the function/memory can accept write data. If a
function/memory is executing a read command, if the RFx bit is cleared to 0, it
indicates that read data is NOT available. If the bit is set to 1, it indicates that read
data is ready to be transferred. These bits are only defined if SBS=1. Setting a bit to 1
indicates the function is ready to accept the resume command. There are two
conditions where the function will set the bit to 1. One is when the function (executing
or suspended) is ready to continue data transfer. The other is when the suspended
function cannot continue data transfer. If SBS=0 these bits shall be read as zero.
FN0 Block
Size
R/W
This 16-bit register sets the block size for I/O block operations for Function 0 only. If
this card does not support I/O block operations (SMB=0), then this register becomes
read-only and shall always read 0x0000. The maximum block size is 2048 (0x0800)
and the minimum is 1. At power-up or reset, this register shall be initially loaded with a
value of 0x0000. The host is responsible for setting the appropriate value for the
block size supported by function 0. This pointer is stored in little-endian format (LSB
first).