beautypg.com

1 data paths – Avago Technologies LSI53C876E User Manual

Page 43

background image

SCSI Functional Description

2-21

The LSI53C876 automatically supports misaligned DMA transfers. A
536-byte FIFO allows the LSI53C876 to support 2, 4, 8, 16, 32, 64, or
128 Dword bursts across the PCI bus interface.

2.2.6.1 Data Paths

The data path through the LSI53C876 depends on whether data is being
moved into or out of the chip, and whether SCSI data is being transferred
asynchronously or synchronously.

Figure 2.4

shows how data is moved to/from the SCSI bus in each of the

different modes.

The following steps determine if any bytes remain in the data path when
the chip halts an operation:

Asynchronous SCSI Send –

Step 1.

If the DMA FIFO size is set to 88 bytes, look at the

DMA FIFO

(DFIFO)

and

DMA Byte Counter (DBC)

registers and calculate

if there are bytes left in the DMA FIFO. To make this calculation,
subtract the seven least significant bits of the

DMA Byte

Counter (DBC)

register from the 7-bit value of the

DMA FIFO

(DFIFO)

register. AND the result with 0x7F for a byte count

between 0 and 88.

If the DMA FIFO size is set to 536 bytes (using bit 5 of the

Chip

Test Five (CTEST5)

register), subtract the 10 least significant

bits of the

DMA Byte Counter (DBC)

register from the 10-bit

value of the DMA FIFO Byte Offset Counter, which consists of
bits [1:0] in the

Chip Test Five (CTEST5)

register and bits [7:0]

of the

DMA FIFO (DFIFO)

register. AND the result with 0x3FF

for a byte count between 0 and 536.

Step 2.

Read bit 5 in the

SCSI Status Zero (SSTAT0)

and

SCSI Status

Two (SSTAT2)

registers to determine if any bytes are left in the

SCSI Output Data Latch (SODL)

register. If bit 5 is set in the

SSTAT0 or SSTAT2 register, then the least significant byte or
the most significant byte in the

SCSI Output Data Latch (SODL)

register is full, respectively. Checking this bit also reveals bytes
left in the

SCSI Output Data Latch (SODL)

register from a

Chained Move operation with an odd byte count.