Figure 2-1 below shows the SDIO module design for the CC35xx.
As shown above, the physical SDIO (PHY
SDIO) module, including SDIO function #0, are located separately from function #1
which is used for the data transfer buffers. An OCP interface will enable access to
the different functions.
PHY SDIO is mainly responsible
for SDIO protocol handling:
- Function #0: Located
entirely in the PHY and is used for common configuration.
- Function #1: Dedicated for
data transfer. Like every SDIO function, it is assigned a 128 Kbytes register
address space for configuration and operation. The function #1 address space is
partitioned between the PHY SDIO (control) and the DATA SDIO module (Data path).
- Initializations
- SDIO command handling: the
PHY receives SDIO commands from the SDIO Host, parses them transmits the
relevant information of each command to the corresponding SDIO function.
- SDIO command response
generation: the PHY generates SDIO command responses and sends them to
the SDIO Host.
- Data transmission: SDIO
PHY transfers data from the SDIO host to the proper function (function #0 or #1)
and vice versa.
- CRC handling: In SDIO host
write direction, SDIO PHY checks each CRC that was sent by the SDIO host (at the
end of each data block / data transaction). In SDIO host read direction, the PHY
calculates the CRC of each block / data transaction and sends it to the SDIO
host.
- M33/DMA packets division to
blocks: In SDIO host read direction, SDIO PHY receives data from the TX
FIFO (Host read) and divides it to SDIO blocks.
- SDIO “busy” indication: In
SDIO host write direction, SDIO PHY may generate a “busy” indication according
to a request from the RX FIFO module.