📄 i82593.h
字号:
/* * Definitions for Intel 82593 CSMA/CD Core LAN Controller * The definitions are taken from the 1992 users manual with Intel * order number 297125-001. * * /usr/src/pc/RCS/i82593.h,v 1.1 1996/07/17 15:23:12 root Exp * * Copyright 1994, Anders Klemets <klemets@it.kth.se> * * This software may be freely distributed for noncommercial purposes * as long as this notice is retained. * * HISTORY * i82593.h,v * Revision 1.1 1996/07/17 15:23:12 root * Initial revision * * Revision 1.3 1995/04/05 15:13:58 adj * Initial alpha release * * Revision 1.2 1994/06/16 23:57:31 klemets * Mirrored all the fields in the configuration block. * * Revision 1.1 1994/06/02 20:25:34 klemets * Initial revision * * */#ifndef _I82593_H#define _I82593_H/* Intel 82593 CSMA/CD Core LAN Controller *//* Port 0 Command Register definitions *//* Execution operations */#define OP0_NOP 0 /* CHNL = 0 */#define OP0_SWIT_TO_PORT_1 0 /* CHNL = 1 */#define OP0_IA_SETUP 1#define OP0_CONFIGURE 2#define OP0_MC_SETUP 3#define OP0_TRANSMIT 4#define OP0_TDR 5#define OP0_DUMP 6#define OP0_DIAGNOSE 7#define OP0_TRANSMIT_NO_CRC 9#define OP0_RETRANSMIT 12#define OP0_ABORT 13/* Reception operations */#define OP0_RCV_ENABLE 8#define OP0_RCV_DISABLE 10#define OP0_STOP_RCV 11/* Status pointer control operations */#define OP0_FIX_PTR 15 /* CHNL = 1 */#define OP0_RLS_PTR 15 /* CHNL = 0 */#define OP0_RESET 14#define CR0_CHNL (1 << 4) /* 0=Channel 0, 1=Channel 1 */#define CR0_STATUS_0 0x00#define CR0_STATUS_1 0x20#define CR0_STATUS_2 0x40#define CR0_STATUS_3 0x60#define CR0_INT_ACK (1 << 7) /* 0=No ack, 1=acknowledge *//* Port 0 Status Register definitions */#define SR0_NO_RESULT 0 /* dummy */#define SR0_EVENT_MASK 0x0f#define SR0_IA_SETUP_DONE 1#define SR0_CONFIGURE_DONE 2#define SR0_MC_SETUP_DONE 3#define SR0_TRANSMIT_DONE 4#define SR0_TDR_DONE 5#define SR0_DUMP_DONE 6#define SR0_DIAGNOSE_PASSED 7#define SR0_TRANSMIT_NO_CRC_DONE 9#define SR0_RETRANSMIT_DONE 12#define SR0_EXECUTION_ABORTED 13#define SR0_END_OF_FRAME 8#define SR0_RECEPTION_ABORTED 10#define SR0_DIAGNOSE_FAILED 15#define SR0_STOP_REG_HIT 11#define SR0_CHNL (1 << 4)#define SR0_EXECUTION (1 << 5)#define SR0_RECEPTION (1 << 6)#define SR0_INTERRUPT (1 << 7)#define SR0_BOTH_RX_TX (SR0_EXECUTION | SR0_RECEPTION)#define SR3_EXEC_STATE_MASK 0x03#define SR3_EXEC_IDLE 0#define SR3_TX_ABORT_IN_PROGRESS 1#define SR3_EXEC_ACTIVE 2#define SR3_ABORT_IN_PROGRESS 3#define SR3_EXEC_CHNL (1 << 2)#define SR3_STP_ON_NO_RSRC (1 << 3)#define SR3_RCVING_NO_RSRC (1 << 4)#define SR3_RCV_STATE_MASK 0x60#define SR3_RCV_IDLE 0x00#define SR3_RCV_READY 0x20#define SR3_RCV_ACTIVE 0x40#define SR3_RCV_STOP_IN_PROG 0x60#define SR3_RCV_CHNL (1 << 7)/* Port 1 Command Register definitions */#define OP1_NOP 0#define OP1_SWIT_TO_PORT_0 1#define OP1_INT_DISABLE 2#define OP1_INT_ENABLE 3#define OP1_SET_TS 5#define OP1_RST_TS 7#define OP1_POWER_DOWN 8#define OP1_RESET_RING_MNGMT 11#define OP1_RESET 14#define OP1_SEL_RST 15#define CR1_STATUS_4 0x00#define CR1_STATUS_5 0x20#define CR1_STATUS_6 0x40#define CR1_STOP_REG_UPDATE (1 << 7)/* Receive frame status bits */#define RX_RCLD (1 << 0)#define RX_IA_MATCH (1 << 1)#define RX_NO_AD_MATCH (1 << 2)#define RX_NO_SFD (1 << 3)#define RX_SRT_FRM (1 << 7)#define RX_OVRRUN (1 << 8)#define RX_ALG_ERR (1 << 10)#define RX_CRC_ERR (1 << 11)#define RX_LEN_ERR (1 << 12)#define RX_RCV_OK (1 << 13)#define RX_TYP_LEN (1 << 15)/* Transmit status bits */#define TX_NCOL_MASK 0x0f#define TX_FRTL (1 << 4)#define TX_MAX_COL (1 << 5)#define TX_HRT_BEAT (1 << 6)#define TX_DEFER (1 << 7)#define TX_UND_RUN (1 << 8)#define TX_LOST_CTS (1 << 9)#define TX_LOST_CRS (1 << 10)#define TX_LTCOL (1 << 11)#define TX_OK (1 << 13)#define TX_COLL (1 << 15)struct i82593_conf_block { u_char fifo_limit : 4, forgnesi : 1, fifo_32 : 1, d6mod : 1, throttle_enb : 1; u_char throttle : 6, cntrxint : 1, contin : 1; u_char addr_len : 3, acloc : 1, preamb_len : 2, loopback : 2; u_char lin_prio : 3, tbofstop : 1, exp_prio : 3, bof_met : 1; u_char : 4, ifrm_spc : 4; u_char : 5, slottim_low : 3; u_char slottim_hi : 3, : 1, max_retr : 4; u_char prmisc : 1, bc_dis : 1, : 1, crs_1 : 1, nocrc_ins : 1, crc_1632 : 1, : 1, crs_cdt : 1; u_char cs_filter : 3, crs_src : 1, cd_filter : 3, : 1; u_char : 2, min_fr_len : 6; u_char lng_typ : 1, lng_fld : 1, rxcrc_xf : 1, artx : 1, sarec : 1, tx_jabber : 1, /* why is this called max_len in the manual? */ hash_1 : 1, lbpkpol : 1; u_char : 6, fdx : 1, : 1; u_char dummy_6 : 6, /* supposed to be ones */ mult_ia : 1, dis_bof : 1; u_char dummy_1 : 1, /* supposed to be one */ tx_ifs_retrig : 2, mc_all : 1, rcv_mon : 2, frag_acpt : 1, tstrttrs : 1; u_char fretx : 1, runt_eop : 1, hw_sw_pin : 1, big_endn : 1, syncrqs : 1, sttlen : 1, tx_eop : 1, rx_eop : 1; u_char rbuf_size : 5, rcvstop : 1, : 2;};#define I82593_MAX_MULTICAST_ADDRESSES 128 /* Hardware hashed filter */#endif /* _I82593_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -