00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef _E1000_HW_H_
00034 #define _E1000_HW_H_
00035
00036
00037
00038 #define E1000_DEV_ID_82542 0x1000
00039 #define E1000_DEV_ID_82543GC_FIBER 0x1001
00040 #define E1000_DEV_ID_82543GC_COPPER 0x1004
00041 #define E1000_DEV_ID_82544EI_COPPER 0x1008
00042 #define E1000_DEV_ID_82544EI_FIBER 0x1009
00043 #define E1000_DEV_ID_82544GC_COPPER 0x100C
00044 #define E1000_DEV_ID_82544GC_LOM 0x100D
00045 #define E1000_DEV_ID_82540EM 0x100E
00046 #define E1000_DEV_ID_82540EM_LOM 0x1015
00047 #define E1000_DEV_ID_82540EP_LOM 0x1016
00048 #define E1000_DEV_ID_82540EP 0x1017
00049 #define E1000_DEV_ID_82540EP_LP 0x101E
00050 #define E1000_DEV_ID_82545EM_COPPER 0x100F
00051 #define E1000_DEV_ID_82545EM_FIBER 0x1011
00052 #define E1000_DEV_ID_82545GM_COPPER 0x1026
00053 #define E1000_DEV_ID_82545GM_FIBER 0x1027
00054 #define E1000_DEV_ID_82545GM_SERDES 0x1028
00055 #define E1000_DEV_ID_82546EB_COPPER 0x1010
00056 #define E1000_DEV_ID_82546EB_FIBER 0x1012
00057 #define E1000_DEV_ID_82546EB_QUAD_COPPER 0x101D
00058 #define E1000_DEV_ID_82541EI 0x1013
00059 #define E1000_DEV_ID_82541EI_MOBILE 0x1018
00060 #define E1000_DEV_ID_82541ER_LOM 0x1014
00061 #define E1000_DEV_ID_82541ER 0x1078
00062 #define E1000_DEV_ID_82547GI 0x1075
00063 #define E1000_DEV_ID_82541GI 0x1076
00064 #define E1000_DEV_ID_82541GI_MOBILE 0x1077
00065 #define E1000_DEV_ID_82541GI_LF 0x107C
00066 #define E1000_DEV_ID_82546GB_COPPER 0x1079
00067 #define E1000_DEV_ID_82546GB_FIBER 0x107A
00068 #define E1000_DEV_ID_82546GB_SERDES 0x107B
00069 #define E1000_DEV_ID_82546GB_PCIE 0x108A
00070 #define E1000_DEV_ID_82546GB_QUAD_COPPER 0x1099
00071 #define E1000_DEV_ID_82547EI 0x1019
00072 #define E1000_DEV_ID_82547EI_MOBILE 0x101A
00073 #define E1000_DEV_ID_82571EB_COPPER 0x105E
00074 #define E1000_DEV_ID_82571EB_FIBER 0x105F
00075 #define E1000_DEV_ID_82571EB_SERDES 0x1060
00076 #define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4
00077 #define E1000_DEV_ID_82571PT_QUAD_COPPER 0x10D5
00078 #define E1000_DEV_ID_82571EB_QUAD_FIBER 0x10A5
00079 #define E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE 0x10BC
00080 #define E1000_DEV_ID_82571EB_SERDES_DUAL 0x10D9
00081 #define E1000_DEV_ID_82571EB_SERDES_QUAD 0x10DA
00082 #define E1000_DEV_ID_82572EI_COPPER 0x107D
00083 #define E1000_DEV_ID_82572EI_FIBER 0x107E
00084 #define E1000_DEV_ID_82572EI_SERDES 0x107F
00085 #define E1000_DEV_ID_82572EI 0x10B9
00086 #define E1000_DEV_ID_82573E 0x108B
00087 #define E1000_DEV_ID_82573E_IAMT 0x108C
00088 #define E1000_DEV_ID_82573L 0x109A
00089 #define E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3 0x10B5
00090 #define E1000_DEV_ID_80003ES2LAN_COPPER_DPT 0x1096
00091 #define E1000_DEV_ID_80003ES2LAN_SERDES_DPT 0x1098
00092 #define E1000_DEV_ID_80003ES2LAN_COPPER_SPT 0x10BA
00093 #define E1000_DEV_ID_80003ES2LAN_SERDES_SPT 0x10BB
00094
00095 #define E1000_DEV_ID_ICH8_IGP_M_AMT 0x1049
00096 #define E1000_DEV_ID_ICH8_IGP_AMT 0x104A
00097 #define E1000_DEV_ID_ICH8_IGP_C 0x104B
00098 #define E1000_DEV_ID_ICH8_IFE 0x104C
00099 #define E1000_DEV_ID_ICH8_IFE_GT 0x10C4
00100 #define E1000_DEV_ID_ICH8_IFE_G 0x10C5
00101 #define E1000_DEV_ID_ICH8_IGP_M 0x104D
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115 #define E1000_CTRL 0x00000
00116 #define E1000_CTRL_DUP 0x00004
00117 #define E1000_STATUS 0x00008
00118 #define E1000_EECD 0x00010
00119 #define E1000_EERD 0x00014
00120 #define E1000_CTRL_EXT 0x00018
00121 #define E1000_FLA 0x0001C
00122 #define E1000_MDIC 0x00020
00123 #define E1000_SCTL 0x00024
00124 #define E1000_FEXTNVM 0x00028
00125 #define E1000_FCAL 0x00028
00126 #define E1000_FCAH 0x0002C
00127 #define E1000_FCT 0x00030
00128 #define E1000_VET 0x00038
00129 #define E1000_ICR 0x000C0
00130 #define E1000_ITR 0x000C4
00131 #define E1000_ICS 0x000C8
00132 #define E1000_IMS 0x000D0
00133 #define E1000_IMC 0x000D8
00134 #define E1000_IAM 0x000E0
00135 #define E1000_RCTL 0x00100
00136 #define E1000_RDTR1 0x02820
00137 #define E1000_RDBAL1 0x02900
00138 #define E1000_RDBAH1 0x02904
00139 #define E1000_RDLEN1 0x02908
00140 #define E1000_RDH1 0x02910
00141 #define E1000_RDT1 0x02918
00142 #define E1000_FCTTV 0x00170
00143 #define E1000_TXCW 0x00178
00144 #define E1000_RXCW 0x00180
00145 #define E1000_TCTL 0x00400
00146 #define E1000_TCTL_EXT 0x00404
00147 #define E1000_TIPG 0x00410
00148 #define E1000_TBT 0x00448
00149 #define E1000_AIT 0x00458
00150 #define E1000_LEDCTL 0x00E00
00151 #define E1000_EXTCNF_CTRL 0x00F00
00152 #define E1000_EXTCNF_SIZE 0x00F08
00153 #define E1000_PHY_CTRL 0x00F10
00154 #define FEXTNVM_SW_CONFIG 0x0001
00155 #define E1000_PBA 0x01000
00156 #define E1000_PBS 0x01008
00157 #define E1000_EEMNGCTL 0x01010
00158 #define E1000_FLASH_UPDATES 1000
00159 #define E1000_EEARBC 0x01024
00160 #define E1000_FLASHT 0x01028
00161 #define E1000_EEWR 0x0102C
00162 #define E1000_FLSWCTL 0x01030
00163 #define E1000_FLSWDATA 0x01034
00164 #define E1000_FLSWCNT 0x01038
00165 #define E1000_FLOP 0x0103C
00166 #define E1000_ERT 0x02008
00167 #define E1000_FCRTL 0x02160
00168 #define E1000_FCRTH 0x02168
00169 #define E1000_PSRCTL 0x02170
00170 #define E1000_RDBAL 0x02800
00171 #define E1000_RDBAH 0x02804
00172 #define E1000_RDLEN 0x02808
00173 #define E1000_RDH 0x02810
00174 #define E1000_RDT 0x02818
00175 #define E1000_RDTR 0x02820
00176 #define E1000_RDBAL0 E1000_RDBAL
00177 #define E1000_RDBAH0 E1000_RDBAH
00178 #define E1000_RDLEN0 E1000_RDLEN
00179 #define E1000_RDH0 E1000_RDH
00180 #define E1000_RDT0 E1000_RDT
00181 #define E1000_RDTR0 E1000_RDTR
00182 #define E1000_RXDCTL 0x02828
00183 #define E1000_RXDCTL1 0x02928
00184 #define E1000_RADV 0x0282C
00185 #define E1000_RSRPD 0x02C00
00186 #define E1000_RAID 0x02C08
00187 #define E1000_TXDMAC 0x03000
00188 #define E1000_KABGTXD 0x03004
00189 #define E1000_TDFH 0x03410
00190 #define E1000_TDFT 0x03418
00191 #define E1000_TDFHS 0x03420
00192 #define E1000_TDFTS 0x03428
00193 #define E1000_TDFPC 0x03430
00194 #define E1000_TDBAL 0x03800
00195 #define E1000_TDBAH 0x03804
00196 #define E1000_TDLEN 0x03808
00197 #define E1000_TDH 0x03810
00198 #define E1000_TDT 0x03818
00199 #define E1000_TIDV 0x03820
00200 #define E1000_TXDCTL 0x03828
00201 #define E1000_TADV 0x0382C
00202 #define E1000_TSPMT 0x03830
00203 #define E1000_TARC0 0x03840
00204 #define E1000_TDBAL1 0x03900
00205 #define E1000_TDBAH1 0x03904
00206 #define E1000_TDLEN1 0x03908
00207 #define E1000_TDH1 0x03910
00208 #define E1000_TDT1 0x03918
00209 #define E1000_TXDCTL1 0x03928
00210 #define E1000_TARC1 0x03940
00211 #define E1000_CRCERRS 0x04000
00212 #define E1000_ALGNERRC 0x04004
00213 #define E1000_SYMERRS 0x04008
00214 #define E1000_RXERRC 0x0400C
00215 #define E1000_MPC 0x04010
00216 #define E1000_SCC 0x04014
00217 #define E1000_ECOL 0x04018
00218 #define E1000_MCC 0x0401C
00219 #define E1000_LATECOL 0x04020
00220 #define E1000_COLC 0x04028
00221 #define E1000_DC 0x04030
00222 #define E1000_TNCRS 0x04034
00223 #define E1000_SEC 0x04038
00224 #define E1000_CEXTERR 0x0403C
00225 #define E1000_RLEC 0x04040
00226 #define E1000_XONRXC 0x04048
00227 #define E1000_XONTXC 0x0404C
00228 #define E1000_XOFFRXC 0x04050
00229 #define E1000_XOFFTXC 0x04054
00230 #define E1000_FCRUC 0x04058
00231 #define E1000_PRC64 0x0405C
00232 #define E1000_PRC127 0x04060
00233 #define E1000_PRC255 0x04064
00234 #define E1000_PRC511 0x04068
00235 #define E1000_PRC1023 0x0406C
00236 #define E1000_PRC1522 0x04070
00237 #define E1000_GPRC 0x04074
00238 #define E1000_BPRC 0x04078
00239 #define E1000_MPRC 0x0407C
00240 #define E1000_GPTC 0x04080
00241 #define E1000_GORCL 0x04088
00242 #define E1000_GORCH 0x0408C
00243 #define E1000_GOTCL 0x04090
00244 #define E1000_GOTCH 0x04094
00245 #define E1000_RNBC 0x040A0
00246 #define E1000_RUC 0x040A4
00247 #define E1000_RFC 0x040A8
00248 #define E1000_ROC 0x040AC
00249 #define E1000_RJC 0x040B0
00250 #define E1000_MGTPRC 0x040B4
00251 #define E1000_MGTPDC 0x040B8
00252 #define E1000_MGTPTC 0x040BC
00253 #define E1000_TORL 0x040C0
00254 #define E1000_TORH 0x040C4
00255 #define E1000_TOTL 0x040C8
00256 #define E1000_TOTH 0x040CC
00257 #define E1000_TPR 0x040D0
00258 #define E1000_TPT 0x040D4
00259 #define E1000_PTC64 0x040D8
00260 #define E1000_PTC127 0x040DC
00261 #define E1000_PTC255 0x040E0
00262 #define E1000_PTC511 0x040E4
00263 #define E1000_PTC1023 0x040E8
00264 #define E1000_PTC1522 0x040EC
00265 #define E1000_MPTC 0x040F0
00266 #define E1000_BPTC 0x040F4
00267 #define E1000_TSCTC 0x040F8
00268 #define E1000_TSCTFC 0x040FC
00269 #define E1000_IAC 0x04100
00270 #define E1000_ICRXPTC 0x04104
00271 #define E1000_ICRXATC 0x04108
00272 #define E1000_ICTXPTC 0x0410C
00273 #define E1000_ICTXATC 0x04110
00274 #define E1000_ICTXQEC 0x04118
00275 #define E1000_ICTXQMTC 0x0411C
00276 #define E1000_ICRXDMTC 0x04120
00277 #define E1000_ICRXOC 0x04124
00278 #define E1000_RXCSUM 0x05000
00279 #define E1000_RFCTL 0x05008
00280 #define E1000_MTA 0x05200
00281 #define E1000_RA 0x05400
00282 #define E1000_VFTA 0x05600
00283 #define E1000_WUC 0x05800
00284 #define E1000_WUFC 0x05808
00285 #define E1000_WUS 0x05810
00286 #define E1000_MANC 0x05820
00287 #define E1000_IPAV 0x05838
00288 #define E1000_IP4AT 0x05840
00289 #define E1000_IP6AT 0x05880
00290 #define E1000_WUPL 0x05900
00291 #define E1000_WUPM 0x05A00
00292 #define E1000_FFLT 0x05F00
00293 #define E1000_HOST_IF 0x08800
00294 #define E1000_FFMT 0x09000
00295 #define E1000_FFVT 0x09800
00296
00297 #define E1000_KUMCTRLSTA 0x00034
00298 #define E1000_MDPHYA 0x0003C
00299 #define E1000_MANC2H 0x05860
00300 #define E1000_SW_FW_SYNC 0x05B5C
00301
00302 #define E1000_GCR 0x05B00
00303 #define E1000_GSCL_1 0x05B10
00304 #define E1000_GSCL_2 0x05B14
00305 #define E1000_GSCL_3 0x05B18
00306 #define E1000_GSCL_4 0x05B1C
00307 #define E1000_FACTPS 0x05B30
00308 #define E1000_SWSM 0x05B50
00309 #define E1000_FWSM 0x05B54
00310 #define E1000_FFLT_DBG 0x05F04
00311 #define E1000_HICR 0x08F00
00312
00313
00314 #define E1000_CPUVEC 0x02C10
00315 #define E1000_MRQC 0x05818
00316 #define E1000_RETA 0x05C00
00317 #define E1000_RSSRK 0x05C80
00318 #define E1000_RSSIM 0x05864
00319 #define E1000_RSSIR 0x05868
00320
00321
00322
00323 #define PHY_CTRL 0x00
00324 #define PHY_STATUS 0x01
00325 #define PHY_ID1 0x02
00326 #define PHY_ID2 0x03
00327 #define PHY_AUTONEG_ADV 0x04
00328 #define PHY_LP_ABILITY 0x05
00329 #define PHY_AUTONEG_EXP 0x06
00330 #define PHY_NEXT_PAGE_TX 0x07
00331 #define PHY_LP_NEXT_PAGE 0x08
00332 #define PHY_1000T_CTRL 0x09
00333 #define PHY_1000T_STATUS 0x0A
00334 #define PHY_EXT_STATUS 0x0F
00335
00336 #define MAX_PHY_REG_ADDRESS 0x1F
00337 #define MAX_PHY_MULTI_PAGE_REG 0xF
00338
00339
00340 #define M88E1000_PHY_SPEC_CTRL 0x10
00341 #define M88E1000_PHY_SPEC_STATUS 0x11
00342 #define M88E1000_INT_ENABLE 0x12
00343 #define M88E1000_INT_STATUS 0x13
00344 #define M88E1000_EXT_PHY_SPEC_CTRL 0x14
00345 #define M88E1000_RX_ERR_CNTR 0x15
00346
00347 #define M88E1000_PHY_EXT_CTRL 0x1A
00348 #define M88E1000_PHY_PAGE_SELECT 0x1D
00349 #define M88E1000_PHY_GEN_CONTROL 0x1E
00350 #define M88E1000_PHY_VCO_REG_BIT8 0x100
00351 #define M88E1000_PHY_VCO_REG_BIT11 0x800
00352
00353
00354 #define E1000_ICR_TXDW 0x00000001
00355 #define E1000_ICR_TXQE 0x00000002
00356 #define E1000_ICR_LSC 0x00000004
00357 #define E1000_ICR_RXSEQ 0x00000008
00358 #define E1000_ICR_RXDMT0 0x00000010
00359 #define E1000_ICR_RXO 0x00000040
00360 #define E1000_ICR_RXT0 0x00000080
00361 #define E1000_ICR_MDAC 0x00000200
00362 #define E1000_ICR_RXCFG 0x00000400
00363 #define E1000_ICR_GPI_EN0 0x00000800
00364 #define E1000_ICR_GPI_EN1 0x00001000
00365 #define E1000_ICR_GPI_EN2 0x00002000
00366 #define E1000_ICR_GPI_EN3 0x00004000
00367 #define E1000_ICR_TXD_LOW 0x00008000
00368 #define E1000_ICR_SRPD 0x00010000
00369 #define E1000_ICR_ACK 0x00020000
00370 #define E1000_ICR_MNG 0x00040000
00371 #define E1000_ICR_DOCK 0x00080000
00372 #define E1000_ICR_INT_ASSERTED 0x80000000
00373 #define E1000_ICR_RXD_FIFO_PAR0 0x00100000
00374 #define E1000_ICR_TXD_FIFO_PAR0 0x00200000
00375 #define E1000_ICR_HOST_ARB_PAR 0x00400000
00376 #define E1000_ICR_PB_PAR 0x00800000
00377 #define E1000_ICR_RXD_FIFO_PAR1 0x01000000
00378 #define E1000_ICR_TXD_FIFO_PAR1 0x02000000
00379 #define E1000_ICR_ALL_PARITY 0x03F00000
00380 #define E1000_ICR_DSW 0x00000020
00381 #define E1000_ICR_PHYINT 0x00001000
00382 #define E1000_ICR_EPRST 0x00100000
00383
00384
00385 #define E1000_ICS_TXDW E1000_ICR_TXDW
00386 #define E1000_ICS_TXQE E1000_ICR_TXQE
00387 #define E1000_ICS_LSC E1000_ICR_LSC
00388 #define E1000_ICS_RXSEQ E1000_ICR_RXSEQ
00389 #define E1000_ICS_RXDMT0 E1000_ICR_RXDMT0
00390 #define E1000_ICS_RXO E1000_ICR_RXO
00391 #define E1000_ICS_RXT0 E1000_ICR_RXT0
00392 #define E1000_ICS_MDAC E1000_ICR_MDAC
00393 #define E1000_ICS_RXCFG E1000_ICR_RXCFG
00394 #define E1000_ICS_GPI_EN0 E1000_ICR_GPI_EN0
00395 #define E1000_ICS_GPI_EN1 E1000_ICR_GPI_EN1
00396 #define E1000_ICS_GPI_EN2 E1000_ICR_GPI_EN2
00397 #define E1000_ICS_GPI_EN3 E1000_ICR_GPI_EN3
00398 #define E1000_ICS_TXD_LOW E1000_ICR_TXD_LOW
00399 #define E1000_ICS_SRPD E1000_ICR_SRPD
00400 #define E1000_ICS_ACK E1000_ICR_ACK
00401 #define E1000_ICS_MNG E1000_ICR_MNG
00402 #define E1000_ICS_DOCK E1000_ICR_DOCK
00403 #define E1000_ICS_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0
00404 #define E1000_ICS_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0
00405 #define E1000_ICS_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR
00406 #define E1000_ICS_PB_PAR E1000_ICR_PB_PAR
00407 #define E1000_ICS_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1
00408 #define E1000_ICS_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1
00409 #define E1000_ICS_DSW E1000_ICR_DSW
00410 #define E1000_ICS_PHYINT E1000_ICR_PHYINT
00411 #define E1000_ICS_EPRST E1000_ICR_EPRST
00412
00413
00414 #define E1000_IMS_TXDW E1000_ICR_TXDW
00415 #define E1000_IMS_TXQE E1000_ICR_TXQE
00416 #define E1000_IMS_LSC E1000_ICR_LSC
00417 #define E1000_IMS_RXSEQ E1000_ICR_RXSEQ
00418 #define E1000_IMS_RXDMT0 E1000_ICR_RXDMT0
00419 #define E1000_IMS_RXO E1000_ICR_RXO
00420 #define E1000_IMS_RXT0 E1000_ICR_RXT0
00421 #define E1000_IMS_MDAC E1000_ICR_MDAC
00422 #define E1000_IMS_RXCFG E1000_ICR_RXCFG
00423 #define E1000_IMS_GPI_EN0 E1000_ICR_GPI_EN0
00424 #define E1000_IMS_GPI_EN1 E1000_ICR_GPI_EN1
00425 #define E1000_IMS_GPI_EN2 E1000_ICR_GPI_EN2
00426 #define E1000_IMS_GPI_EN3 E1000_ICR_GPI_EN3
00427 #define E1000_IMS_TXD_LOW E1000_ICR_TXD_LOW
00428 #define E1000_IMS_SRPD E1000_ICR_SRPD
00429 #define E1000_IMS_ACK E1000_ICR_ACK
00430 #define E1000_IMS_MNG E1000_ICR_MNG
00431 #define E1000_IMS_DOCK E1000_ICR_DOCK
00432 #define E1000_IMS_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0
00433 #define E1000_IMS_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0
00434 #define E1000_IMS_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR
00435 #define E1000_IMS_PB_PAR E1000_ICR_PB_PAR
00436 #define E1000_IMS_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1
00437 #define E1000_IMS_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1
00438 #define E1000_IMS_DSW E1000_ICR_DSW
00439 #define E1000_IMS_PHYINT E1000_ICR_PHYINT
00440 #define E1000_IMS_EPRST E1000_ICR_EPRST
00441
00442
00443 #define E1000_IMC_TXDW E1000_ICR_TXDW
00444 #define E1000_IMC_TXQE E1000_ICR_TXQE
00445 #define E1000_IMC_LSC E1000_ICR_LSC
00446 #define E1000_IMC_RXSEQ E1000_ICR_RXSEQ
00447 #define E1000_IMC_RXDMT0 E1000_ICR_RXDMT0
00448 #define E1000_IMC_RXO E1000_ICR_RXO
00449 #define E1000_IMC_RXT0 E1000_ICR_RXT0
00450 #define E1000_IMC_MDAC E1000_ICR_MDAC
00451 #define E1000_IMC_RXCFG E1000_ICR_RXCFG
00452 #define E1000_IMC_GPI_EN0 E1000_ICR_GPI_EN0
00453 #define E1000_IMC_GPI_EN1 E1000_ICR_GPI_EN1
00454 #define E1000_IMC_GPI_EN2 E1000_ICR_GPI_EN2
00455 #define E1000_IMC_GPI_EN3 E1000_ICR_GPI_EN3
00456 #define E1000_IMC_TXD_LOW E1000_ICR_TXD_LOW
00457 #define E1000_IMC_SRPD E1000_ICR_SRPD
00458 #define E1000_IMC_ACK E1000_ICR_ACK
00459 #define E1000_IMC_MNG E1000_ICR_MNG
00460 #define E1000_IMC_DOCK E1000_ICR_DOCK
00461 #define E1000_IMC_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0
00462 #define E1000_IMC_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0
00463 #define E1000_IMC_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR
00464 #define E1000_IMC_PB_PAR E1000_ICR_PB_PAR
00465 #define E1000_IMC_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1
00466 #define E1000_IMC_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1
00467 #define E1000_IMC_DSW E1000_ICR_DSW
00468 #define E1000_IMC_PHYINT E1000_ICR_PHYINT
00469 #define E1000_IMC_EPRST E1000_ICR_EPRST
00470
00471
00472 #define E1000_RCTL_RST 0x00000001
00473 #define E1000_RCTL_EN 0x00000002
00474 #define E1000_RCTL_SBP 0x00000004
00475 #define E1000_RCTL_UPE 0x00000008
00476 #define E1000_RCTL_MPE 0x00000010
00477 #define E1000_RCTL_LPE 0x00000020
00478 #define E1000_RCTL_LBM_NO 0x00000000
00479 #define E1000_RCTL_LBM_MAC 0x00000040
00480 #define E1000_RCTL_LBM_SLP 0x00000080
00481 #define E1000_RCTL_LBM_TCVR 0x000000C0
00482 #define E1000_RCTL_DTYP_MASK 0x00000C00
00483 #define E1000_RCTL_DTYP_PS 0x00000400
00484 #define E1000_RCTL_RDMTS_HALF 0x00000000
00485 #define E1000_RCTL_RDMTS_QUAT 0x00000100
00486 #define E1000_RCTL_RDMTS_EIGTH 0x00000200
00487 #define E1000_RCTL_MO_SHIFT 12
00488 #define E1000_RCTL_MO_0 0x00000000
00489 #define E1000_RCTL_MO_1 0x00001000
00490 #define E1000_RCTL_MO_2 0x00002000
00491 #define E1000_RCTL_MO_3 0x00003000
00492 #define E1000_RCTL_MDR 0x00004000
00493 #define E1000_RCTL_BAM 0x00008000
00494
00495 #define E1000_RCTL_SZ_2048 0x00000000
00496 #define E1000_RCTL_SZ_1024 0x00010000
00497 #define E1000_RCTL_SZ_512 0x00020000
00498 #define E1000_RCTL_SZ_256 0x00030000
00499
00500 #define E1000_RCTL_SZ_16384 0x00010000
00501 #define E1000_RCTL_SZ_8192 0x00020000
00502 #define E1000_RCTL_SZ_4096 0x00030000
00503 #define E1000_RCTL_VFE 0x00040000
00504 #define E1000_RCTL_CFIEN 0x00080000
00505 #define E1000_RCTL_CFI 0x00100000
00506 #define E1000_RCTL_DPF 0x00400000
00507 #define E1000_RCTL_PMCF 0x00800000
00508 #define E1000_RCTL_BSEX 0x02000000
00509 #define E1000_RCTL_SECRC 0x04000000
00510 #define E1000_RCTL_FLXBUF_MASK 0x78000000
00511 #define E1000_RCTL_FLXBUF_SHIFT 27
00512
00513
00514 #define E1000_EEPROM_SWDPIN0 0x0001
00515 #define E1000_EEPROM_LED_LOGIC 0x0020
00516 #define E1000_EEPROM_RW_REG_DATA 16
00517 #define E1000_EEPROM_RW_REG_DONE 0x10
00518 #define E1000_EEPROM_RW_REG_START 1
00519 #define E1000_EEPROM_RW_ADDR_SHIFT 8
00520 #define E1000_EEPROM_POLL_WRITE 1
00521 #define E1000_EEPROM_POLL_READ 0
00522
00523
00524 #define E1000_CTRL_FD 0x00000001
00525 #define E1000_CTRL_BEM 0x00000002
00526 #define E1000_CTRL_PRIOR 0x00000004
00527 #define E1000_CTRL_GIO_MASTER_DISABLE 0x00000004
00528 #define E1000_CTRL_LRST 0x00000008
00529 #define E1000_CTRL_TME 0x00000010
00530 #define E1000_CTRL_SLE 0x00000020
00531 #define E1000_CTRL_ASDE 0x00000020
00532 #define E1000_CTRL_SLU 0x00000040
00533 #define E1000_CTRL_ILOS 0x00000080
00534 #define E1000_CTRL_SPD_SEL 0x00000300
00535 #define E1000_CTRL_SPD_10 0x00000000
00536 #define E1000_CTRL_SPD_100 0x00000100
00537 #define E1000_CTRL_SPD_1000 0x00000200
00538 #define E1000_CTRL_BEM32 0x00000400
00539 #define E1000_CTRL_FRCSPD 0x00000800
00540 #define E1000_CTRL_FRCDPX 0x00001000
00541 #define E1000_CTRL_D_UD_EN 0x00002000
00542 #define E1000_CTRL_D_UD_POLARITY 0x00004000
00543 #define E1000_CTRL_FORCE_PHY_RESET 0x00008000
00544 #define E1000_CTRL_EXT_LINK_EN 0x00010000
00545 #define E1000_CTRL_SWDPIN0 0x00040000
00546 #define E1000_CTRL_SWDPIN1 0x00080000
00547 #define E1000_CTRL_SWDPIN2 0x00100000
00548 #define E1000_CTRL_SWDPIN3 0x00200000
00549 #define E1000_CTRL_SWDPIO0 0x00400000
00550 #define E1000_CTRL_SWDPIO1 0x00800000
00551 #define E1000_CTRL_SWDPIO2 0x01000000
00552 #define E1000_CTRL_SWDPIO3 0x02000000
00553 #define E1000_CTRL_RST 0x04000000
00554 #define E1000_CTRL_RFCE 0x08000000
00555 #define E1000_CTRL_TFCE 0x10000000
00556 #define E1000_CTRL_RTE 0x20000000
00557 #define E1000_CTRL_VME 0x40000000
00558 #define E1000_CTRL_PHY_RST 0x80000000
00559 #define E1000_CTRL_SW2FW_INT 0x02000000
00560
00561
00562 #define E1000_STATUS_FD 0x00000001
00563 #define E1000_STATUS_LU 0x00000002
00564 #define E1000_STATUS_FUNC_MASK 0x0000000C
00565 #define E1000_STATUS_FUNC_SHIFT 2
00566 #define E1000_STATUS_FUNC_0 0x00000000
00567 #define E1000_STATUS_FUNC_1 0x00000004
00568 #define E1000_STATUS_TXOFF 0x00000010
00569 #define E1000_STATUS_TBIMODE 0x00000020
00570 #define E1000_STATUS_SPEED_MASK 0x000000C0
00571 #define E1000_STATUS_SPEED_10 0x00000000
00572 #define E1000_STATUS_SPEED_100 0x00000040
00573 #define E1000_STATUS_SPEED_1000 0x00000080
00574 #define E1000_STATUS_LAN_INIT_DONE 0x00000200
00575
00576 #define E1000_STATUS_ASDV 0x00000300
00577 #define E1000_STATUS_DOCK_CI 0x00000800
00578 #define E1000_STATUS_GIO_MASTER_ENABLE 0x00080000
00579 #define E1000_STATUS_MTXCKOK 0x00000400
00580 #define E1000_STATUS_PCI66 0x00000800
00581 #define E1000_STATUS_BUS64 0x00001000
00582 #define E1000_STATUS_PCIX_MODE 0x00002000
00583 #define E1000_STATUS_PCIX_SPEED 0x0000C000
00584 #define E1000_STATUS_BMC_SKU_0 0x00100000
00585 #define E1000_STATUS_BMC_SKU_1 0x00200000
00586 #define E1000_STATUS_BMC_SKU_2 0x00400000
00587 #define E1000_STATUS_BMC_CRYPTO 0x00800000
00588 #define E1000_STATUS_BMC_LITE 0x01000000
00589 #define E1000_STATUS_RGMII_ENABLE 0x02000000
00590 #define E1000_STATUS_FUSE_8 0x04000000
00591 #define E1000_STATUS_FUSE_9 0x08000000
00592 #define E1000_STATUS_SERDES0_DIS 0x10000000
00593 #define E1000_STATUS_SERDES1_DIS 0x20000000
00594
00595
00596 #define E1000_EECD_SK 0x00000001
00597 #define E1000_EECD_CS 0x00000002
00598 #define E1000_EECD_DI 0x00000004
00599 #define E1000_EECD_DO 0x00000008
00600 #define E1000_EECD_FWE_MASK 0x00000030
00601 #define E1000_EECD_FWE_DIS 0x00000010
00602 #define E1000_EECD_FWE_EN 0x00000020
00603 #define E1000_EECD_FWE_SHIFT 4
00604 #define E1000_EECD_REQ 0x00000040
00605 #define E1000_EECD_GNT 0x00000080
00606 #define E1000_EECD_PRES 0x00000100
00607 #define E1000_EECD_SIZE 0x00000200
00608 #define E1000_EECD_ADDR_BITS 0x00000400
00609
00610 #define E1000_EECD_TYPE 0x00002000
00611 #ifndef E1000_EEPROM_GRANT_ATTEMPTS
00612 #define E1000_EEPROM_GRANT_ATTEMPTS 1000
00613 #endif
00614 #define E1000_EECD_AUTO_RD 0x00000200
00615 #define E1000_EECD_SIZE_EX_MASK 0x00007800
00616 #define E1000_EECD_SIZE_EX_SHIFT 11
00617 #define E1000_EECD_NVADDS 0x00018000
00618 #define E1000_EECD_SELSHAD 0x00020000
00619 #define E1000_EECD_INITSRAM 0x00040000
00620 #define E1000_EECD_FLUPD 0x00080000
00621 #define E1000_EECD_AUPDEN 0x00100000
00622 #define E1000_EECD_SHADV 0x00200000
00623 #define E1000_EECD_SEC1VAL 0x00400000
00624 #define E1000_EECD_SECVAL_SHIFT 22
00625 #define E1000_STM_OPCODE 0xDB00
00626 #define E1000_HICR_FW_RESET 0xC0
00627
00628 #define E1000_SHADOW_RAM_WORDS 2048
00629 #define E1000_ICH_NVM_SIG_WORD 0x13
00630 #define E1000_ICH_NVM_SIG_MASK 0xC0
00631
00632
00633 #define E1000_MDIC_DATA_MASK 0x0000FFFF
00634 #define E1000_MDIC_REG_MASK 0x001F0000
00635 #define E1000_MDIC_REG_SHIFT 16
00636 #define E1000_MDIC_PHY_MASK 0x03E00000
00637 #define E1000_MDIC_PHY_SHIFT 21
00638 #define E1000_MDIC_OP_WRITE 0x04000000
00639 #define E1000_MDIC_OP_READ 0x08000000
00640 #define E1000_MDIC_READY 0x10000000
00641 #define E1000_MDIC_INT_EN 0x20000000
00642 #define E1000_MDIC_ERROR 0x40000000
00643
00644
00645 #define EEPROM_READ_OPCODE_MICROWIRE 0x6
00646 #define EEPROM_WRITE_OPCODE_MICROWIRE 0x5
00647 #define EEPROM_ERASE_OPCODE_MICROWIRE 0x7
00648 #define EEPROM_EWEN_OPCODE_MICROWIRE 0x13
00649 #define EEPROM_EWDS_OPCODE_MICROWIRE 0x10
00650
00651
00652 #define EEPROM_COMPAT 0x0003
00653 #define EEPROM_ID_LED_SETTINGS 0x0004
00654 #define EEPROM_VERSION 0x0005
00655 #define EEPROM_SERDES_AMPLITUDE 0x0006
00656 #define EEPROM_PHY_CLASS_WORD 0x0007
00657 #define EEPROM_INIT_CONTROL1_REG 0x000A
00658 #define EEPROM_INIT_CONTROL2_REG 0x000F
00659 #define EEPROM_SWDEF_PINS_CTRL_PORT_1 0x0010
00660 #define EEPROM_INIT_CONTROL3_PORT_B 0x0014
00661 #define EEPROM_INIT_3GIO_3 0x001A
00662 #define EEPROM_SWDEF_PINS_CTRL_PORT_0 0x0020
00663 #define EEPROM_INIT_CONTROL3_PORT_A 0x0024
00664 #define EEPROM_CFG 0x0012
00665 #define EEPROM_FLASH_VERSION 0x0032
00666 #define EEPROM_CHECKSUM_REG 0x003F
00667
00668 #define E1000_EEPROM_CFG_DONE 0x00040000
00669 #define E1000_EEPROM_CFG_DONE_PORT_1 0x00080000
00670
00671
00672 struct e1000_tx_desc {
00673 uint64_t buffer_addr;
00674 union {
00675 uint32_t data;
00676 struct {
00677 uint16_t length;
00678 uint8_t cso;
00679 uint8_t cmd;
00680 } flags;
00681 } lower;
00682 union {
00683 uint32_t data;
00684 struct {
00685 uint8_t status;
00686 uint8_t css;
00687 uint16_t special;
00688 } fields;
00689 } upper;
00690 };
00691
00692
00693 #define E1000_TXD_DTYP_D 0x00100000
00694 #define E1000_TXD_DTYP_C 0x00000000
00695 #define E1000_TXD_POPTS_IXSM 0x01
00696 #define E1000_TXD_POPTS_TXSM 0x02
00697 #define E1000_TXD_CMD_EOP 0x01000000
00698 #define E1000_TXD_CMD_IFCS 0x02000000
00699 #define E1000_TXD_CMD_IC 0x04000000
00700 #define E1000_TXD_CMD_RS 0x08000000
00701 #define E1000_TXD_CMD_RPS 0x10000000
00702 #define E1000_TXD_CMD_DEXT 0x20000000
00703 #define E1000_TXD_CMD_VLE 0x40000000
00704 #define E1000_TXD_CMD_IDE 0x80000000
00705 #define E1000_TXD_STAT_DD 0x00000001
00706 #define E1000_TXD_STAT_EC 0x00000002
00707 #define E1000_TXD_STAT_LC 0x00000004
00708 #define E1000_TXD_STAT_TU 0x00000008
00709 #define E1000_TXD_CMD_TCP 0x01000000
00710 #define E1000_TXD_CMD_IP 0x02000000
00711 #define E1000_TXD_CMD_TSE 0x04000000
00712 #define E1000_TXD_STAT_TC 0x00000004
00713
00714
00715 #define E1000_TCTL_RST 0x00000001
00716 #define E1000_TCTL_EN 0x00000002
00717 #define E1000_TCTL_BCE 0x00000004
00718 #define E1000_TCTL_PSP 0x00000008
00719 #define E1000_TCTL_CT 0x00000ff0
00720 #define E1000_TCTL_COLD 0x003ff000
00721 #define E1000_TCTL_SWXOFF 0x00400000
00722 #define E1000_TCTL_PBE 0x00800000
00723 #define E1000_TCTL_RTLC 0x01000000
00724 #define E1000_TCTL_NRTU 0x02000000
00725 #define E1000_TCTL_MULR 0x10000000
00726
00727
00728 struct e1000_rx_desc {
00729 uint64_t buffer_addr;
00730 uint16_t length;
00731 uint16_t csum;
00732 uint8_t status;
00733 uint8_t errors;
00734 uint16_t special;
00735 };
00736
00737
00738 #define E1000_RXD_STAT_DD 0x01
00739 #define E1000_RXD_STAT_EOP 0x02
00740 #define E1000_RXD_STAT_IXSM 0x04
00741 #define E1000_RXD_STAT_VP 0x08
00742 #define E1000_RXD_STAT_UDPCS 0x10
00743 #define E1000_RXD_STAT_TCPCS 0x20
00744 #define E1000_RXD_STAT_IPCS 0x40
00745 #define E1000_RXD_STAT_PIF 0x80
00746 #define E1000_RXD_STAT_IPIDV 0x200
00747 #define E1000_RXD_STAT_UDPV 0x400
00748 #define E1000_RXD_STAT_ACK 0x8000
00749 #define E1000_RXD_ERR_CE 0x01
00750 #define E1000_RXD_ERR_SE 0x02
00751 #define E1000_RXD_ERR_SEQ 0x04
00752 #define E1000_RXD_ERR_CXE 0x10
00753 #define E1000_RXD_ERR_TCPE 0x20
00754 #define E1000_RXD_ERR_IPE 0x40
00755 #define E1000_RXD_ERR_RXE 0x80
00756 #define E1000_RXD_SPC_VLAN_MASK 0x0FFF
00757 #define E1000_RXD_SPC_PRI_MASK 0xE000
00758 #define E1000_RXD_SPC_PRI_SHIFT 13
00759 #define E1000_RXD_SPC_CFI_MASK 0x1000
00760 #define E1000_RXD_SPC_CFI_SHIFT 12
00761
00762 #define E1000_RXDEXT_STATERR_CE 0x01000000
00763 #define E1000_RXDEXT_STATERR_SE 0x02000000
00764 #define E1000_RXDEXT_STATERR_SEQ 0x04000000
00765 #define E1000_RXDEXT_STATERR_CXE 0x10000000
00766 #define E1000_RXDEXT_STATERR_TCPE 0x20000000
00767 #define E1000_RXDEXT_STATERR_IPE 0x40000000
00768 #define E1000_RXDEXT_STATERR_RXE 0x80000000
00769
00770 #define E1000_RXDPS_HDRSTAT_HDRSP 0x00008000
00771 #define E1000_RXDPS_HDRSTAT_HDRLEN_MASK 0x000003FF
00772
00773
00774 #define E1000_RAH_AV 0x80000000
00775
00776
00777 struct e1000_context_desc {
00778 union {
00779 uint32_t ip_config;
00780 struct {
00781 uint8_t ipcss;
00782 uint8_t ipcso;
00783 uint16_t ipcse;
00784 } ip_fields;
00785 } lower_setup;
00786 union {
00787 uint32_t tcp_config;
00788 struct {
00789 uint8_t tucss;
00790 uint8_t tucso;
00791 uint16_t tucse;
00792 } tcp_fields;
00793 } upper_setup;
00794 uint32_t cmd_and_length;
00795 union {
00796 uint32_t data;
00797 struct {
00798 uint8_t status;
00799 uint8_t hdr_len;
00800 uint16_t mss;
00801 } fields;
00802 } tcp_seg_setup;
00803 };
00804
00805
00806 struct e1000_data_desc {
00807 uint64_t buffer_addr;
00808 union {
00809 uint32_t data;
00810 struct {
00811 uint16_t length;
00812 uint8_t typ_len_ext;
00813 uint8_t cmd;
00814 } flags;
00815 } lower;
00816 union {
00817 uint32_t data;
00818 struct {
00819 uint8_t status;
00820 uint8_t popts;
00821 uint16_t special;
00822 } fields;
00823 } upper;
00824 };
00825
00826
00827 #define E1000_MANC_SMBUS_EN 0x00000001
00828 #define E1000_MANC_ASF_EN 0x00000002
00829 #define E1000_MANC_R_ON_FORCE 0x00000004
00830 #define E1000_MANC_RMCP_EN 0x00000100
00831 #define E1000_MANC_0298_EN 0x00000200
00832 #define E1000_MANC_IPV4_EN 0x00000400
00833 #define E1000_MANC_IPV6_EN 0x00000800
00834 #define E1000_MANC_SNAP_EN 0x00001000
00835 #define E1000_MANC_ARP_EN 0x00002000
00836 #define E1000_MANC_NEIGHBOR_EN 0x00004000
00837
00838 #define E1000_MANC_ARP_RES_EN 0x00008000
00839 #define E1000_MANC_TCO_RESET 0x00010000
00840 #define E1000_MANC_RCV_TCO_EN 0x00020000
00841 #define E1000_MANC_REPORT_STATUS 0x00040000
00842 #define E1000_MANC_RCV_ALL 0x00080000
00843 #define E1000_MANC_BLK_PHY_RST_ON_IDE 0x00040000
00844 #define E1000_MANC_EN_MAC_ADDR_FILTER 0x00100000
00845
00846 #define E1000_MANC_EN_MNG2HOST 0x00200000
00847
00848 #define E1000_MANC_EN_IP_ADDR_FILTER 0x00400000
00849
00850 #define E1000_MANC_EN_XSUM_FILTER 0x00800000
00851 #define E1000_MANC_BR_EN 0x01000000
00852 #define E1000_MANC_SMB_REQ 0x01000000
00853 #define E1000_MANC_SMB_GNT 0x02000000
00854 #define E1000_MANC_SMB_CLK_IN 0x04000000
00855 #define E1000_MANC_SMB_DATA_IN 0x08000000
00856 #define E1000_MANC_SMB_DATA_OUT 0x10000000
00857 #define E1000_MANC_SMB_CLK_OUT 0x20000000
00858
00859 #define E1000_MANC_SMB_DATA_OUT_SHIFT 28
00860 #define E1000_MANC_SMB_CLK_OUT_SHIFT 29
00861
00862
00863 #define EEPROM_SUM 0xBABA
00864
00865 #endif