
88
3.0 Functional Description
3.5 Reassembly Coprocessor
Bt8230
ATM Segmentation and Reassembly Controller—SAR
N8230DS1F
streaming and message modes. In message mode, a status entry is written upon
the completion of the CPCS checks performed on a complete CPCS. In streaming
mode, a status entry is written upon filling a cell buffer in order to allow the host
to start processing a CPCS-PDU before the complete PDU is received. In this
case, the STRM field in the status queue is written to indicate that the connection
is in streaming mode and whether or not the buffer contains a BOM or EOM cell.
The CPCS_LENGTH and PDU_CHECKS fields (not including the TO bit) are
valid only for a cell buffer that contains the last cell of a CPCS-PDU. The
BUFF_ADDR field points to the beginning of each buffer.
The host processes a status entry by maintaining a read pointer to the circular
status queue. The host reads the status entry pointed to by the read pointer and
then writes the Owner Bits (OB) of the status entry to a logical zero and incre-
ments its read pointer. The host performs the necessary functions to process the
cell buffer(s) referenced by the status entry. If the cell buffer firewall is enabled
(FWALL_EN bit in RSM_CTRL), the host must check the CBUFF_CNT field in
the status entry. If the value is nearing zero, the host needs to write more credit for
the channel in the Reassembly Firewall Register [RSM_FW; 0x84]. It then reads
the owner bits of the next status entry to determine if more status processing is
needed. Both owner bits must be set to one for the host to process the status entry.
The host continues this process until it has read an OB at a logical zero.
The host must also maintain a read pointer to the free buffer queue in local
memory. After processing the Status Queue, the host reads the OB of the free
buffer queue entry pointed to by its read pointer. If the OB is a logical one, the
host writes a new address pointer and length entry and writes the OB to a logical
zero. The host continues this process until it has read an OB at a logical zero.
The host processes the linked cell buffers by reading the contents of each
buffer until a NULL next pointer is encountered. This signals that the last cell
buffer of the linked buffers has been reached.
3.5.7 Status Queue Full Condition
The OBs of the current status entry are read by the Bt8230 before the status is
written. If either bit is a logical one, the status entry is not written and an error is
reported on the RSM_HS_FULL bit in the HOST_ISTAT0 and LP_ISTAT0 regis-
ters. The reassembly coprocessor also halts operations. The host may be option-
ally interrupted by setting the EN_RSM_HS_FULL bit in the Host Interrupt
Mask Register [HOST_IMASK0; 0xCC]. The host then needs to update the status
queue and set the RSM_EN bit in order to restart the reassembly coprocessor. The
reassembly coprocessor will then reread the OB bits of the current status entry
and continue processing. The full buffer protection can be disabled by setting the
RSM_HS_DIS bit in the RSM_CTRL register.
3.5.8 Cell Buffer Queue Empty Condition
The cell buffer queue empty condition occurs when there are no available cell
buffers in the free buffer queue. The owner bit of the current free buffer queue is
read before a cell buffer is obtained. If the bit is at a logical one, the reassembly
coprocessor terminates processing and sets either the RSM_HF_EMPT or
RSM_LF_EMPT bit in the HOST_ISTAT0 or LP_ISTAT0 registers, respectively.
The host may be optionally interrupted by setting the EN_RSM_HF_EMPT bit in