]> git.sur5r.net Git - freertos/blob - Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fec.h
Add missing files.
[freertos] / Demo / Common / ethernet / lwIP_130 / contrib / port / FreeRTOS / ColdFire / fec.h
1 /*\r
2  * File:    fec.h\r
3  * Purpose: Driver for the Fast Ethernet Controller (FEC)\r
4  *\r
5  * Notes:       \r
6  */\r
7 \r
8 #ifndef _FEC_H_\r
9 #define _FEC_H_\r
10 \r
11 #include "eth.h"\r
12 #include "fecbd.h"\r
13 #include "mii.h"\r
14 #include "eth_phy.h"\r
15 \r
16 /********************************************************************/\r
17 \r
18 /* External Interface Modes */\r
19 #define FEC_MODE_7WIRE          0   /* Old 7-wire (AMD) mode */\r
20 #define FEC_MODE_MII            1   /* Media Independent Interface */\r
21 #define FEC_MODE_RMII           2   /* Reduced MII */\r
22 #define FEC_MODE_LOOPBACK       3   /* Internal Loopback */\r
23 \r
24 #define INTC_LVL_FEC                    3\r
25 /*\r
26  * FEC Configuration Parameters\r
27  */\r
28 typedef struct \r
29 {\r
30     uint8      ch;       /* FEC channel              */\r
31     uint8      mode;     /* Transceiver mode         */\r
32     MII_SPEED  speed;    /* Ethernet Speed           */\r
33     MII_DUPLEX duplex;   /* Ethernet Duplex          */\r
34     uint8      prom;     /* Promiscuous Mode?        */\r
35     uint8      mac[6];   /* Ethernet Address         */\r
36     uint8      phyaddr;  /* PHY address              */\r
37     uint8      initphy;  /* Init PHY?                */\r
38     int        nrxbd;    /* Number of RxBDs          */\r
39     int        ntxbd;    /* Number of TxBDs          */\r
40 } FEC_CONFIG;\r
41 #define YES 1\r
42 #define NO 0\r
43 /*\r
44  * FEC Event Log\r
45  */\r
46 typedef struct {\r
47     int errors;     /* total count of errors   */\r
48     int hberr;      /* heartbeat error         */\r
49     int babr;       /* babbling receiver       */\r
50     int babt;       /* babbling transmitter    */\r
51     int gra;        /* graceful stop complete  */\r
52     int txf;        /* transmit frame          */\r
53     int txb;        /* transmit buffer         */\r
54     int rxf;        /* receive frame           */\r
55     int rxb;        /* received buffer         */\r
56     int mii;        /* MII                     */\r
57     int eberr;      /* FEC/DMA fatal bus error */\r
58     int lc;         /* late collision          */\r
59     int rl;         /* collision retry limit   */\r
60     int un;         /* Tx FIFO underflow       */\r
61     int rfsw_inv;   /* Invalid bit in RFSW     */\r
62     int rfsw_l;     /* RFSW Last in Frame      */\r
63     int rfsw_m;     /* RFSW Miss               */\r
64     int rfsw_bc;    /* RFSW Broadcast          */\r
65     int rfsw_mc;    /* RFSW Multicast          */\r
66     int rfsw_lg;    /* RFSW Length Violation   */\r
67     int rfsw_no;    /* RFSW Non-octet          */\r
68     int rfsw_cr;    /* RFSW Bad CRC            */\r
69     int rfsw_ov;    /* RFSW Overflow           */\r
70     int rfsw_tr;    /* RFSW Truncated          */\r
71 } FEC_EVENT_LOG;\r
72 \r
73 #if 0\r
74 \r
75 int \r
76 fec_mii_write( int, int, int);\r
77 \r
78 int \r
79 fec_mii_read(int, int, uint16*);\r
80 \r
81 void\r
82 fec_mii_init(int, int);\r
83 \r
84 void\r
85 fec_mib_init(void);\r
86 \r
87 void\r
88 fec_mib_dump(void);\r
89 \r
90 void\r
91 fec_log_init(int);\r
92 \r
93 void\r
94 fec_log_dump(int);\r
95 \r
96 void\r
97 fec_reg_dump(int);\r
98 \r
99 void\r
100 fec_duplex (int, MII_DUPLEX);\r
101 \r
102 void\r
103 fec_rmii_speed (int, MII_SPEED);\r
104 \r
105 uint8\r
106 fec_hash_address(const uint8*);\r
107 \r
108 void\r
109 fec_set_address (const uint8*);\r
110 \r
111 void\r
112 fec_reset ( void );\r
113 \r
114 void\r
115 fec_init (int, const uint8*);\r
116 \r
117 void\r
118 fec_rx_start(int, uint8*, int);\r
119 \r
120 void\r
121 fec_rx_continue( void );\r
122 \r
123 void\r
124 fec_rx_handler(void);\r
125 \r
126 void\r
127 fec0_rx_handler(void);\r
128 \r
129 void\r
130 fec1_rx_handler(void);\r
131 \r
132 void\r
133 fec_tx_continue( void );\r
134 \r
135 void\r
136 fec_tx_stop (int);\r
137 \r
138 void\r
139 fec_tx_handler(NIF*, int);\r
140 \r
141 int\r
142 fec_send (uint8*, uint8*, uint16 , NBUF*);\r
143 \r
144 int\r
145 fec0_send(uint8*, uint8*, uint16 , NBUF*);\r
146 \r
147 int\r
148 fec1_send(uint8*, uint8*, uint16 , NBUF*);\r
149 \r
150 void\r
151 fec_irq_enable( void );\r
152 \r
153 void\r
154 fec_irq_disable(int);\r
155 \r
156 int\r
157 fec_eth_start(FEC_CONFIG*, int);\r
158 \r
159 void\r
160 fec_eth_stop(int);\r
161 \r
162 #endif\r
163 \r
164 /********************************************************************/\r
165 \r
166 #endif /* _FEC_H_ */\r