#ifndef _IGC_REGS_H_
#define _IGC_REGS_H_
#define IGC_CTRL 0x00000
#define IGC_STATUS 0x00008
#define IGC_EECD 0x00010
#define IGC_EERD 0x12014
#define IGC_EEWR 0x12018
#define IGC_CTRL_EXT 0x00018
#define IGC_MDIC 0x00020
#define IGC_MDICNFG 0x00E04
#define IGC_FCAL 0x00028
#define IGC_FCAH 0x0002C
#define IGC_I225_FLSWCTL 0x12048
#define IGC_I225_FLSWDATA 0x1204C
#define IGC_I225_FLSWCNT 0x12050
#define IGC_I225_FLSECU 0x12114
#define IGC_FCT 0x00030
#define IGC_CONNSW 0x00034
#define IGC_VET 0x00038
#define IGC_ICR 0x01500
#define IGC_ICS 0x01504
#define IGC_IMS 0x01508
#define IGC_IMC 0x0150C
#define IGC_IAM 0x01510
#define IGC_RCTL 0x00100
#define IGC_FCTTV 0x00170
#define IGC_TXCW 0x00178
#define IGC_RXCW 0x00180
#define IGC_EICR 0x01580
#define IGC_EITR(_n) (0x01680 + (0x4 * (_n)))
#define IGC_EICS 0x01520
#define IGC_EIMS 0x01524
#define IGC_EIMC 0x01528
#define IGC_EIAC 0x0152C
#define IGC_EIAM 0x01530
#define IGC_GPIE 0x01514
#define IGC_IVAR0 0x01700
#define IGC_IVAR_MISC 0x01740
#define IGC_TCTL 0x00400
#define IGC_TCTL_EXT 0x00404
#define IGC_TIPG 0x00410
#define IGC_AIT 0x00458
#define IGC_LEDCTL 0x00E00
#define IGC_LEDMUX 0x08130
#define IGC_EXTCNF_CTRL 0x00F00
#define IGC_EXTCNF_SIZE 0x00F08
#define IGC_PHY_CTRL 0x00F10
#define IGC_PBA 0x01000
#define IGC_PBS 0x01008
#define IGC_EEMNGCTL 0x01010
#define IGC_EEMNGCTL_I225 0x01010
#define IGC_EEARBC_I225 0x12024
#define IGC_FLOP 0x0103C
#define IGC_WDSTP 0x01040
#define IGC_SWDSTS 0x01044
#define IGC_FRTIMER 0x01048
#define IGC_TCPTIMER 0x0104C
#define IGC_ERT 0x02008
#define IGC_FCRTL 0x02160
#define IGC_FCRTH 0x02168
#define IGC_PSRCTL 0x02170
#define IGC_RDFH 0x02410
#define IGC_RDFT 0x02418
#define IGC_RDFHS 0x02420
#define IGC_RDFTS 0x02428
#define IGC_RDFPC 0x02430
#define IGC_PBRTH 0x02458
#define IGC_FCRTV 0x02460
#define IGC_RXPBS 0x02404
#define IGC_SRWR 0x12018
#define IGC_EEC_REG 0x12010
#define IGC_SHADOWINF 0x12068
#define IGC_FLFWUPDATE 0x12108
#define IGC_INVM_DATA_REG(_n) (0x12120 + 4*(_n))
#define IGC_INVM_SIZE 64
#define IGC_MMDAC 13
#define IGC_MMDAAD 14
#define IGC_RDBAL(_n) ((_n) < 4 ? (0x02800 + ((_n) * 0x100)) : \
(0x0C000 + ((_n) * 0x40)))
#define IGC_RDBAH(_n) ((_n) < 4 ? (0x02804 + ((_n) * 0x100)) : \
(0x0C004 + ((_n) * 0x40)))
#define IGC_RDLEN(_n) ((_n) < 4 ? (0x02808 + ((_n) * 0x100)) : \
(0x0C008 + ((_n) * 0x40)))
#define IGC_SRRCTL(_n) ((_n) < 4 ? (0x0280C + ((_n) * 0x100)) : \
(0x0C00C + ((_n) * 0x40)))
#define IGC_RDH(_n) ((_n) < 4 ? (0x02810 + ((_n) * 0x100)) : \
(0x0C010 + ((_n) * 0x40)))
#define IGC_RDT(_n) ((_n) < 4 ? (0x02818 + ((_n) * 0x100)) : \
(0x0C018 + ((_n) * 0x40)))
#define IGC_RXDCTL(_n) ((_n) < 4 ? (0x02828 + ((_n) * 0x100)) : \
(0x0C028 + ((_n) * 0x40)))
#define IGC_RQDPC(_n) ((_n) < 4 ? (0x02830 + ((_n) * 0x100)) : \
(0x0C030 + ((_n) * 0x40)))
#define IGC_TDBAL(_n) ((_n) < 4 ? (0x03800 + ((_n) * 0x100)) : \
(0x0E000 + ((_n) * 0x40)))
#define IGC_TDBAH(_n) ((_n) < 4 ? (0x03804 + ((_n) * 0x100)) : \
(0x0E004 + ((_n) * 0x40)))
#define IGC_TDLEN(_n) ((_n) < 4 ? (0x03808 + ((_n) * 0x100)) : \
(0x0E008 + ((_n) * 0x40)))
#define IGC_TDH(_n) ((_n) < 4 ? (0x03810 + ((_n) * 0x100)) : \
(0x0E010 + ((_n) * 0x40)))
#define IGC_TDT(_n) ((_n) < 4 ? (0x03818 + ((_n) * 0x100)) : \
(0x0E018 + ((_n) * 0x40)))
#define IGC_TXDCTL(_n) ((_n) < 4 ? (0x03828 + ((_n) * 0x100)) : \
(0x0E028 + ((_n) * 0x40)))
#define IGC_TARC(_n) (0x03840 + ((_n) * 0x100))
#define IGC_RSRPD 0x02C00
#define IGC_RAID 0x02C08
#define IGC_KABGTXD 0x03004
#define IGC_PSRTYPE(_i) (0x05480 + ((_i) * 4))
#define IGC_RAL(_i) (((_i) <= 15) ? (0x05400 + ((_i) * 8)) : \
(0x054E0 + ((_i - 16) * 8)))
#define IGC_RAH(_i) (((_i) <= 15) ? (0x05404 + ((_i) * 8)) : \
(0x054E4 + ((_i - 16) * 8)))
#define IGC_VLANPQF 0x055B0
#define IGC_SHRAL(_i) (0x05438 + ((_i) * 8))
#define IGC_SHRAH(_i) (0x0543C + ((_i) * 8))
#define IGC_IP4AT_REG(_i) (0x05840 + ((_i) * 8))
#define IGC_IP6AT_REG(_i) (0x05880 + ((_i) * 4))
#define IGC_WUPM_REG(_i) (0x05A00 + ((_i) * 4))
#define IGC_FFMT_REG(_i) (0x09000 + ((_i) * 8))
#define IGC_FFVT_REG(_i) (0x09800 + ((_i) * 8))
#define IGC_FFLT_REG(_i) (0x05F00 + ((_i) * 8))
#define IGC_TXPBS 0x03404
#define IGC_DTXTCPFLGL 0x0359C
#define IGC_DTXTCPFLGH 0x035A0
#define IGC_CRCERRS 0x04000
#define IGC_ALGNERRC 0x04004
#define IGC_MPC 0x04010
#define IGC_SCC 0x04014
#define IGC_ECOL 0x04018
#define IGC_MCC 0x0401C
#define IGC_LATECOL 0x04020
#define IGC_COLC 0x04028
#define IGC_RERC 0x0402C
#define IGC_DC 0x04030
#define IGC_TNCRS 0x04034
#define IGC_HTDPMC 0x0403C
#define IGC_RLEC 0x04040
#define IGC_XONRXC 0x04048
#define IGC_XONTXC 0x0404C
#define IGC_XOFFRXC 0x04050
#define IGC_XOFFTXC 0x04054
#define IGC_FCRUC 0x04058
#define IGC_PRC64 0x0405C
#define IGC_PRC127 0x04060
#define IGC_PRC255 0x04064
#define IGC_PRC511 0x04068
#define IGC_PRC1023 0x0406C
#define IGC_PRC1522 0x04070
#define IGC_GPRC 0x04074
#define IGC_BPRC 0x04078
#define IGC_MPRC 0x0407C
#define IGC_GPTC 0x04080
#define IGC_GORCL 0x04088
#define IGC_GORCH 0x0408C
#define IGC_GOTCL 0x04090
#define IGC_GOTCH 0x04094
#define IGC_RNBC 0x040A0
#define IGC_RUC 0x040A4
#define IGC_RFC 0x040A8
#define IGC_ROC 0x040AC
#define IGC_RJC 0x040B0
#define IGC_MGTPRC 0x040B4
#define IGC_MGTPDC 0x040B8
#define IGC_MGTPTC 0x040BC
#define IGC_TORL 0x040C0
#define IGC_TORH 0x040C4
#define IGC_TOTL 0x040C8
#define IGC_TOTH 0x040CC
#define IGC_TPR 0x040D0
#define IGC_TPT 0x040D4
#define IGC_PTC64 0x040D8
#define IGC_PTC127 0x040DC
#define IGC_PTC255 0x040E0
#define IGC_PTC511 0x040E4
#define IGC_PTC1023 0x040E8
#define IGC_PTC1522 0x040EC
#define IGC_MPTC 0x040F0
#define IGC_BPTC 0x040F4
#define IGC_TSCTC 0x040F8
#define IGC_IAC 0x04100
#define IGC_RXDMTC 0x04120
#define IGC_VFGPRC 0x00F10
#define IGC_VFGORC 0x00F18
#define IGC_VFMPRC 0x00F3C
#define IGC_VFGPTC 0x00F14
#define IGC_VFGOTC 0x00F34
#define IGC_VFGOTLBC 0x00F50
#define IGC_VFGPTLBC 0x00F44
#define IGC_VFGORLBC 0x00F48
#define IGC_VFGPRLBC 0x00F40
#define IGC_HGORCL 0x04128
#define IGC_HGORCH 0x0412C
#define IGC_HGOTCL 0x04130
#define IGC_HGOTCH 0x04134
#define IGC_LENERRS 0x04138
#define IGC_PCS_ANADV 0x04218
#define IGC_PCS_LPAB 0x0421C
#define IGC_RXCSUM 0x05000
#define IGC_RLPML 0x05004
#define IGC_RFCTL 0x05008
#define IGC_MTA 0x05200
#define IGC_RA 0x05400
#define IGC_VFTA 0x05600
#define IGC_WUC 0x05800
#define IGC_WUFC 0x05808
#define IGC_WUS 0x05810
#define IGC_MANC 0x05820
#define IGC_IPAV 0x05838
#define IGC_IP4AT 0x05840
#define IGC_IP6AT 0x05880
#define IGC_WUPL 0x05900
#define IGC_WUPM 0x05A00
#define IGC_WUPM_EXT 0x0B800
#define IGC_WUFC_EXT 0x0580C
#define IGC_WUS_EXT 0x05814
#define IGC_FHFTSL 0x05804
#define IGC_PROXYFCEX 0x05590
#define IGC_PROXYEXS 0x05594
#define IGC_WFUTPF 0x05500
#define IGC_RFUTPF 0x05580
#define IGC_RWPFC 0x05584
#define IGC_WFUTPS 0x05588
#define IGC_WCS 0x0558C
#define IGC_PBACL 0x05B68
#define IGC_FFLT 0x05F00
#define IGC_HOST_IF 0x08800
#define IGC_FHFT(_n) (0x09000 + ((_n) * 0x100))
#define IGC_FHFT_EXT(_n) (0x09A00 + ((_n) * 0x100))
#define IGC_KMRNCTRLSTA 0x00034
#define IGC_MANC2H 0x05860
#define IGC_MDEF(_n) (0x05890 + (4 * (_n)))
#define IGC_SW_FW_SYNC 0x05B5C
#define IGC_FACTPS 0x05B30
#define IGC_SWSM 0x05B50
#define IGC_FWSM 0x05B54
#define IGC_SWSM2 0x05B58
#define IGC_FFLT_DBG 0x05F04
#define IGC_HICR 0x08F00
#define IGC_FWSTS 0x08F0C
#define IGC_MRQC 0x05818
#define IGC_IMIR(_i) (0x05A80 + ((_i) * 4))
#define IGC_IMIREXT(_i) (0x05AA0 + ((_i) * 4))
#define IGC_IMIRVP 0x05AC0
#define IGC_MSIXBM(_i) (0x01600 + ((_i) * 4))
#define IGC_RETA(_i) (0x05C00 + ((_i) * 4))
#define IGC_RSSRK(_i) (0x05C80 + ((_i) * 4))
#define IGC_RSSIM 0x05864
#define IGC_RSSIR 0x05868
#define IGC_UTA 0x0A000
#define IGC_TSYNCRXCTL 0x0B620
#define IGC_TSYNCTXCTL 0x0B614
#define IGC_TSYNCRXCFG 0x05F50
#define IGC_RXSTMPL 0x0B624
#define IGC_RXSTMPH 0x0B628
#define IGC_RXSATRL 0x0B62C
#define IGC_RXSATRH 0x0B630
#define IGC_TXSTMPL 0x0B618
#define IGC_TXSTMPH 0x0B61C
#define IGC_SYSTIML 0x0B600
#define IGC_SYSTIMH 0x0B604
#define IGC_TIMINCA 0x0B608
#define IGC_TIMADJL 0x0B60C
#define IGC_TIMADJH 0x0B610
#define IGC_TSAUXC 0x0B640
#define IGC_SYSTIMR 0x0B6F8
#define IGC_TSICR 0x0B66C
#define IGC_TSIM 0x0B674
#define IGC_SAQF(_n) (0x05980 + (4 * (_n)))
#define IGC_DAQF(_n) (0x059A0 + (4 * (_n)))
#define IGC_SPQF(_n) (0x059C0 + (4 * (_n)))
#define IGC_FTQF(_n) (0x059E0 + (4 * (_n)))
#define IGC_TTQF(_n) (0x059E0 + (4 * (_n)))
#define IGC_SYNQF(_n) (0x055FC + (4 * (_n)))
#define IGC_ETQF(_n) (0x05CB0 + (4 * (_n)))
#define IGC_ETQF_FILTER_ENABLE (1 << 26)
#define IGC_ETQF_IMM_INT (1 << 29)
#define IGC_ETQF_QUEUE_ENABLE (1 << 31)
#define IGC_ETQF_QUEUE_SHIFT 16
#define IGC_ETQF_QUEUE_MASK 0x00070000
#define IGC_ETQF_ETYPE_MASK 0x0000FFFF
#define IGC_RTTDCS 0x3600
#define IGC_RTTPCS 0x3474
#define IGC_RTRPCS 0x2474
#define IGC_RTRUP2TC 0x05AC4
#define IGC_RTTUP2TC 0x0418
#define IGC_RTTDTCRC(_n) (0x3610 + ((_n) * 4))
#define IGC_RTTPTCRC(_n) (0x3480 + ((_n) * 4))
#define IGC_RTRPTCRC(_n) (0x2480 + ((_n) * 4))
#define IGC_RTTDTCRS(_n) (0x3630 + ((_n) * 4))
#define IGC_RTTDTCRM(_n) (0x3650 + ((_n) * 4))
#define IGC_RTTPTCRS(_n) (0x34A0 + ((_n) * 4))
#define IGC_RTTPTCRM(_n) (0x34C0 + ((_n) * 4))
#define IGC_RTRPTCRS(_n) (0x24A0 + ((_n) * 4))
#define IGC_RTRPTCRM(_n) (0x24C0 + ((_n) * 4))
#define IGC_RTTDVMRM(_n) (0x3670 + ((_n) * 4))
#define IGC_RTTBCNRM(_n) (0x3690 + ((_n) * 4))
#define IGC_RTTDQSEL 0x3604
#define IGC_RTTDVMRC 0x3608
#define IGC_RTTDVMRS 0x360C
#define IGC_RTTBCNRC 0x36B0
#define IGC_RTTBCNRS 0x36B4
#define IGC_RTTBCNCR 0xB200
#define IGC_RTTBCNTG 0x35A4
#define IGC_RTTBCNCP 0xB208
#define IGC_RTRBCNCR 0xB20C
#define IGC_RTTBCNRD 0x36B8
#define IGC_PFCTOP 0x1080
#define IGC_RTTBCNIDX 0xB204
#define IGC_RTTBCNACH 0x0B214
#define IGC_RTTBCNACL 0x0B210
#define IGC_DMACR 0x02508
#define IGC_DMCTXTH 0x03550
#define IGC_DMCTLX 0x02514
#define IGC_DMCRTRH 0x05DD0
#define IGC_DMCCNT 0x05DD4
#define IGC_FCRTC 0x02170
#define IGC_PCIEMISC 0x05BB8
#define IGC_PCIEERRSTS 0x05BA8
#define IGC_PROXYS 0x5F64
#define IGC_PROXYFC 0x5F60
#define IGC_THMJT 0x08100
#define IGC_THLOWTC 0x08104
#define IGC_THMIDTC 0x08108
#define IGC_THHIGHTC 0x0810C
#define IGC_THSTAT 0x08110
#define IGC_IPCNFG 0x0E38
#define IGC_LTRC 0x01A0
#define IGC_EEER 0x0E30
#define IGC_EEE_SU 0x0E34
#define IGC_EEE_SU_2P5 0x0E3C
#define IGC_TLPIC 0x4148
#define IGC_RLPIC 0x414C
#define IGC_B2OSPC 0x08FE0
#define IGC_B2OGPRC 0x04158
#define IGC_O2BGPTC 0x08FE4
#define IGC_O2BSPC 0x0415C
#define IGC_LTRMINV 0x5BB0
#define IGC_LTRMAXV 0x5BB4
#define IGC_TRGTTIML0 0x0B644
#define IGC_TRGTTIMH0 0x0B648
#define IGC_TRGTTIML1 0x0B64C
#define IGC_TRGTTIMH1 0x0B650
#define IGC_FREQOUT0 0x0B654
#define IGC_FREQOUT1 0x0B658
#define IGC_TSSDP 0x0003C
#endif