31.7.1.3 Transmit Buffer List

Transmit data is read from areas of data (the buffers) in system memory. These buffers are listed in another data structure that also resides in main memory. This data structure (Transmit Buffer Queue) is a sequence of descriptor entries as defined in the table “Transmit Buffer Description Entry”.

The Transmit Buffer Queue Pointer register points to this data structure.

To create this list of buffers:

  1. Allocate a number (N) of buffers of between 1 and 2047 bytes of data to be transmitted in system memory. Up to 128 buffers per frame are allowed.
  2. Allocate an area 8N bytes for the transmit buffer descriptor list in system memory and create N entries in this list. Mark all entries in this list as owned by ETH, i.e., bit 31 of word 1 set to 0.
  3. Mark the last descriptor in the queue with the wrap bit (bit 30 in word 1 set to 1).
  4. Write address of transmit buffer descriptor list and control information to ETH register transmit buffer queue pointer.
  5. The transmit circuits can then be enabled by writing to the Network Control register.
Note: The queue pointers must be initialized and point to USED descriptors for all queues including those not intended for use.