e1000e_ich8lan.h
Go to the documentation of this file.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 FILE_LICENCE ( GPL2_OR_LATER );
00030
00031 #ifndef _E1000E_ICH8LAN_H_
00032 #define _E1000E_ICH8LAN_H_
00033
00034 #define ICH_FLASH_GFPREG 0x0000
00035 #define ICH_FLASH_HSFSTS 0x0004
00036 #define ICH_FLASH_HSFCTL 0x0006
00037 #define ICH_FLASH_FADDR 0x0008
00038 #define ICH_FLASH_FDATA0 0x0010
00039
00040
00041 #define ICH_FLASH_READ_COMMAND_TIMEOUT 10000000
00042 #define ICH_FLASH_WRITE_COMMAND_TIMEOUT 10000000
00043 #define ICH_FLASH_ERASE_COMMAND_TIMEOUT 10000000
00044 #define ICH_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF
00045 #define ICH_FLASH_CYCLE_REPEAT_COUNT 10
00046
00047 #define ICH_CYCLE_READ 0
00048 #define ICH_CYCLE_WRITE 2
00049 #define ICH_CYCLE_ERASE 3
00050
00051 #define FLASH_GFPREG_BASE_MASK 0x1FFF
00052 #define FLASH_SECTOR_ADDR_SHIFT 12
00053
00054 #define ICH_FLASH_SEG_SIZE_256 256
00055 #define ICH_FLASH_SEG_SIZE_4K 4096
00056 #define ICH_FLASH_SEG_SIZE_8K 8192
00057 #define ICH_FLASH_SEG_SIZE_64K 65536
00058 #define ICH_FLASH_SECTOR_SIZE 4096
00059
00060 #define ICH_FLASH_REG_MAPSIZE 0x00A0
00061
00062 #define E1000_ICH_FWSM_RSPCIPHY 0x00000040
00063 #define E1000_ICH_FWSM_DISSW 0x10000000
00064
00065 #define E1000_ICH_FWSM_FW_VALID 0x00008000
00066
00067 #define E1000_ICH_MNG_IAMT_MODE 0x2
00068
00069 #define ID_LED_DEFAULT_ICH8LAN ((ID_LED_DEF1_DEF2 << 12) | \
00070 (ID_LED_OFF1_OFF2 << 8) | \
00071 (ID_LED_OFF1_ON2 << 4) | \
00072 (ID_LED_DEF1_DEF2))
00073
00074 #define E1000_ICH_NVM_SIG_WORD 0x13
00075 #define E1000_ICH_NVM_SIG_MASK 0xC000
00076 #define E1000_ICH_NVM_VALID_SIG_MASK 0xC0
00077 #define E1000_ICH_NVM_SIG_VALUE 0x80
00078
00079 #define E1000_ICH8_LAN_INIT_TIMEOUT 1500
00080
00081 #define E1000_FEXTNVM_SW_CONFIG 1
00082 #define E1000_FEXTNVM_SW_CONFIG_ICH8M (1 << 27)
00083
00084 #define PCIE_ICH8_SNOOP_ALL PCIE_NO_SNOOP_ALL
00085
00086 #define E1000_ICH_RAR_ENTRIES 7
00087
00088 #define PHY_PAGE_SHIFT 5
00089 #define PHY_REG(page, reg) (((page) << PHY_PAGE_SHIFT) | \
00090 ((reg) & MAX_PHY_REG_ADDRESS))
00091 #define IGP3_KMRN_DIAG PHY_REG(770, 19)
00092 #define IGP3_VR_CTRL PHY_REG(776, 18)
00093 #define IGP3_CAPABILITY PHY_REG(776, 19)
00094 #define IGP3_PM_CTRL PHY_REG(769, 20)
00095
00096 #define IGP3_KMRN_DIAG_PCS_LOCK_LOSS 0x0002
00097 #define IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK 0x0300
00098 #define IGP3_VR_CTRL_MODE_SHUTDOWN 0x0200
00099 #define IGP3_PM_CTRL_FORCE_PWR_DOWN 0x0020
00100
00101
00102 #define BM_RCTL PHY_REG(BM_WUC_PAGE, 0)
00103 #define BM_WUC PHY_REG(BM_WUC_PAGE, 1)
00104 #define BM_WUFC PHY_REG(BM_WUC_PAGE, 2)
00105 #define BM_WUS PHY_REG(BM_WUC_PAGE, 3)
00106 #define BM_RAR_L(_i) (BM_PHY_REG(BM_WUC_PAGE, 16 + ((_i) << 2)))
00107 #define BM_RAR_M(_i) (BM_PHY_REG(BM_WUC_PAGE, 17 + ((_i) << 2)))
00108 #define BM_RAR_H(_i) (BM_PHY_REG(BM_WUC_PAGE, 18 + ((_i) << 2)))
00109 #define BM_RAR_CTRL(_i) (BM_PHY_REG(BM_WUC_PAGE, 19 + ((_i) << 2)))
00110 #define BM_MTA(_i) (BM_PHY_REG(BM_WUC_PAGE, 128 + ((_i) << 1)))
00111
00112 #define BM_RCTL_UPE 0x0001
00113 #define BM_RCTL_MPE 0x0002
00114 #define BM_RCTL_MO_SHIFT 3
00115 #define BM_RCTL_MO_MASK (3 << 3)
00116 #define BM_RCTL_BAM 0x0020
00117 #define BM_RCTL_PMCF 0x0040
00118 #define BM_RCTL_RFCE 0x0080
00119
00120 #define HV_LED_CONFIG PHY_REG(768, 30)
00121 #define HV_MUX_DATA_CTRL PHY_REG(776, 16)
00122 #define HV_MUX_DATA_CTRL_GEN_TO_MAC 0x0400
00123 #define HV_MUX_DATA_CTRL_FORCE_SPEED 0x0004
00124 #define HV_SCC_UPPER PHY_REG(778, 16)
00125 #define HV_SCC_LOWER PHY_REG(778, 17)
00126 #define HV_ECOL_UPPER PHY_REG(778, 18)
00127 #define HV_ECOL_LOWER PHY_REG(778, 19)
00128 #define HV_MCC_UPPER PHY_REG(778, 20)
00129 #define HV_MCC_LOWER PHY_REG(778, 21)
00130 #define HV_LATECOL_UPPER PHY_REG(778, 23)
00131 #define HV_LATECOL_LOWER PHY_REG(778, 24)
00132 #define HV_COLC_UPPER PHY_REG(778, 25)
00133 #define HV_COLC_LOWER PHY_REG(778, 26)
00134 #define HV_DC_UPPER PHY_REG(778, 27)
00135 #define HV_DC_LOWER PHY_REG(778, 28)
00136 #define HV_TNCRS_UPPER PHY_REG(778, 29)
00137 #define HV_TNCRS_LOWER PHY_REG(778, 30)
00138
00139 #define E1000_FCRTV_PCH 0x05F40
00140
00141 #define E1000_NVM_K1_CONFIG 0x1B
00142 #define E1000_NVM_K1_ENABLE 0x1
00143
00144
00145 #define HV_SMB_ADDR PHY_REG(768, 26)
00146 #define HV_SMB_ADDR_PEC_EN 0x0200
00147 #define HV_SMB_ADDR_VALID 0x0080
00148
00149
00150 #define E1000_STRAP 0x0000C
00151 #define E1000_STRAP_SMBUS_ADDRESS_MASK 0x00FE0000
00152 #define E1000_STRAP_SMBUS_ADDRESS_SHIFT 17
00153
00154
00155 #define HV_OEM_BITS PHY_REG(768, 25)
00156 #define HV_OEM_BITS_LPLU 0x0004
00157 #define HV_OEM_BITS_GBE_DIS 0x0040
00158 #define HV_OEM_BITS_RESTART_AN 0x0400
00159
00160 #define LCD_CFG_PHY_ADDR_BIT 0x0020
00161
00162 #define SW_FLAG_TIMEOUT 1000
00163
00164
00165
00166
00167
00168
00169
00170 #define IMS_ICH_ENABLE_MASK (\
00171 E1000_IMS_DSW | \
00172 E1000_IMS_PHYINT | \
00173 E1000_IMS_EPRST)
00174
00175
00176 #define E1000_ICR_LSECPNC 0x00004000
00177 #define E1000_IMS_LSECPNC E1000_ICR_LSECPNC
00178 #define E1000_ICS_LSECPNC E1000_ICR_LSECPNC
00179
00180
00181 #define E1000_RXDEXT_LINKSEC_STATUS_LSECH 0x01000000
00182 #define E1000_RXDEXT_LINKSEC_ERROR_BIT_MASK 0x60000000
00183 #define E1000_RXDEXT_LINKSEC_ERROR_NO_SA_MATCH 0x20000000
00184 #define E1000_RXDEXT_LINKSEC_ERROR_REPLAY_ERROR 0x40000000
00185 #define E1000_RXDEXT_LINKSEC_ERROR_BAD_SIG 0x60000000
00186
00187
00188 void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw,
00189 bool state);
00190 void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw);
00191 void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw);
00192 void e1000e_disable_gig_wol_ich8lan(struct e1000_hw *hw);
00193 s32 e1000e_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable);
00194 s32 e1000e_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_config);
00195
00196 #endif