📄 fec.h
字号:
/* * File: fec.h * Purpose: Driver for the Fast Ethernet Controller (FEC) * * Notes: */#ifndef _FEC_H_#define _FEC_H_#include "queue.h"#include "nbuf.h"#include "eth.h"#include "nif.h"#include "fecbd.h"#include "mii.h"#include "eth_phy.h"/********************************************************************//* External Interface Modes */#define FEC_MODE_7WIRE 0 /* Old 7-wire (AMD) mode */#define FEC_MODE_MII 1 /* Media Independent Interface */#define FEC_MODE_RMII 2 /* Reduced MII */#define FEC_MODE_LOOPBACK 3 /* Internal Loopback */#define INTC_LVL_FEC 5/* * FEC Configuration Parameters */typedef struct { uint8 ch; /* FEC channel */ uint8 mode; /* Transceiver mode */ MII_SPEED speed; /* Ethernet Speed */ MII_DUPLEX duplex; /* Ethernet Duplex */ uint8 prom; /* Promiscuous Mode? */ uint8 mac[6]; /* Ethernet Address */ uint8 phyaddr; /* PHY address */ uint8 initphy; /* Init PHY? */ int nrxbd; /* Number of RxBDs */ int ntxbd; /* Number of TxBDs */} FEC_CONFIG;#define YES 1#define NO 0/* * FEC Event Log */typedef struct { int errors; /* total count of errors */ int hberr; /* heartbeat error */ int babr; /* babbling receiver */ int babt; /* babbling transmitter */ int gra; /* graceful stop complete */ int txf; /* transmit frame */ int txb; /* transmit buffer */ int rxf; /* receive frame */ int rxb; /* received buffer */ int mii; /* MII */ int eberr; /* FEC/DMA fatal bus error */ int lc; /* late collision */ int rl; /* collision retry limit */ int un; /* Tx FIFO underflow */ int rfsw_inv; /* Invalid bit in RFSW */ int rfsw_l; /* RFSW Last in Frame */ int rfsw_m; /* RFSW Miss */ int rfsw_bc; /* RFSW Broadcast */ int rfsw_mc; /* RFSW Multicast */ int rfsw_lg; /* RFSW Length Violation */ int rfsw_no; /* RFSW Non-octet */ int rfsw_cr; /* RFSW Bad CRC */ int rfsw_ov; /* RFSW Overflow */ int rfsw_tr; /* RFSW Truncated */} FEC_EVENT_LOG;int fec_mii_write(int, int, int, int);int fec_mii_read(int, int, int, uint16*);voidfec_mii_init(int, int);voidfec_mib_init(int);voidfec_mib_dump(int);voidfec_log_init(int);voidfec_log_dump(int);voidfec_reg_dump(int);voidfec_duplex (int, MII_DUPLEX);voidfec_rmii_speed (int, MII_SPEED);uint8fec_hash_address(const uint8*);voidfec_set_address (int, const uint8*);voidfec_reset (int);voidfec_init (int, int, MII_DUPLEX, int, const uint8*);voidfec_rx_start(int, uint8*, int);voidfec_rx_continue(int);voidfec_rx_handler(NIF*);voidfec0_rx_handler(void);voidfec1_rx_handler(void);voidfec_tx_continue(int);voidfec_tx_stop (int);voidfec_tx_handler(NIF*, int);intfec_send (int , uint8*, uint8*, uint16 , NBUF*);intfec0_send(uint8*, uint8*, uint16 , NBUF*);intfec1_send(uint8*, uint8*, uint16 , NBUF*);voidfec_irq_enable(int);voidfec_irq_disable(int);intfec_eth_start(FEC_CONFIG*, int);voidfec_eth_stop(int);/********************************************************************/#endif /* _FEC_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -