epic100.h
Go to the documentation of this file.00001 #ifndef _EPIC100_H_
00002 # define _EPIC100_H_
00003
00004 FILE_LICENCE ( GPL2_OR_LATER );
00005
00006 #ifndef PCI_VENDOR_SMC
00007 # define PCI_VENDOR_SMC 0x10B8
00008 #endif
00009
00010 #ifndef PCI_DEVICE_SMC_EPIC100
00011 # define PCI_DEVICE_SMC_EPIC100 0x0005
00012 #endif
00013
00014 #define PCI_DEVICE_ID_NONE 0xFFFF
00015
00016
00017 enum epic100_registers {
00018 COMMAND= 0,
00019 INTSTAT= 4,
00020 INTMASK= 8,
00021 GENCTL = 0x0C,
00022 NVCTL = 0x10,
00023 EECTL = 0x14,
00024 TEST = 0x1C,
00025 CRCCNT = 0x20,
00026 ALICNT = 0x24,
00027 MPCNT = 0x28,
00028 MMCTL = 0x30,
00029 MMDATA = 0x34,
00030 MIICFG = 0x38,
00031 IPG = 0x3C,
00032 LAN0 = 0x40,
00033 IDCHK = 0x4C,
00034 MC0 = 0x50,
00035 RXCON = 0x60,
00036 TXCON = 0x70,
00037 TXSTAT = 0x74,
00038 PRCDAR = 0x84,
00039 PRSTAT = 0xA4,
00040 PRCPTHR= 0xB0,
00041 PTCDAR = 0xC4,
00042 ETHTHR = 0xDC
00043 };
00044
00045
00046 #define CR_STOP_RX (0x00000001)
00047 #define CR_START_RX (0x00000002)
00048 #define CR_QUEUE_TX (0x00000004)
00049 #define CR_QUEUE_RX (0x00000008)
00050 #define CR_NEXTFRAME (0x00000010)
00051 #define CR_STOP_TX_DMA (0x00000020)
00052 #define CR_STOP_RX_DMA (0x00000040)
00053 #define CR_TX_UGO (0x00000080)
00054
00055
00056
00057 #define INTR_RX_THR_STA (0x00400000)
00058 #define INTR_RX_BUFF_EMPTY (0x00200000)
00059 #define INTR_TX_IN_PROG (0x00100000)
00060 #define INTR_RX_IN_PROG (0x00080000)
00061 #define INTR_TXIDLE (0x00040000)
00062 #define INTR_RXIDLE (0x00020000)
00063 #define INTR_INTR_ACTIVE (0x00010000)
00064 #define INTR_RX_STATUS_OK (0x00008000)
00065 #define INTR_PCI_TGT_ABT (0x00004000)
00066 #define INTR_PCI_MASTER_ABT (0x00002000)
00067 #define INTR_PCI_PARITY_ERR (0x00001000)
00068 #define INTR_PCI_DATA_ERR (0x00000800)
00069 #define INTR_RX_THR_CROSSED (0x00000400)
00070 #define INTR_CNTFULL (0x00000200)
00071 #define INTR_TXUNDERRUN (0x00000100)
00072 #define INTR_TXEMPTY (0x00000080)
00073 #define INTR_TX_CH_COMPLETE (0x00000040)
00074 #define INTR_TXDONE (0x00000020)
00075 #define INTR_RXERROR (0x00000010)
00076 #define INTR_RXOVERFLOW (0x00000008)
00077 #define INTR_RX_QUEUE_EMPTY (0x00000004)
00078 #define INTR_RXHEADER (0x00000002)
00079 #define INTR_RXDONE (0x00000001)
00080
00081 #define INTR_CLEARINTR (0x00007FFF)
00082 #define INTR_VALIDBITS (0x007FFFFF)
00083 #define INTR_DISABLE (0x00000000)
00084 #define INTR_CLEARERRS (0x00007F18)
00085 #define INTR_ABNINTR (INTR_CNTFULL | INTR_TXUNDERRUN | INTR_RXOVERFLOW)
00086
00087
00088
00089 #define GC_SOFT_RESET (0x00000001)
00090 #define GC_INTR_ENABLE (0x00000002)
00091 #define GC_SOFT_INTR (0x00000004)
00092 #define GC_POWER_DOWN (0x00000008)
00093 #define GC_ONE_COPY (0x00000010)
00094 #define GC_BIG_ENDIAN (0x00000020)
00095 #define GC_RX_PREEMPT_TX (0x00000040)
00096 #define GC_TX_PREEMPT_RX (0x00000080)
00097
00098
00099
00100
00101
00102
00103
00104
00105 #define GC_RX_FIFO_THR_32 (0x00000000)
00106 #define GC_RX_FIFO_THR_64 (0x00000100)
00107 #define GC_RX_FIFO_THR_96 (0x00000200)
00108 #define GC_RX_FIFO_THR_128 (0x00000300)
00109
00110
00111 #define GC_MRC_MEM_READ (0x00000000)
00112 #define GC_MRC_READ_MULT (0x00000400)
00113 #define GC_MRC_READ_LINE (0x00000800)
00114
00115 #define GC_SOFTBIT0 (0x00001000)
00116 #define GC_SOFTBIT1 (0x00002000)
00117 #define GC_RESET_PHY (0x00004000)
00118
00119
00120
00121 #define RC_SAVE_ERRORED_PKT (0x00000001)
00122 #define RC_SAVE_RUNT_FRAMES (0x00000002)
00123 #define RC_RCV_BROADCAST (0x00000004)
00124 #define RC_RCV_MULTICAST (0x00000008)
00125 #define RC_RCV_INVERSE_PKT (0x00000010)
00126 #define RC_PROMISCUOUS_MODE (0x00000020)
00127 #define RC_MONITOR_MODE (0x00000040)
00128 #define RC_EARLY_RCV_ENABLE (0x00000080)
00129
00130
00131 #define RD_FRAGLIST (0x0001)
00132 #define RD_LLFORM (0x0002)
00133 #define RD_HDR_CPY (0x0004)
00134
00135
00136
00137 #define TC_EARLY_TX_ENABLE (0x00000001)
00138
00139
00140 #define TC_LM_NORMAL (0x00000000)
00141 #define TC_LM_INTERNAL (0x00000002)
00142 #define TC_LM_EXTERNAL (0x00000004)
00143 #define TC_LM_FULL_DPX (0x00000006)
00144
00145 #define TX_SLOT_TIME (0x00000078)
00146
00147
00148 #define TX_FIFO_THRESH 128
00149
00150
00151 #define RRING_PKT_INTACT (0x0001)
00152 #define RRING_ALIGN_ERR (0x0002)
00153 #define RRING_CRC_ERR (0x0004)
00154 #define RRING_MISSED_PKT (0x0008)
00155 #define RRING_MULTICAST (0x0010)
00156 #define RRING_BROADCAST (0x0020)
00157 #define RRING_RECEIVER_DISABLE (0x0040)
00158 #define RRING_STATUS_VALID (0x1000)
00159 #define RRING_FRAGLIST_ERR (0x2000)
00160 #define RRING_HDR_COPIED (0x4000)
00161 #define RRING_OWN (0x8000)
00162
00163
00164 #define RRING_ERROR (RRING_ALIGN_ERR|RRING_CRC_ERR)
00165
00166
00167 #define TRING_PKT_INTACT (0x0001)
00168 #define TRING_PKT_NONDEFER (0x0002)
00169 #define TRING_COLL (0x0004)
00170 #define TRING_CARR (0x0008)
00171 #define TRING_UNDERRUN (0x0010)
00172 #define TRING_HB_COLL (0x0020)
00173 #define TRING_WIN_COLL (0x0040)
00174 #define TRING_DEFERRED (0x0080)
00175 #define TRING_COLL_COUNT (0x0F00)
00176 #define TRING_COLL_EXCESS (0x1000)
00177 #define TRING_OWN (0x8000)
00178
00179
00180 #define TRING_ABORT (TRING_COLL_EXCESS|TRING_WIN_COLL|TRING_UNDERRUN)
00181 #define TRING_ERROR (TRING_DEFERRED|TRING_WIN_COLL|TRING_UNDERRUN|TRING_CARR )
00182
00183
00184 #define TD_FRAGLIST (0x0001)
00185 #define TD_LLFORM (0x0002)
00186 #define TD_IAF (0x0004)
00187 #define TD_NOCRC (0x0008)
00188 #define TD_LASTDESC (0x0010)
00189
00190 #endif