www.ti.com

EMAC Functional Architecture

2.5.5Receive Buffer Descriptor Format

A receive (RX) buffer descriptor (Figure 13) is a contiguous block of four 32-bit data words aligned on a 32-bit boundary that describes a packet or a packet fragment.

Example 2 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

SPRUEF8F –March 2006 –Revised November 2010

C6472/TCI6486 EMAC/MDIO

37

Submit Documentation Feedback

 

 

Copyright © 2006–2010, Texas Instruments Incorporated

Page 37
Image 37
Texas Instruments TMS320TCI6486 Receive Buffer Descriptor Format, Example 2. Receive Descriptor in C Structure Format