m68360_enet.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 178 行

H
178
字号
/*********************************** * $Id: m68360_enet.h,v 1.1 2002/03/02 15:01:07 gerg Exp $ *********************************** * *************************************** * Definitions for the ETHERNET controllers *************************************** */#ifndef __ETHER_H#define __ETHER_H#include "quicc_simple.h"/* * transmit BD's */#define T_R     0x8000          /* ready bit */#define E_T_PAD 0x4000          /* short frame padding */#define T_W     0x2000          /* wrap bit */#define T_I     0x1000          /* interrupt on completion */#define T_L     0x0800          /* last in frame */#define T_TC    0x0400          /* transmit CRC (when last) */#define T_DEF   0x0200          /* defer indication */#define T_HB    0x0100          /* heartbeat */#define T_LC    0x0080          /* error: late collision */#define T_RL    0x0040          /* error: retransmission limit */#define T_RC    0x003c          /* retry count */#define T_UN    0x0002          /* error: underrun */#define T_CSL   0x0001          /* carier sense lost */#define T_ERROR (T_HB | T_LC | T_RL | T_UN | T_CSL)/* * receive BD's */#define R_E     0x8000          /* buffer empty */#define R_W     0x2000          /* wrap bit */#define R_I     0x1000          /* interrupt on reception */#define R_L     0x0800          /* last BD in frame */#define R_F     0x0400          /* first BD in frame */#define R_M     0x0100          /* received because of promisc. mode */#define R_LG    0x0020          /* frame too long */#define R_NO    0x0010          /* non-octet aligned */#define R_SH    0x0008          /* short frame */#define R_CR    0x0004          /* receive CRC error */#define R_OV    0x0002          /* receive overrun */#define R_CL    0x0001          /* collision */#define ETHER_R_ERROR (R_LG | R_NO | R_SH | R_CR | R_OV | R_CL)/* * ethernet interrupts */#define ETHERNET_GRA    0x0080  /* graceful stop complete */#define ETHERNET_TXE    0x0010  /* transmit error         */#define ETHERNET_RXF    0x0008  /* receive frame          */#define ETHERNET_BSY    0x0004  /* busy condition         */#define ETHERNET_TXB    0x0002  /* transmit buffer        */#define ETHERNET_RXB    0x0001  /* receive buffer         *//* * ethernet protocol specific mode register (PSMR) */#define ETHER_HBC       0x8000    /* heartbeat checking      */#define ETHER_FC        0x4000    /* force collision         */#define ETHER_RSH       0x2000    /* receive short frames    */#define ETHER_IAM       0x1000    /* individual address mode */#define ETHER_CRC_32    (0x2<<10) /* Enable CRC              */#define ETHER_PRO       0x0200    /* promiscuous             */#define ETHER_BRO       0x0100    /* broadcast address       */#define ETHER_SBT       0x0080    /* stop backoff timer      */#define ETHER_LPB       0x0040    /* Loop Back Mode          */#define ETHER_SIP       0x0020    /* sample input pins       */#define ETHER_LCW       0x0010    /* late collision window   */#define ETHER_NIB_13    (0x0<<1)  /* # of ignored bits 13    */#define ETHER_NIB_14    (0x1<<1)  /* # of ignored bits 14    */#define ETHER_NIB_15    (0x2<<1)  /* # of ignored bits 15    */#define ETHER_NIB_16    (0x3<<1)  /* # of ignored bits 16    */#define ETHER_NIB_21    (0x4<<1)  /* # of ignored bits 21    */#define ETHER_NIB_22    (0x5<<1)  /* # of ignored bits 22    */#define ETHER_NIB_23    (0x6<<1)  /* # of ignored bits 23    */#define ETHER_NIB_24    (0x7<<1)  /* # of ignored bits 24    *//* * ethernet specific parameters */#define CRC_WORD 4          /* Length in bytes of CRC */               #define C_PRES   0xffffffff /* preform 32 bit CRC */#define C_MASK   0xdebb20e3 /* comply with 32 bit CRC */       #define CRCEC    0x00000000#define ALEC     0x00000000#define DISFC    0x00000000#define PADS     0x00000000#define RET_LIM  0x000f     /* retry 15 times to send a frame before interrupt */#define ETH_MFLR 0x05ee     /* 1518 max frame size */#define MINFLR   0x0040     /* Minimum frame size 64 */#define MAXD1    0x05ee     /* Max dma count 1518 */#define MAXD2    0x05ee#define GADDR1   0x00000000 /* Clear group address */  #define GADDR2   0x00000000#define GADDR3   0x00000000    #define GADDR4   0x00000000    #define P_PER    0x00000000 /*not used */              #define IADDR1   0x00000000 /* Individual hash table not used */       #define IADDR2   0x00000000#define IADDR3   0x00000000    #define IADDR4   0x00000000            #define TADDR_H  0x00000000 /* clear this regs */              #define TADDR_M  0x00000000            #define TADDR_L  0x00000000            /*       SCC Parameter Ram */#define RFCR    0x18 /* normal operation */#define TFCR    0x18 /* normal operation */#define E_MRBLR 1518 /* Max ethernet frame length *//* * ethernet specific structure */typedef union {        unsigned char b[6];        struct {            unsigned short high;            unsigned short middl;            unsigned short low;        } w;} ETHER_ADDR;typedef struct {    int        max_frame_length;    int        promisc_mode;    int        reject_broadcast;    ETHER_ADDR phys_adr;} ETHER_SPECIFIC;typedef struct {    ETHER_ADDR     dst_addr;    ETHER_ADDR     src_addr;    unsigned short type_or_len;    unsigned char  data[1];} ETHER_FRAME;#define MAX_DATALEN 1500typedef struct {    ETHER_ADDR     dst_addr;    ETHER_ADDR     src_addr;    unsigned short type_or_len;    unsigned char  data[MAX_DATALEN];    unsigned char  fcs[CRC_WORD];} ETHER_MAX_FRAME;/* * Internal ethernet function prototypes */void        ether_interrupt(int scc_num);/* mleslie: debug *//* static void ethernet_rx_internal(int scc_num); *//* static void ethernet_tx_internal(int scc_num); *//* * User callable routines prototypes (ethernet specific) */void ethernet_init(int                       scc_number,                   alloc_routine             *alloc_buffer,                   free_routine              *free_buffer,                   store_rx_buffer_routine   *store_rx_buffer,                   handle_tx_error_routine   *handle_tx_error,                   handle_rx_error_routine   *handle_rx_error,                   handle_lost_error_routine *handle_lost_error,                   ETHER_SPECIFIC            *ether_spec);int  ethernet_tx(int scc_number, void *buf, int length);#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?