
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
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 | C6472/TCI6486 EMAC/MDIO | 37 |
Submit Documentation Feedback |
|
|
Copyright ©