beautypg.com

Avago Technologies LSI53C896 User Manual

Page 62

background image

2-34

Functional Description

Version 3.3

Copyright © 1998–2003 by LSI Logic Corporation. All rights reserved.

register, then the least significant byte or the most significant
byte in the SODR register is full.

2.2.13.3 Asynchronous SCSI Receive

Step 1.

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

Chip Test Five (CTEST5)

register cleared), look at the DFIFO

and

DMA Byte Counter (DBC)

registers and calculate whether

there are bytes left in the DMA FIFO. To make this calculation,
subtract the seven least significant bits of the DBC register from
the 7-bit value of the

DMA FIFO (DFIFO)

register. AND the

result with 0x7F for a byte count between zero and 112.

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

Chip Test Five (CTEST5)

register is set), 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 CTEST5 register and bits [7:0] of the

DMA FIFO (DFIFO)

register. AND the result with 0x3FF for a

byte count between zero and 944.

Step 2.

Read bit 7 in the

SCSI Status Zero (SSTAT0)

and

SCSI Status Two (SSTAT2)

registers to determine whether any

bytes are left in the

SCSI Input Data Latch (SIDL)

register. If

bit 7 is set in the SSTAT0 or SSTAT2 registers, then the least
significant byte or the most significant byte is full.

Step 3.

If any wide transfers have been performed using the
Chained Move instruction, read the Wide SCSI Receive bit
(

SCSI Control Two (SCNTL2)

, bit 0) to determine whether a

byte is left in the

SCSI Wide Residue (SWIDE)

register.

2.2.13.4 Synchronous SCSI Receive

Step 1.

If the DMA FIFO size is set to 112 bytes, 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 zero and 112.

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

Chip Test Five (CTEST5)

register is set), 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 CTEST5 register and bits [7:0] of the