5 receive buffer descriptor format, Section 2.5.5 – Texas Instruments TMS320TCI6486 User Manual
Page 37

www.ti.com
EMAC Functional Architecture
2.5.5
Receive Buffer Descriptor Format
A receive (RX) buffer descriptor (
) is a contiguous block of four 32-bit data words aligned on a
32-bit boundary that describes a packet or a packet fragment.
shows the receive descriptor described by a C structure.
Figure 13. Receive Descriptor Format
(a) Word 0
31
0
Next Descriptor Pointer
(b) Word 1
31
0
Buffer Pointer
(c) Word 2
31
16
15
0
Buffer Offset
Buffer Length
(d) Word 3
31
30
29
28
27
26
25
24
SOP
EOP
OWNER
EOQ
TDOWNCMPLT
PASSCRC
JABBER
OVERSIZE
23
22
21
20
19
18
17
16
FRAGMENT
UNDERSIZED
CONTROL
OVERRUN
CODEERROR
ALIGNERROR
CRCERROR
NOMATCH
15
0
Packet Length
Example 2. Receive Descriptor in C Structure Format
/*
// EMAC Descriptor
//
// The following is the format of a single buffer descriptor
// on the EMAC.
*/
typedef struct _EMAC_Desc {
struct _EMAC_Desc *pNext;
/* Pointer to next descriptor in chain */
Uint8
*pBuffer;
/* Pointer to data buffer */
Uint32
BufOffLen;
/* Buffer Offset(MSW) and Length(LSW) */
Uint32
PktFlgLen;
/* Packet Flags(MSW) and Length(LSW) */
} EMAC_Desc;
/* Packet Flags */
#define EMAC_DSC_FLAG_SOP
0x80000000u
#define EMAC_DSC_FLAG_EOP
0x40000000u
#define EMAC_DSC_FLAG_OWNER
0x20000000u
#define EMAC_DSC_FLAG_EOQ
0x10000000u
#define EMAC_DSC_FLAG_TDOWNCMPLT
0x08000000u
#define EMAC_DSC_FLAG_PASSCRC
0x04000000u
#define EMAC_DSC_FLAG_JABBER
0x02000000u
#define EMAC_DSC_FLAG_OVERSIZE
0x01000000u
#define EMAC_DSC_FLAG_FRAGMENT
0x00800000u
#define EMAC_DSC_FLAG_UNDERSIZED
0x00400000u
#define EMAC_DSC_FLAG_CONTROL
0x00200000u
#define EMAC_DSC_FLAG_OVERRUN
0x00100000u
#define EMAC_DSC_FLAG_CODEERROR
0x00080000u
#define EMAC_DSC_FLAG_ALIGNERROR
0x00040000u
#define EMAC_DSC_FLAG_CRCERROR
0x00020000u
#define EMAC_DSC_FLAG_NOMATCH
0x00010000u
37
SPRUEF8F – March 2006 – Revised November 2010
C6472/TCI6486 EMAC/MDIO
Copyright © 2006–2010, Texas Instruments Incorporated