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 + -
显示快捷键?