]> git.sur5r.net Git - freertos/blob - Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / ColdFire_MCF52233_Eclipse / RTOSDemo / webserver / 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 void vFECInit( void );\r
74 unsigned short usFECGetRxedData( void );\r
75 void vFECSendData( void );\r
76 void vFECRxProcessingCompleted( void );\r
77 \r
78 /********************************************************************/\r
79 \r
80 #endif /* _FEC_H_ */\r