]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / lwIP_Demo_Rowley_ARM7 / EMAC / Emac.h
1 //*----------------------------------------------------------------------------\r
2 //*         ATMEL Microcontroller Software Support  -  ROUSSET  -\r
3 //*----------------------------------------------------------------------------\r
4 //* The software is delivered "AS IS" without warranty or condition of any\r
5 //* kind, either express, implied or statutory. This includes without\r
6 //* limitation any warranty or condition with respect to merchantability or\r
7 //* fitness for any particular purpose, or against the infringements of\r
8 //* intellectual property rights of others.\r
9 //*----------------------------------------------------------------------------\r
10 //* File Name           : Emac.h\r
11 //* Object              : Emac header file\r
12 //* Creation            : Hi   11/18/2002\r
13 //*\r
14 //*----------------------------------------------------------------------------\r
15 #ifndef AT91C_EMAC_H\r
16 #define AT91C_EMAC_H\r
17 \r
18 #include "lwipopts.h"\r
19 \r
20 \r
21 /* Number of receive buffers */\r
22 #define NB_RX_BUFFERS                   20\r
23 \r
24 /* Size of each receive buffer - DO NOT CHANGE. */\r
25 #define ETH_RX_BUFFER_SIZE              128         \r
26 \r
27 /* Number of Transmit buffers */\r
28 #define NB_TX_BUFFERS                   ( MEMP_NUM_PBUF / 2 )   \r
29 \r
30 /* Size of each Transmit buffer. */\r
31 #define ETH_TX_BUFFER_SIZE              ( PBUF_POOL_BUFSIZE  )   \r
32 \r
33 /* Receive Transfer descriptor structure */\r
34 typedef struct  _AT91S_RxTdDescriptor {\r
35         unsigned int addr;\r
36         union\r
37         {\r
38                 unsigned int status;\r
39                 struct {\r
40                         unsigned int Length:11;\r
41                         unsigned int Res0:1;\r
42                         unsigned int Rxbuf_off:2;\r
43                         unsigned int StartOfFrame:1;\r
44                         unsigned int EndOfFrame:1;\r
45                         unsigned int Cfi:1;\r
46                         unsigned int VlanPriority:3;\r
47                         unsigned int PriorityTag:1;\r
48                         unsigned int VlanTag:1;\r
49                         unsigned int TypeID:1;\r
50                         unsigned int Sa4Match:1;\r
51                         unsigned int Sa3Match:1;\r
52                         unsigned int Sa2Match:1;\r
53                         unsigned int Sa1Match:1;\r
54                         unsigned int Res1:1;\r
55                         unsigned int ExternalAdd:1;\r
56                         unsigned int UniCast:1;\r
57                         unsigned int MultiCast:1;\r
58                         unsigned int BroadCast:1;\r
59                 }S_Status;              \r
60         }U_Status;\r
61 }AT91S_RxTdDescriptor, *AT91PS_RxTdDescriptor;\r
62 \r
63 \r
64 /* Transmit Transfer descriptor structure */\r
65 typedef struct _AT91S_TxTdDescriptor {\r
66         unsigned int addr;\r
67         union\r
68         {\r
69                 unsigned int status;\r
70                 struct {\r
71                         unsigned int Length:11;\r
72                         unsigned int Res0:4;\r
73                         unsigned int LastBuff:1;\r
74                         unsigned int NoCrc:1;\r
75                         unsigned int Res1:10;\r
76                         unsigned int BufExhausted:1;\r
77                         unsigned int TransmitUnderrun:1;\r
78                         unsigned int TransmitError:1;\r
79                         unsigned int Wrap:1;\r
80                         unsigned int BuffUsed:1;\r
81                 }S_Status;              \r
82         }U_Status;\r
83 }AT91S_TxTdDescriptor, *AT91PS_TxTdDescriptor;\r
84 \r
85 #define AT91C_OWNERSHIP_BIT             0x00000001\r
86 \r
87 /* Receive status defintion */\r
88 #define AT91C_BROADCAST_ADDR    ((unsigned int) (1 << 31))      //* Broadcat address detected\r
89 #define AT91C_MULTICAST_HASH    ((unsigned int) (1 << 30))      //* MultiCast hash match\r
90 #define AT91C_UNICAST_HASH          ((unsigned int) (1 << 29))  //* UniCast hash match\r
91 #define AT91C_EXTERNAL_ADDR         ((unsigned int) (1 << 28))  //* External Address match\r
92 #define AT91C_SA1_ADDR          ((unsigned int) (1 << 26))      //* Specific address 1 match\r
93 #define AT91C_SA2_ADDR          ((unsigned int) (1 << 25))      //* Specific address 2 match\r
94 #define AT91C_SA3_ADDR          ((unsigned int) (1 << 24))      //* Specific address 3 match\r
95 #define AT91C_SA4_ADDR          ((unsigned int) (1 << 23))      //* Specific address 4 match\r
96 #define AT91C_TYPE_ID           ((unsigned int) (1 << 22))      //* Type ID match\r
97 #define AT91C_VLAN_TAG          ((unsigned int) (1 << 21))      //* VLAN tag detected\r
98 #define AT91C_PRIORITY_TAG      ((unsigned int) (1 << 20))      //* PRIORITY tag detected\r
99 #define AT91C_VLAN_PRIORITY     ((unsigned int) (7 << 17))  //* PRIORITY Mask\r
100 #define AT91C_CFI_IND           ((unsigned int) (1 << 16))  //* CFI indicator\r
101 #define AT91C_EOF               ((unsigned int) (1 << 15))  //* EOF\r
102 #define AT91C_SOF               ((unsigned int) (1 << 14))  //* SOF\r
103 #define AT91C_RBF_OFFSET        ((unsigned int) (3 << 12))  //* Receive Buffer Offset Mask\r
104 #define AT91C_LENGTH_FRAME      ((unsigned int) 0x07FF)     //* Length of frame\r
105 \r
106 /* Transmit Status definition */\r
107 #define AT91C_TRANSMIT_OK               ((unsigned int) (1 << 31))      //*\r
108 #define AT91C_TRANSMIT_WRAP             ((unsigned int) (1 << 30))      //* Wrap bit: mark the last descriptor\r
109 #define AT91C_TRANSMIT_ERR              ((unsigned int) (1 << 29))      //* RLE:transmit error\r
110 #define AT91C_TRANSMIT_UND              ((unsigned int) (1 << 28))      //* Transmit Underrun\r
111 #define AT91C_BUF_EX                    ((unsigned int) (1 << 27))      //* Buffers exhausted in mid frame\r
112 #define AT91C_TRANSMIT_NO_CRC   ((unsigned int) (1 << 16))      //* No CRC will be appended to the current frame\r
113 #define AT91C_LAST_BUFFER       ((unsigned int) (1 << 15))      //*\r
114 \r
115 #define AT91C_EMAC_CLKEN 0x2\r
116 \r
117 #endif //* AT91C_EMAC_H\r