5 receive buffer descriptor format, Section 2.5.5 – Texas Instruments TMS320C645x DSP User Manual

Page 33

Advertising
background image

www.ti.com

2.5.5

Receive Buffer Descriptor Format

EMAC Functional Architecture

A receive (RX) buffer descriptor (

Figure 10

) 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 10. 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

SPRU975B – August 2006

Ethernet Media Access Controller (EMAC)/Management Data Input/Output (MDIO)

33

Submit Documentation Feedback

Advertising