LSI Logic Confidential
15-16
Serial I/O Port
Copyright © 2001, 2002 by LSI Logic Corporation. All rights reserved.
In host-polled mode, all read/write data is taken care of via update of the
SPI_TEMP register by either the host, SPARC processor, or the DMA
Engine. The HAEN bit in the SPI_CONTROL register is used in this
mode as a semaphore for host updates. The SPI bus will stall if the host
has not updated the SPI_TEMP register before the 4 bytes in the
SPI_TEMP register have been transmitted.
The DMA Engine of the Bus Bridge is required for programming the SPI
module for DMA.
When programming the SPI module for DMA, note that the DoMiNo
device differs from previous AViA@TV devices, such as the CL9311 and
CL9315.
Setting up SPI registers for DMA is similar to programming a host-polled
mode style transfer, with two additional requirements:
•
Both the TX and RX DMA channels must always be programmed (no
true unidirectional transfer).
•
The TX size must equal the RX size plus eight bytes.l
The reason for these requirements is that in a host-polled mode transfer,
the SPI_TEMP register is both written and read with data in a “ping-
pong” fashion. First, SPI_TEMP is written; as its bits are shifted out on
the pins, input data bits are shifted in. Once the entire word has been
sent out, SPI_TEMP can be read.
If the user wants to perform a unidirectional transfer (TX / RX), a dummy
buffer for the other channel (RX / TX) must be allocated, and the channel
must be enabled/serviced.
One valid example of matching TX/RX data sizes is a single TX buffer of
72 bytes, and 3 RX buffers of 8, 32, and 24 bytes spaced apart across
the SDRAM memory space (TX: x8000-x8048, RX: x8100-x8108, x8110-
x8130, x8150-x8168): the amount of data in the TX buffers must be eight
bytes more than is in the RX buffers (72 bytes TX, 64 bytes RX).
15.3 IDC Interface
The SIO_SDA (IDC Data Bus) and SIO_SCL (IDC Clock) signals are
used to interface the DMN-8600 to other devices. The IDC has DMA