
41
4 Asynchronous Command FIFOs
As described in Section 2, the TSB43AA82 has three FIFO types: asynchronous command FIFOs, configuration
ROM FIFOs, and DMA FIFOs. The FIFO types have maximum sizes of 378 quadlets, 126 quadlets, and 1182
quadlets, respectively. The following sections describe the optimized way to determine the sizes of the 3 FIFO types.
The asynchronous command FIFOs contain the FIFOs for the SBP-2 management and command ORB fetches and
retrievals, and general-purpose asynchronous FIFOs.
4.1
Sizes of Asynchronous Command FIFOs (total 378 quadlets)
MTQ:
management ORB transmit FIFO.
3 quadlets (fixed)
MRF:
management ORB receive FIFO.
15 quadlets (fixed)
CTQ:
command block ORB transmit FIFO. adjustable
CRF:
command block ORB receive FIFO.
adjustable
ATF:
asynchronous packet transmit FIFO. adjustable
ARF:
asynchronous packet receive FIFO.
adjustable
MTQ_Size(3 quadlets) + MRF_Size(15 quadlets) + CTQ_Size(3Ch) + CRF_Size(40h) + ATF_Size(2Ch)
+ ARF_Size(30h) = 378 quadlets.
Each FIFO size is set up with its respective FIFO size field in status registers 2Ch40h. Generally, it is recommended
that the initial setup size is not changed during operation. If a change is made, data within the group of FIFOs may
change, and each FIFO needs to be cleared.
4.1.1
MTQ/MRF
The MTQ/MRF is used for management ORBs. The MTQ has a fixed value of 3 quadlets and the MRF has a fixed
value of 15 quadlets (this includes the 1394 header and trailer)
4.1.2
CTQ/CRF
The CTQ/CRF is used for command ORBs receipt and transmission. The size of CTQ/CRF is determined by the
number of agents. CTQ size is calculated as below. Number of LOGIN is #LOGIN;
CTQ_SIZE = #LOGIN
× 3 [quadlet]
In addition, the size of CRF is calculated as below:
CRF_SIZE = #LOGIN
× (7 + COMMAND_ORB_SIZE) [quadlet]
COMMAND_ORB_SIZE is the size of an ORB in quadlets when it fetches a command. This is stated in logical unit
characteristics on the target ConfigROM. The size of COMMAND ORB should be the same as CORB-size on ORB
fetch control (44h). Because its default value is 8, the same as the value for SCSI, no adjustment is required for SCSI.
If the short format (CShtFmt = 1 at 44h bit 23) described in Section 4.5.2 is used for a response packet, the size of
CRF is calculated as follows:
CRF_SIZE = #LOGIN
× (3 + COMMAND_ORB_SIZE) [quadlet]
4.1.3
ATF/ARF
The remaining FIFO area is allocated to ATF/ARF. The ATF FIFO can manage only one packet, therefore the ATF
size is the size of a request packet.