Motorola MC68824 User Manual page 86

Token-passing bus controller
Table of Contents

Advertisement

2. Each FD in the free pool must be initialized as follows:
• Zero the confirmation/indication word (offset 0).
• Zero the receive status word (offset 2).
• Initialize the control word for next FD pointer (offset 4) with NPV (next pointer valid
bit) set to one or to zero depending on whether or not this is the last valid FD. Also,
W-FD (warning FD pool low bit) may be set to one or zero to enable the host to be
notified when the FD pool is low whenever applicable. W-FD must not be set in the
last FD.
• Initialize the next frame descriptor pointer (offset 6) if the next FD is valid; i.e., NPV
=
1.
3. The free buffer descriptor pool pointer located in the private area must be updated at ini-
tialization time or through the SET TWO WORDS command. This pointer must point to a
valid free BD. Refilling of the BD pool is accomplished by writing the pointer to a new BO
in the last BD.
4. Each BD in the free pool must be initialized as follows:
• Initialize the data buffer pointer (offset 2).
• Set LABD (last buffer descriptor bit) to one or zero in the control and offset word (offset
6), depending on whether or not this is the last buffer available in the free pool. The
TBC will not use the last buffer. Also, the offset in bytes from the head of the data
buffer to where actual data should be stored must be initialized.
• Load the data buffer length (offset 8) in bytes in bits 0 through 14. Bit 15 (W-BD) may
be set to one to indicate that the free BD pool is low. W-BD must never be set to one
in the last BD.
• Clear the receive indication word (offset OA)
• Initialize the next buffer descriptor pointer (offset OE) if the next BD is valid, i.e., LABD
=
O.
5. Memory space must be reserved for the data buffers pointed to by the BD's.
4.3.2 Reception Queues and Free Pools
Four queues are maintained for received frames -
one for each priority class. Note that these
queues may not be disabled by the host. At initialization time, the host must set the RX EOO
pointer for each access class. These pointers may be modified thereafter by using the SET TWO
WORDS command. The TBC will update these pointers upon completion of frame reception.
The host is responsible for creating and adding frame descriptors to the free pool. When the last
FD in the free pool has been used by the TBC (i.e., it has been linked to the appropriate receive
queue), the TBC keeps an internal pointer to this FD as its link to the free pool. Therefore, the
host must not remove the last FD from a receive queue. The host can add new FDs to the free
FD pool by writing the pointer to a new FD in the last FD in the pool and setting its NPV bit. The
TBC polls this last NPV bit on every received frame to see if the host has added FOs to an empty
pool.
The host is also responsible for creating and adding buffer descriptors to the free BD pool. The
TBC will not use the last buffer descriptor in the free pool. To add buffer descriptors to the pool,
the host writes the pointer to the BD of the new buffer in the last buffers BD, and clears its LABO
bit. The TBC polls this LABO bit on every received frame to see if the host has added buffers to
an empty BD pool.
Refer to Figure 4-7 for an illustration of the initialization of data structures by the host needed to
receive frames. This example only shows the linking for one access class because the mechanism
MC68824 USER'S MANUAL
MOTOROLA
4-13
II

Advertisement

Table of Contents
loading

Table of Contents