Texas Instruments TNETE211 Network Card User Manual


 
List Management
5-3
List Structures
can keep the transmit and receive channels continuously open by freeing up
buffers and relinking lists faster than frames are transferred by ThunderLAN.
This is important in receive operations where the Rx channel must be open
continuously to avoid losing frames from the network.
All list processing and management operations are done in host memory. The
driver only needs to access ThunderLAN’s internal registers when opening
transmit or receive channels, when acknowledging the number of frames that
it has processed, or when reading the controller statistics.
Figure 5–2. Linked List Management Technique
Pointer to 1
00000000h
Pointer to 2
Pointer to 1
Pointer to 3
00000000h
00000000h
Pointer to 3
Pointer to 2
Figure 5–2 is an example of a typical three-list management technique, where
the pointers are relinked sequentially. The lists are linked by pointing the for-
ward pointer in the previous list to the address of the next list.
The first list structure is shown on the left where list 1’s forward pointer points
to the physical address of list 2, and list 2’s forward pointer points to the physi-
cal address of list 3. List 3 has a forward pointer equal to 0x00000000h.
When ThunderLAN uses list 1, it updates the CSTAT field to show frame
completion. The driver must look at the CSTAT to determine when to update
the pointers. When the Frm_Cmp bit is set in the CSTAT, the driver can free
up the list and the buffers. It does so by clearing the CSTAT, setting the forward
pointer to 0, and writing the physical address of the forward pointer of the last
list in the chain. If done quickly enough, the driver can continue to append the
lists and implement a continuous transmit or receive channel. Figure 5–2
shows how the list pointers look during this appending process.