Functional Description
14.3.2.4.1 CPPI Buffer Descriptors
The buffer descriptor is a central part of the 3PSW Ethernet Subsytem and is how the application software
describes Ethernet packets to be sent and empty buffers to be filled with incoming packet data.
Host Software sends and receives network frames via the CPPI 3.0 compliant host interface. The host
interface includes module registers and host memory data structures. The host memory data structures
are buffer descriptors and data buffers. Buffer descriptors are data structures that contain information
about a single data buffer. Buffer descriptors may be linked together to describe frames or queues of
frames for transmission of data and free buffer queues available for received data.
Note: The 8k bytes of Ethernet Subsystem CPPI RAM begin at address 0x4a102000 and end at
0x4a103FFF from the 3PSW perspective. The buffer descriptors programmed to access the CPPI RAM
memory should use the address range from 0x4a102000.
14.3.2.4.1.1 TX Buffer Descriptors
A TX buffer descriptor is a contiguous block of four 32-bit data words aligned on a 32-bit word boundary.
Figure 14-7. Tx Buffer Descriptor Format
Word 0
31
0
Next Descriptor Pointer
Word 1
31
0
Buffer Pointer
Word 2
31
16 15
0
Buffer Offset
Buffer Length
Word 3
31
30
29
28
27
26
25
21
20
19
18
17
16
SOP
EOP
Owner
EOQ
Teardown_Com
Pass
Reserved
To_Po
Reserved
To_Port_En
ship
plete
CRC
rt_En
15
11
10
0
Reserved
packet_length
14.3.2.4.1.1.1 CPPI Tx Data Word – 0
Next Descriptor Pointer
The next descriptor pointer points to the 32-bit word aligned memory address of the next buffer descriptor
in the transmit queue. This pointer is used to create 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. This 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. In this
latter case, the transmitter will halt on the transmit channel in question, and the software application may
restart it at that time. The software can detect this case by checking for an end of queue (EOQ) condition
flag on the updated packet descriptor when it is returned by the EMAC.
14.3.2.4.1.1.2 CPPI Tx Data Word – 1
Buffer Pointer
1187
SPRUH73H – October 2011 – Revised April 2013
Ethernet Subsystem
Copyright © 2011–2013, Texas Instruments Incorporated