1 next descriptor pointer, 2 buffer pointer, 3 buffer offset – Texas Instruments TMS320TCI6486 User Manual
Page 35: 4 buffer length, 5 packet length, 6 start-of-packet (sop) flag
www.ti.com
EMAC Functional Architecture
2.5.4.1
Next Descriptor Pointer
The next descriptor pointer indicates the 32-bit word aligned memory address of the next buffer descriptor
in the transmit queue. The pointer creates a linked list of buffer descriptors. If the value of this pointer is
zero, then the current buffer is the last buffer in the queue. The software application must set this value
prior to adding the descriptor to the active transmit list. The pointer is not altered by the EMAC.
The value of pNext should never be altered once the descriptor is in an active transmit queue, unless its
current value is NULL. If the pNext pointer is initially NULL, and more packets need to be queued for
transmit, the software application may alter this pointer to point to a newly appended descriptor. The
EMAC will use the new pointer value and proceed to the next descriptor unless the pNext value has
already been read. If the pNext value has already been read, the transmitter will halt on the specified
transmit channel, and the software application may restart it then. The software can detect this issue by
searching for an end-of-queue (EOQ) condition flag on the updated packet descriptor when it is returned
by the EMAC.
2.5.4.2
Buffer Pointer
The buffer pointer is the byte-aligned memory address of the memory buffer associated with the buffer
descriptor. The software application must set this value prior to adding the descriptor to the active transmit
list. This pointer is not altered by the EMAC.
2.5.4.3
Buffer Offset
This 16-bit field indicates how many unused bytes are at the start of the buffer. For example, a value of
0000h indicates that no unused bytes are at the start of the buffer and that valid data begins on the first
byte of the buffer. A value of 000Fh indicates that the first 15 bytes of the buffer are to be ignored by the
EMAC and that valid buffer data starts on byte 16 of the buffer. The software application must set this
value prior to adding the descriptor to the active transmit list. This field is not altered by the EMAC.
Note that this value is only checked on the first descriptor of a given packet (where the SOP flag is set). It
cannot specify the offset of subsequent packet fragments. Also, as the buffer pointer may point to any
byte-aligned address, this field may be unnecessary, depending on the device driver architecture.
The range of legal values for this field is 0 to (Buffer Length - 1).
2.5.4.4
Buffer Length
This 16-bit field indicates how many valid data bytes are in the buffer. On single fragment packets, this
value is also the total length of the packet data to be transmitted. If the buffer offset field is used, the offset
bytes are not counted as part of this length. This length counts only valid data bytes. The software
application must set this value prior to adding the descriptor to the active transmit list. This field is not
altered by the EMAC.
2.5.4.5
Packet Length
This 16-bit field specifies the number of data bytes in the entire packet. Any leading buffer offset bytes are
not included. The sum of the buffer length fields of each of the packet's fragments (if more than one) must
be equal to the packet length. The software application must set this value prior to adding the descriptor to
the active transmit list. This field is not altered by the EMAC. This value is only checked on the first
descriptor of a given packet, where the SOP flag is set.
2.5.4.6
Start-of-Packet (SOP) Flag
When set, this flag indicates that the descriptor points to a packet buffer that is the start of a new packet.
For a single fragment packet, both the SOP and end-of-packet (EOP) flags are set. Otherwise, the
descriptor pointing to the last packet buffer for the packet sets the EOP flag. This bit is set by the software
application and is not altered by the EMAC.
35
SPRUEF8F – March 2006 – Revised November 2010
C6472/TCI6486 EMAC/MDIO
Copyright © 2006–2010, Texas Instruments Incorporated