127 u32 offset,
u8 *data);
141 u32 offset,
u8 byte);
209 for (retry_count = 0; retry_count < 2; retry_count++) {
211 if (ret_val || (phy_reg == 0xFFFF))
213 phy_id = (
u32)(phy_reg << 16);
216 if (ret_val || (phy_reg == 0xFFFF)) {
225 if (hw->
phy.
id == phy_id)
253 phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS;
258 mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
277 DEBUGFUNC(
"e1000_toggle_lanphypc_pch_lpt");
281 mac_reg &= ~E1000_FEXTNVM3_PHY_CFG_COUNTER_MASK;
288 mac_reg &= ~E1000_CTRL_LANPHYPC_VALUE;
292 mac_reg &= ~E1000_CTRL_LANPHYPC_OVERRIDE;
322 DEBUGFUNC(
"e1000_init_phy_workarounds_pchlan");
337 DEBUGOUT(
"Failed to initialize PHY flow\n");
380 DEBUGOUT(
"Required LANPHYPC toggle blocked by ME\n");
395 mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
459 DEBUGFUNC(
"e1000_init_phy_params_pchlan");
554 DEBUGFUNC(
"e1000_init_phy_params_ich8lan");
581 DEBUGOUT(
"Cannot determine PHY addr. Erroring out\n");
644 u32 gfpreg, sector_base_addr, sector_end_addr;
648 DEBUGFUNC(
"e1000_init_nvm_params_ich8lan");
671 DEBUGOUT(
"ERROR: Flash registers not mapped\n");
734 DEBUGFUNC(
"e1000_init_mac_params_ich8lan");
851 u16 *data,
bool read)
855 DEBUGFUNC(
"__e1000_access_emi_reg_locked");
919 u16 lpa, pcs_status, adv, adv_addr, lpi_ctrl, data;
947 lpi_ctrl &= ~I82579_LPI_CTRL_ENABLE_MASK;
978 ~I82579_EEE_100_SUPPORTED;
988 data &= ~I82579_LPI_100_PLL_SHUT;
1055 fextnvm6 &= ~E1000_FEXTNVM6_REQ_PLL_CLK;
1060 goto update_fextnvm6;
1067 reg &= ~I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_MASK;
1074 fextnvm6 &= ~E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION;
1135 u16 speed, duplex, scale = 0;
1136 u16 max_snoop, max_nosnoop;
1143 DEBUGOUT(
"max_frame_size not set.\n");
1164 lat_ns = ((
s64)rxa * 1024 -
1177 DEBUGOUT1(
"Invalid LTR latency scale %d\n", scale);
1185 max_ltr_enc =
E1000_MAX(max_snoop, max_nosnoop);
1187 if (lat_enc > max_ltr_enc) {
1188 lat_enc = max_ltr_enc;
1193 lat_ns *= speed * 1000;
1195 lat_ns /= 1000000000;
1196 obff_hwm = (
s32)(rxa - lat_ns);
1199 DEBUGOUT1(
"Invalid high water mark %d\n", obff_hwm);
1238 DEBUGFUNC(
"e1000_set_obff_timer_pch_lpt");
1245 DEBUGOUT1(
"Invalid OBFF timer %d\n", timer);
1250 svcr &= ~E1000_SVCR_OFF_TIMER_MASK;
1306 DEBUGOUT2(
"CABLE_DISCONNECTED %s set after %dmsec\n",
1363 phy_reg &= ~I218_ULP_CONFIG1_WOL_HOST;
1366 phy_reg &= ~I218_ULP_CONFIG1_INBAND_EXIT;
1369 phy_reg &= ~I218_ULP_CONFIG1_STICKY_ULP;
1370 phy_reg &= ~I218_ULP_CONFIG1_WOL_HOST;
1395 DEBUGOUT1(
"Error in ULP enable flow: %d\n", ret_val);
1420 u8 ulp_exit_timeout = 30;
1437 mac_reg &= ~E1000_H2ME_ULP;
1443 ulp_exit_timeout = 100;
1447 if (i++ == ulp_exit_timeout) {
1454 DEBUGOUT1(
"ULP_CONFIG_DONE cleared after %dmsec\n", i * 10);
1458 mac_reg &= ~E1000_H2ME_ENFORCE_SETTINGS;
1463 mac_reg &= ~E1000_H2ME_ULP;
1495 phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS;
1500 mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
1532 mac_reg &= ~E1000_FEXTNVM7_DISABLE_SMB_PERST;
1543 DEBUGOUT1(
"Error in ULP disable flow: %d\n", ret_val);
1561 s32 ret_val, tipg_reg = 0;
1562 u16 emi_addr, emi_val = 0;
1566 DEBUGFUNC(
"e1000_check_for_copper_link_ich8lan");
1599 tipg_reg &= ~E1000_TIPG_IPGT_MASK;
1631 phy_reg &= ~I217_PLL_CLOCK_GATE_MASK;
1672 ptr_gap = (data & (0x3FF << 2)) >> 2;
1673 if (ptr_gap < 0x18) {
1674 data &= ~(0x3FF << 2);
1675 data |= (0x18 << 2);
1708 mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK;
1744 fextnvm6 &= ~E1000_FEXTNVM6_K1_OFF_ENABLE;
1748 fextnvm6 &= ~E1000_FEXTNVM6_K1_OFF_ENABLE;
1780 phy_reg &= ~HV_KMRN_FIFO_CTRLSTA_PREAMBLE_MASK;
1823 DEBUGOUT(
"Error configuring flow control\n");
1836 DEBUGFUNC(
"e1000_init_function_pointers_ich8lan");
1901 DEBUGFUNC(
"e1000_acquire_swflag_ich8lan");
1915 DEBUGOUT(
"SW has already locked the resource.\n");
1935 DEBUGOUT2(
"Failed to acquire the semaphore, FW or HW has it: FWSM=0x%8.8x EXTCNF_CTRL=0x%8.8x)\n",
1937 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG;
1958 DEBUGFUNC(
"e1000_release_swflag_ich8lan");
1963 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG;
1966 DEBUGOUT(
"Semaphore unexpectedly released by sw/fw/hw\n");
1982 DEBUGFUNC(
"e1000_check_mng_mode_ich8lan");
2003 DEBUGFUNC(
"e1000_check_mng_mode_pchlan");
2024 u32 rar_low, rar_high;
2038 if (rar_low || rar_high)
2071 DEBUGOUT2(
"SHRA[%d] might be locked by ME - FWSM=0x%8.8x\n",
2076 DEBUGOUT1(
"Failed to write receive address at index %d\n", index);
2093 u32 rar_low, rar_high;
2107 if (rar_low || rar_high)
2121 if (index < hw->mac.rar_entry_count) {
2130 if ((wlock_mac == 0) || (index <= wlock_mac)) {
2155 DEBUGOUT1(
"Failed to write receive address at index %d\n", index);
2176 DEBUGFUNC(
"e1000_update_mc_addr_list_pch2lan");
2214 bool blocked =
false;
2217 DEBUGFUNC(
"e1000_check_reset_block_ich8lan");
2227 }
while (blocked && (i++ < 30));
2252 phy_data &= ~HV_SMB_ADDR_MASK;
2259 phy_data &= ~HV_SMB_ADDR_FREQ_MASK;
2260 phy_data |= (freq & (1 << 0)) <<
2262 phy_data |= (freq & (1 << 1)) <<
2265 DEBUGOUT(
"Unsupported SMB frequency in PHY\n");
2282 u32 i, data, cnf_size, cnf_base_addr, sw_cfg_mask;
2284 u16 word_addr, reg_data, reg_addr, phy_page = 0;
2286 DEBUGFUNC(
"e1000_sw_lcd_config_ich8lan");
2324 if (!(data & sw_cfg_mask))
2366 word_addr = (
u16)(cnf_base_addr << 1);
2368 for (i = 0; i < cnf_size; i++) {
2369 ret_val = hw->
nvm.
ops.
read(hw, (word_addr + i * 2), 1,
2374 ret_val = hw->
nvm.
ops.
read(hw, (word_addr + i * 2 + 1),
2381 phy_page = reg_data;
2386 reg_addr |= phy_page;
2415 DEBUGFUNC(
"e1000_k1_gig_workaround_hv");
2499 DEBUGFUNC(
"e1000_configure_k1_ich8lan");
2509 kmrn_reg &= ~E1000_KMRNCTRLSTA_K1_ENABLE;
2550 DEBUGFUNC(
"e1000_oem_bits_config_ich8lan");
2616 DEBUGFUNC(
"e1000_set_mdio_slow_mode_hv");
2639 DEBUGFUNC(
"e1000_hv_phy_workarounds_ich8lan");
2727 DEBUGFUNC(
"e1000_copy_rx_addrs_to_phy_ich8lan");
2740 (
u16)(mac_reg & 0xFFFF));
2742 (
u16)((mac_reg >> 16) & 0xFFFF));
2746 (
u16)(mac_reg & 0xFFFF));
2760 u32 poly = 0xEDB88320;
2761 u32 i, j, mask, crc;
2766 for (i = 0; i < 6; i++) {
2768 for (j = 8; j > 0; j--) {
2769 mask = (crc & 1) * (-1);
2770 crc = (crc >> 1) ^ (poly & mask);
2789 DEBUGFUNC(
"e1000_lv_jumbo_workaround_ich8lan");
2797 phy_reg | (1 << 14));
2806 u8 mac_addr[ETHER_ADDR_LEN] = {0};
2807 u32 addr_high, addr_low;
2813 mac_addr[0] = (addr_low & 0xFF);
2814 mac_addr[1] = ((addr_low >> 8) & 0xFF);
2815 mac_addr[2] = ((addr_low >> 16) & 0xFF);
2816 mac_addr[3] = ((addr_low >> 24) & 0xFF);
2817 mac_addr[4] = (addr_high & 0xFF);
2818 mac_addr[5] = ((addr_high >> 8) & 0xFF);
2829 mac_reg &= ~(1 << 14);
2830 mac_reg |= (7 << 15);
2852 data &= ~(0xF << 8);
2862 data &= ~(0x7F << 5);
2863 data |= (0x37 << 5);
2873 data &= ~(0x3FF << 2);
2889 mac_reg &= ~(0xF << 14);
2893 mac_reg &= ~E1000_RCTL_SECRC;
2911 data &= ~(0xF << 8);
2921 data &= ~(0x7F << 5);
2931 data &= ~(0x3FF << 2);
2960 DEBUGFUNC(
"e1000_lv_phy_workarounds_ich8lan");
3018 pm_phy_reg &= ~HV_PM_CTRL_K1_ENABLE;
3026 mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK;
3047 DEBUGFUNC(
"e1000_gate_hw_phy_config_ich8lan");
3057 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_GATE_PHY_CFG;
3073 DEBUGFUNC(
"e1000_lan_init_done_ich8lan");
3080 }
while ((!data) && --loop);
3087 DEBUGOUT(
"LAN_INIT_DONE not set, increase timeout\n");
3091 data &= ~E1000_STATUS_LAN_INIT_DONE;
3104 DEBUGFUNC(
"e1000_post_phy_reset_ich8lan");
3131 reg &= ~BM_WUC_HOST_WU_BIT;
3176 DEBUGFUNC(
"e1000_phy_hw_reset_ich8lan");
3206 DEBUGFUNC(
"e1000_set_lplu_state_pchlan");
3214 oem_reg &= ~HV_OEM_BITS_LPLU;
3242 DEBUGFUNC(
"e1000_set_d0_lplu_state_ich8lan");
3268 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
3275 phy_ctrl &= ~E1000_PHY_CTRL_D0A_LPLU;
3306 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
3338 DEBUGFUNC(
"e1000_set_d3_lplu_state_ich8lan");
3343 phy_ctrl &= ~E1000_PHY_CTRL_NOND0A_LPLU;
3374 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
3403 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
3430 DEBUGFUNC(
"e1000_valid_nvm_bank_detect_ich8lan");
3449 sig_byte = (
u8)((nvm_dword & 0xFF00) >> 8);
3462 sig_byte = (
u8)((nvm_dword & 0xFF00) >> 8);
3469 DEBUGOUT(
"ERROR: No valid NVM bank present\n");
3483 DEBUGOUT(
"Unable to determine valid NVM bank via EEC - reading flash signature\n");
3512 DEBUGOUT(
"ERROR: No valid NVM bank present\n");
3542 DEBUGOUT(
"nvm parameter(s) out of bounds\n");
3551 DEBUGOUT(
"Could not detect valid bank, assuming bank 0\n");
3556 act_offset += offset;
3560 for (i = 0; i < words; i += 2) {
3561 if (words - i == 1) {
3566 offset_to_read = act_offset + i -
3567 ((act_offset + i) % 2);
3574 if ((act_offset + i) % 2 == 0)
3575 data[i] = (
u16)(dword & 0xFFFF);
3577 data[i] = (
u16)((dword >> 16) & 0xFFFF);
3580 offset_to_read = act_offset + i;
3594 data[i] = (
u16)(dword & 0xFFFF);
3599 data[i + 1] = (
u16)(dword >> 16 & 0xFFFF);
3607 DEBUGOUT1(
"NVM read error: %d\n", ret_val);
3635 DEBUGOUT(
"nvm parameter(s) out of bounds\n");
3644 DEBUGOUT(
"Could not detect valid bank, assuming bank 0\n");
3649 act_offset += offset;
3652 for (i = 0; i < words; i++) {
3669 DEBUGOUT1(
"NVM read error: %d\n", ret_val);
3686 DEBUGFUNC(
"e1000_flash_cycle_init_ich8lan");
3692 DEBUGOUT(
"Flash descriptor invalid. SW Sequencing must be used.\n");
3753 DEBUGOUT(
"Flash controller busy, cannot get access\n");
3794 }
while (i++ < timeout);
3814 DEBUGFUNC(
"e1000_read_flash_dword_ich8lan");
3837 DEBUGFUNC(
"e1000_read_flash_word_ich8lan");
3892 u32 flash_linear_addr;
3897 DEBUGFUNC(
"e1000_read_flash_data_ich8lan");
3929 *data = (
u8)(flash_data & 0x000000FF);
3931 *data = (
u16)(flash_data & 0x0000FFFF);
3945 DEBUGOUT(
"Timeout error - flash cycle did not complete.\n");
3967 u32 flash_linear_addr;
3971 DEBUGFUNC(
"e1000_read_flash_data_ich8lan");
4023 DEBUGOUT(
"Timeout error - flash cycle did not complete.\n");
4052 DEBUGOUT(
"nvm parameter(s) out of bounds\n");
4058 for (i = 0; i < words; i++) {
4083 u32 i, act_offset, new_bank_offset, old_bank_offset, bank;
4087 DEBUGFUNC(
"e1000_update_nvm_checksum_spt");
4104 DEBUGOUT(
"Could not detect valid bank, assuming bank 0\n");
4110 old_bank_offset = 0;
4116 new_bank_offset = 0;
4127 i + old_bank_offset,
4131 dword &= 0xffff0000;
4135 dword &= 0x0000ffff;
4153 act_offset = (i + new_bank_offset) << 1;
4158 act_offset = i + new_bank_offset;
4169 DEBUGOUT(
"Flash commit failed.\n");
4187 dword &= 0xBFFFFFFF;
4200 dword &= 0x00FFFFFF;
4225 DEBUGOUT1(
"NVM update error: %d\n", ret_val);
4245 u32 i, act_offset, new_bank_offset, old_bank_offset, bank;
4249 DEBUGFUNC(
"e1000_update_nvm_checksum_ich8lan");
4266 DEBUGOUT(
"Could not detect valid bank, assuming bank 0\n");
4272 old_bank_offset = 0;
4278 new_bank_offset = 0;
4304 act_offset = (i + new_bank_offset) << 1;
4327 DEBUGOUT(
"Flash commit failed.\n");
4378 DEBUGOUT1(
"NVM update error: %d\n", ret_val);
4396 u16 valid_csum_mask;
4398 DEBUGFUNC(
"e1000_validate_nvm_checksum_ich8lan");
4421 ret_val = hw->
nvm.
ops.
read(hw, word, 1, &data);
4425 if (!(data & valid_csum_mask)) {
4426 data |= valid_csum_mask;
4452 u32 flash_linear_addr;
4503 flash_data = (
u32)data & 0x00FF;
4505 flash_data = (
u32)data;
4528 DEBUGOUT(
"Timeout error - flash cycle did not complete.\n");
4549 u32 flash_linear_addr;
4553 DEBUGFUNC(
"e1000_write_flash_data32_ich8lan");
4617 DEBUGOUT(
"Timeout error - flash cycle did not complete.\n");
4638 DEBUGFUNC(
"e1000_write_flash_byte_ich8lan");
4656 u16 program_retries;
4658 DEBUGFUNC(
"e1000_retry_write_flash_dword_ich8lan");
4667 for (program_retries = 0; program_retries < 100; program_retries++) {
4668 DEBUGOUT2(
"Retrying Byte %8.8X at offset %u\n", dword, offset);
4674 if (program_retries == 100)
4690 u32 offset,
u8 byte)
4693 u16 program_retries;
4695 DEBUGFUNC(
"e1000_retry_write_flash_byte_ich8lan");
4701 for (program_retries = 0; program_retries < 100; program_retries++) {
4702 DEBUGOUT2(
"Retrying Byte %2.2X at offset %u\n",
byte, offset);
4708 if (program_retries == 100)
4727 u32 flash_linear_addr;
4732 s32 j, iteration, sector_size;
4734 DEBUGFUNC(
"e1000_erase_flash_bank_ich8lan");
4774 flash_linear_addr += (bank) ? flash_bank_size : 0;
4776 for (j = 0; j < iteration; j++) {
4809 flash_linear_addr += (j * sector_size);
4847 DEBUGFUNC(
"e1000_valid_led_default_ich8lan");
4880 u16 data, i, temp, shift;
4893 for (i = 0; i < 4; i++) {
4947 DEBUGFUNC(
"e1000_get_bus_info_ich8lan");
4984 DEBUGOUT(
"PCI-E Master disable polling has failed.\n");
4986 DEBUGOUT(
"Masking off all interrupts\n");
5045 DEBUGOUT(
"Issuing a global reset to ich8lan\n");
5061 reg &= ~E1000_FEXTNVM3_PHY_CFG_COUNTER_MASK;
5109 u32 ctrl_ext, txdctl, snoop;
5121 DEBUGOUT(
"Error initializing identification LED\n");
5137 i &= ~BM_WUC_HOST_WU_BIT;
5149 txdctl = ((txdctl & ~E1000_TXDCTL_WTHRESH) |
5151 txdctl = ((txdctl & ~E1000_TXDCTL_PTHRESH) |
5155 txdctl = ((txdctl & ~E1000_TXDCTL_WTHRESH) |
5157 txdctl = ((txdctl & ~E1000_TXDCTL_PTHRESH) |
5195 DEBUGFUNC(
"e1000_initialize_hw_bits_ich8lan");
5218 reg |= (1 << 28) | (1 << 29);
5219 reg |= (1 << 23) | (1 << 24) | (1 << 26) | (1 << 27);
5228 reg |= (1 << 24) | (1 << 26) | (1 << 30);
5293 DEBUGOUT1(
"After fix-ups FlowControl is now = %x\n",
5334 DEBUGFUNC(
"e1000_setup_copper_link_ich8lan");
5385 reg_data &= ~IFE_PMC_AUTO_MDIX;
5389 reg_data &= ~IFE_PMC_FORCE_MDIX;
5424 DEBUGFUNC(
"e1000_setup_copper_link_pch_lpt");
5453 DEBUGFUNC(
"e1000_get_link_up_info_ich8lan");
5491 DEBUGFUNC(
"e1000_kmrn_lock_loss_workaround_ich8lan");
5504 for (i = 0; i < 10; i++) {
5550 DEBUGFUNC(
"e1000_set_kmrn_lock_loss_workaround_ich8lan");
5553 DEBUGOUT(
"Workaround applies to ICH8 only.\n");
5578 DEBUGFUNC(
"e1000_igp3_phy_powerdown_workaround_ich8lan");
5599 data &= ~IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK;
5631 DEBUGFUNC(
"e1000_gig_downshift_workaround_ich8lan");
5647 reg_data &= ~E1000_KMRNCTRLSTA_DIAG_NELPBK;
5672 DEBUGFUNC(
"e1000_suspend_workarounds_ich8lan");
5753 phy_reg &= ~I217_MEMPWR_DISABLE_SMB_RELEASE;
5804 DEBUGFUNC(
"e1000_resume_workarounds_pchlan");
5810 DEBUGOUT1(
"Failed to init PHY flow ret_val=%d\n", ret_val);
5824 DEBUGOUT(
"Failed to setup iRST\n");
5830 phy_reg &= ~I217_LPI_GPIO_CTRL_AUTO_EN_LPI;
5853 phy_reg &= ~I217_CGFREG_ENABLE_MTA_RESET;
5857 DEBUGOUT1(
"Error %d in resume workarounds\n", ret_val);
5963 for (i = 0; i < 3; i++) {
5995 for (i = 0; i < 3; i++) {
6028 DEBUGFUNC(
"e1000_get_cfg_done_ich8lan");
6042 DEBUGOUT(
"Auto Read Done did not complete\n");
6052 DEBUGOUT(
"PHY Reset Asserted not set - needs delay\n");
6100 DEBUGFUNC(
"e1000_clear_hw_cntrs_ich8lan");
6171 if (entry_latency > 3 || min_time > 4)
s32 e1000_read_nvm(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
#define E1000_DIVIDE_ROUND_UP(a, b)
#define ID_LED_RESERVED_0000
#define PHY_REVISION_MASK
#define E1000_RFCTL_NFSW_DIS
#define E1000_EXTCNF_CTRL_GATE_PHY_CFG
#define E1000_CTRL_LANPHYPC_OVERRIDE
#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK
#define E1000_PHY_CTRL_NOND0A_GBE_DISABLE
#define E1000_STATUS_PHYRA
#define E1000_CTRL_EXT_PHYPDEN
#define E1000_EECD_SEC1VAL_VALID_MASK
#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT
#define E1000_CTRL_FRCSPD
#define E1000_TXDCTL_MAX_TX_DESC_PREFETCH
#define E1000_PHY_LED0_MASK
#define ERROR_REPORT(fmt)
#define E1000_STATUS_SPEED_1000
#define E1000_BLK_PHY_RESET
#define E1000_ALL_SPEED_DUPLEX
#define E1000_PHY_CTRL_GBE_DISABLE
#define E1000_ALL_10_SPEED
#define E1000_STATUS_SPEED_100
#define E1000_CTRL_EXT_SPD_BYPS
#define E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE
#define E1000_CTRL_EXT_RO_DIS
#define E1000_LEDCTL_MODE_LINK_UP
#define ID_LED_RESERVED_FFFF
#define E1000_CTRL_PHY_RST
#define E1000_PHY_LED0_IVRT
#define E1000_PHY_CTRL_D0A_LPLU
#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT
#define E1000_PBECCSTS_ECC_ENABLE
#define E1000_PBA_RXA_MASK
#define AUTONEG_ADVERTISE_SPEED_DEFAULT
#define PCIE_NO_SNOOP_ALL
#define ADVERTISE_100_FULL
#define E1000_ALL_NOT_GIG
#define E1000_RFCTL_NFSR_DIS
#define NVM_FUTURE_INIT_WORD1_VALID_CSUM
#define E1000_CTRL_EXT_FORCE_SMBUS
#define E1000_EECD_SEC1VAL
#define E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE
#define E1000_KABGTXD_BGSQLBIAS
#define E1000_PHY_CTRL_NOND0A_LPLU
#define NVM_COMPAT_VALID_CSUM
#define E1000_CTRL_FRCDPX
#define E1000_STATUS_LAN_INIT_DONE
#define E1000_LEDCTL_LED0_MODE_MASK
#define NVM_FUTURE_INIT_WORD1
#define E1000_RFCTL_NEW_IPV6_EXT_DIS
#define IFE_PLUS_E_PHY_ID
#define E1000_CTRL_SPD_1000
#define E1000_PHY_LED0_MODE_MASK
#define E1000_CTRL_EXT_LPCD
#define E1000_CTRL_SPD_100
#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK
#define E1000_TXDCTL_FULL_TX_DESC_WB
#define NVM_ID_LED_SETTINGS
#define NWAY_LPAR_100TX_FD_CAPS
#define E1000_RFCTL_IPV6_EX_DIS
#define E1000_EXTCNF_CTRL_SWFLAG
#define IGP03E1000_E_PHY_ID
#define E1000_DEV_ID_PCH_LPT_I217_V
#define E1000_DEV_ID_PCH_LPTLP_I218_LM
@ e1000_bus_width_pcie_x1
@ e1000_bus_width_unknown
#define E1000_DEV_ID_PCH_I218_LM2
#define E1000_DEV_ID_ICH8_IGP_C
#define E1000_DEV_ID_ICH8_IGP_AMT
#define E1000_DEV_ID_PCH_I218_V2
#define E1000_SHADOW_RAM_WORDS
#define E1000_DEV_ID_PCH_I218_LM3
@ e1000_media_type_copper
#define E1000_DEV_ID_PCH_LPTLP_I218_V
@ e1000_ulp_state_unknown
#define E1000_DEV_ID_PCH_LPT_I217_LM
void e1000_read_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value)
#define E1000_DEV_ID_PCH_I218_V3
static s32 e1000_read_nvm_spt(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
static s32 e1000_post_phy_reset_ich8lan(struct e1000_hw *hw)
s32 e1000_set_eee_pchlan(struct e1000_hw *hw)
static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw)
u32 e1000_resume_workarounds_pchlan(struct e1000_hw *hw)
void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw)
void e1000_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw)
static s32 e1000_update_nvm_checksum_ich8lan(struct e1000_hw *hw)
static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
static s32 e1000_write_nvm_ich8lan(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
static s32 e1000_retry_write_flash_dword_ich8lan(struct e1000_hw *hw, u32 offset, u32 dword)
static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state)
static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw)
static s32 __e1000_access_emi_reg_locked(struct e1000_hw *hw, u16 address, u16 *data, bool read)
static s32 e1000_erase_flash_bank_ich8lan(struct e1000_hw *hw, u32 bank)
s32 e1000_enable_ulp_lpt_lp(struct e1000_hw *hw, bool to_sx)
static s32 e1000_init_nvm_params_ich8lan(struct e1000_hw *hw)
static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw)
static s32 e1000_setup_led_pchlan(struct e1000_hw *hw)
static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw)
static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
s32 e1000_configure_k0s_lpt(struct e1000_hw *hw, u8 entry_latency, u8 min_time)
static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link)
s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable)
static s32 e1000_valid_led_default_ich8lan(struct e1000_hw *hw, u16 *data)
static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active)
static s32 e1000_k1_workaround_lpt_lp(struct e1000_hw *hw, bool link)
static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw)
static s32 e1000_update_nvm_checksum_spt(struct e1000_hw *hw)
static s32 e1000_platform_pm_pch_lpt(struct e1000_hw *hw, bool link)
static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw)
static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, u8 size, u16 *data)
static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw)
static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw)
static s32 e1000_write_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, u8 data)
static void e1000_update_mc_addr_list_pch2lan(struct e1000_hw *hw, u8 *mc_addr_list, u32 mc_addr_count)
static s32 e1000_flash_cycle_init_ich8lan(struct e1000_hw *hw)
static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw)
static s32 e1000_get_cfg_done_ich8lan(struct e1000_hw *hw)
static s32 e1000_setup_copper_link_pch_lpt(struct e1000_hw *hw)
static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw)
static s32 e1000_read_flash_word_ich8lan(struct e1000_hw *hw, u32 offset, u16 *data)
static s32 e1000_cleanup_led_ich8lan(struct e1000_hw *hw)
static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw)
s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable)
static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate)
static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw)
static s32 e1000_write_smbus_addr(struct e1000_hw *hw)
s32 e1000_read_emi_reg_locked(struct e1000_hw *hw, u16 addr, u16 *data)
static void e1000_release_swflag_ich8lan(struct e1000_hw *hw)
static u64 e1000_ltr2ns(u16 ltr)
static u32 e1000_calc_rx_da_crc(u8 mac[])
static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank)
static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw)
static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw)
void e1000_gig_downshift_workaround_ich8lan(struct e1000_hw *hw)
static s32 e1000_get_link_up_info_ich8lan(struct e1000_hw *hw, u16 *speed, u16 *duplex)
static s32 e1000_led_off_pchlan(struct e1000_hw *hw)
static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw)
void e1000_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, bool state)
s32 e1000_write_emi_reg_locked(struct e1000_hw *hw, u16 addr, u16 data)
static s32 e1000_flash_cycle_ich8lan(struct e1000_hw *hw, u32 timeout)
static void e1000_toggle_lanphypc_pch_lpt(struct e1000_hw *hw)
static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw)
static s32 e1000_led_on_ich8lan(struct e1000_hw *hw)
static void e1000_release_nvm_ich8lan(struct e1000_hw *hw)
static s32 e1000_read_flash_data32_ich8lan(struct e1000_hw *hw, u32 offset, u32 *data)
static s32 e1000_lv_phy_workarounds_ich8lan(struct e1000_hw *hw)
s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force)
static s32 e1000_led_on_pchlan(struct e1000_hw *hw)
static s32 e1000_set_d3_lplu_state_ich8lan(struct e1000_hw *hw, bool active)
static s32 e1000_set_d0_lplu_state_ich8lan(struct e1000_hw *hw, bool active)
static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw)
static s32 e1000_set_obff_timer_pch_lpt(struct e1000_hw *hw, u32 itr)
static s32 e1000_led_off_ich8lan(struct e1000_hw *hw)
static s32 e1000_read_flash_dword_ich8lan(struct e1000_hw *hw, u32 offset, u32 *data)
static s32 e1000_get_bus_info_ich8lan(struct e1000_hw *hw)
static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw)
static s32 e1000_write_flash_data32_ich8lan(struct e1000_hw *hw, u32 offset, u32 data)
static s32 e1000_phy_hw_reset_ich8lan(struct e1000_hw *hw)
static s32 e1000_k1_workaround_lv(struct e1000_hw *hw)
void e1000_init_function_pointers_ich8lan(struct e1000_hw *hw)
static s32 e1000_acquire_nvm_ich8lan(struct e1000_hw *hw)
void e1000_copy_rx_addrs_to_phy_ich8lan(struct e1000_hw *hw)
static s32 e1000_retry_write_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, u8 byte)
static s32 e1000_write_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, u8 size, u16 data)
static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw)
static s32 e1000_check_reset_block_ich8lan(struct e1000_hw *hw)
static s32 e1000_read_nvm_ich8lan(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
static s32 e1000_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw)
static s32 e1000_read_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, u8 *data)
#define E1000_ICH_FWSM_RSPCIPHY
#define HV_OEM_BITS_GBE_DIS
#define E1000_ICH_NVM_VALID_SIG_MASK
#define HV_SMB_ADDR_VALID
#define E1000_STRAP_SMT_FREQ_SHIFT
#define E1000_ICH_MNG_IAMT_MODE
#define E1000_SVT_OFF_HWM_MASK
#define I82579_LPI_CTRL_100_ENABLE
#define I82579_MSE_THRESHOLD
#define E1000_FEXT_PHY_CABLE_DISCONNECTED
#define E1000_LTRV_SCALE_MASK
#define I217_LPI_GPIO_CTRL
#define I218_ULP_CONFIG1_DIS_CLR_STICKY_ON_PERST
#define ICH_FLASH_SEG_SIZE_64K
#define ICH_FLASH_SEG_SIZE_4K
#define I217_MEMPWR_DISABLE_SMB_RELEASE
#define E1000_ICH8_LAN_INIT_TIMEOUT
#define E1000_FEXTNVM4_BEACON_DURATION_16USEC
#define HV_PM_CTRL_K1_CLK_REQ
#define I218_ULP_CONFIG1_WOL_HOST
#define PCIE_ICH8_SNOOP_ALL
#define E1000_FEXTNVM7_DISABLE_SMB_PERST
#define ICH_FLASH_CYCLE_REPEAT_COUNT
#define I217_LPI_GPIO_CTRL_AUTO_EN_LPI
#define HV_KMRN_MDIO_SLOW
#define I218_ULP_CONFIG1_RESET_TO_SMBUS
#define E1000_FEXTNVM3_PHY_CFG_COUNTER_50MSEC
#define E1000_PCH2_RAR_ENTRIES
#define ICH_FLASH_SEG_SIZE_8K
#define I217_CGFREG_ENABLE_MTA_RESET
#define I82579_EEE_LP_ABILITY
#define ICH_FLASH_LINEAR_ADDR_MASK
#define I217_EEE_PCS_STATUS
#define I217_EEE_LP_ABILITY
#define ICH_FLASH_SEG_SIZE_256
#define I82579_LPI_CTRL_1000_ENABLE
#define HV_SMB_ADDR_PEC_EN
#define HV_KMRN_FIFO_CTRLSTA
#define I218_ULP_CONFIG1_EN_ULP_LANPHYPC
#define E1000_STRAP_SMT_FREQ_MASK
#define E1000_FWSM_WLOCK_MAC_MASK
#define E1000_ICH_FWSM_FW_VALID
#define E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION
#define E1000_FEXTNVM6_K1_OFF_ENABLE
#define I218_ULP_CONFIG1_DISABLE_SMB_PERST
#define E1000_SHRAH_PCH_LPT(_i)
#define E1000_ICH_RAR_ENTRIES
#define ICH_FLASH_READ_COMMAND_TIMEOUT
#define E1000_ICH_NVM_SIG_WORD
#define I82579_EEE_ADVERTISEMENT
#define I218_ULP_CONFIG1_INBAND_EXIT
#define I82579_EEE_1000_SUPPORTED
#define E1000_FEXTNVM_SW_CONFIG
#define ID_LED_DEFAULT_ICH8LAN
#define PHY_REG(page, reg)
#define I82579_LPI_UPDATE_TIMER
#define CV_SMB_CTRL_FORCE_SMBUS
#define E1000_LTRV_REQ_SHIFT
#define HV_OEM_BITS_RESTART_AN
#define E1000_ICH_NVM_SIG_MASK
#define I82579_EEE_100_SUPPORTED
#define E1000_STRAP_SMBUS_ADDRESS_SHIFT
#define E1000_PCH_LPT_RAR_ENTRIES
#define I82577_MSE_THRESHOLD
#define NVM_SIZE_MULTIPLIER
#define E1000_LTRV_SCALE_MAX
#define E1000_LTRV_SCALE_FACTOR
#define I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT
#define FLASH_SECTOR_ADDR_SHIFT
#define E1000_FEXTNVM6_REQ_PLL_CLK
#define I82579_LPI_PLL_SHUT
#define I217_SxCTRL_ENABLE_LPI_RESET
#define I218_ULP_CONFIG1_STICKY_ULP
#define E1000_SHRAL_PCH_LPT(_i)
#define I218_ULP_CONFIG1_START
#define E1000_FEXTNVM_SW_CONFIG_ICH8M
#define E1000_PCH_RAICC(_n)
#define IGP3_VR_CTRL_MODE_SHUTDOWN
#define E1000_LTRV_SCALE_SHIFT
#define HV_SMB_ADDR_FREQ_LOW_SHIFT
#define IGP3_KMRN_DIAG_PCS_LOCK_LOSS
#define E1000_FWSM_ULP_CFG_DONE
#define I217_EEE_ADVERTISEMENT
#define E1000_FEXTNVM4_BEACON_DURATION_8USEC
#define IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK
#define E1000_SVCR_OFF_TIMER_SHIFT
#define E1000_PCI_LTR_CAP_LPT
#define E1000_SVCR_OFF_EN
#define I82579_EEE_PCS_STATUS
#define ICH_FLASH_WRITE_COMMAND_TIMEOUT
#define HV_KMRN_MODE_CTRL
#define E1000_LTRV_NOSNOOP_SHIFT
#define E1000_NVM_K1_ENABLE
#define E1000_ICH_NVM_SIG_VALUE
#define HV_SMB_ADDR_FREQ_HIGH_SHIFT
#define E1000_PCI_VENDOR_ID_REGISTER
#define E1000_LTRV_VALUE_MASK
#define HV_KMRN_FIFO_CTRLSTA_PREAMBLE_SHIFT
#define FLASH_GFPREG_BASE_MASK
#define E1000_SVCR_OFF_MASKINT
#define E1000_NVM_K1_CONFIG
#define E1000_FWSM_WLOCK_MAC_SHIFT
#define I218_ULP_CONFIG1_IND
#define I82579_MSE_LINK_DOWN
#define E1000_FLASH_BASE_ADDR
#define E1000_STRAP_SMBUS_ADDRESS_MASK
#define ICH_FLASH_ERASE_COMMAND_TIMEOUT
#define I217_PLL_CLOCK_GATE_REG
#define I217_PROXY_CTRL_AUTO_DISABLE
#define E1000_H2ME_ENFORCE_SETTINGS
#define HV_PM_CTRL_K1_ENABLE
s32 e1000_get_bus_info_pcie_generic(struct e1000_hw *hw)
s32 e1000_set_fc_watermarks_generic(struct e1000_hw *hw)
s32 e1000_id_led_init_generic(struct e1000_hw *hw)
s32 e1000_disable_pcie_master_generic(struct e1000_hw *hw)
void e1000_clear_hw_cntrs_base_generic(struct e1000_hw *hw)
void e1000_update_mc_addr_list_generic(struct e1000_hw *hw, u8 *mc_addr_list, u32 mc_addr_count)
s32 e1000_blink_led_generic(struct e1000_hw *hw)
s32 e1000_get_speed_and_duplex_copper_generic(struct e1000_hw *hw, u16 *speed, u16 *duplex)
void e1000_init_rx_addrs_generic(struct e1000_hw *hw, u16 rar_count)
void e1000_set_pcie_no_snoop_generic(struct e1000_hw *hw, u32 no_snoop)
s32 e1000_setup_led_generic(struct e1000_hw *hw)
s32 e1000_config_fc_after_link_up_generic(struct e1000_hw *hw)
void e1000_set_lan_id_single_port(struct e1000_hw *hw)
s32 e1000_get_auto_rd_done_generic(struct e1000_hw *hw)
#define E1000_FWSM_MODE_SHIFT
#define E1000_FWSM_MODE_MASK
s32 e1000_update_nvm_checksum_generic(struct e1000_hw *hw)
s32 e1000_validate_nvm_checksum_generic(struct e1000_hw *hw)
#define E1000_WRITE_REG_ARRAY(hw, reg, index, value)
#define E1000_WRITE_FLASH_REG(hw, reg, value)
#define E1000_READ_FLASH_REG16(hw, reg)
#define E1000_WRITE_FLUSH(a)
#define E1000_WRITE_REG(hw, reg, value)
#define msec_delay_irq(x)
#define E1000_READ_REG(hw, reg)
#define E1000_READ_FLASH_REG(hw, reg)
#define E1000_WRITE_FLASH_REG16(hw, reg, value)
#define ASSERT_CTX_LOCK_HELD(hw)
s32 e1000_phy_force_speed_duplex_igp(struct e1000_hw *hw)
s32 e1000_get_cable_length_m88(struct e1000_hw *hw)
s32 e1000_write_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, u32 usec_interval, bool *success)
s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw)
s32 e1000_write_phy_reg_page_hv(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_get_cable_length_igp_2(struct e1000_hw *hw)
s32 e1000_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_read_kmrn_reg_generic(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_get_phy_id(struct e1000_hw *hw)
void e1000_power_down_phy_copper(struct e1000_hw *hw)
s32 e1000_get_phy_info_82577(struct e1000_hw *hw)
s32 e1000_check_polarity_ife(struct e1000_hw *hw)
s32 e1000_enable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg)
s32 e1000_get_phy_info_m88(struct e1000_hw *hw)
s32 e1000_get_phy_info_igp(struct e1000_hw *hw)
s32 e1000_set_page_igp(struct e1000_hw *hw, u16 page)
s32 e1000_check_polarity_igp(struct e1000_hw *hw)
enum e1000_phy_type e1000_get_phy_type_from_id(u32 phy_id)
s32 e1000_read_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw)
void e1000_power_up_phy_copper(struct e1000_hw *hw)
s32 e1000_phy_sw_reset_generic(struct e1000_hw *hw)
s32 e1000_write_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_get_phy_info_ife(struct e1000_hw *hw)
s32 e1000_get_cfg_done_generic(struct e1000_hw E1000_UNUSEDARG *hw)
s32 e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_phy_force_speed_duplex_m88(struct e1000_hw *hw)
s32 e1000_write_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_disable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg)
s32 e1000_read_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_read_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_check_polarity_m88(struct e1000_hw *hw)
s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw)
s32 e1000_phy_hw_reset_generic(struct e1000_hw *hw)
s32 e1000_copper_link_setup_82577(struct e1000_hw *hw)
s32 e1000_check_polarity_82577(struct e1000_hw *hw)
s32 e1000_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_copper_link_setup_m88(struct e1000_hw *hw)
s32 e1000_read_phy_reg_page_hv(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_check_downshift_generic(struct e1000_hw *hw)
s32 e1000_write_kmrn_reg_generic(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_get_cable_length_82577(struct e1000_hw *hw)
s32 e1000_copper_link_setup_igp(struct e1000_hw *hw)
s32 e1000_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_determine_phy_address(struct e1000_hw *hw)
s32 e1000_phy_init_script_igp3(struct e1000_hw *hw)
s32 e1000_setup_copper_link_generic(struct e1000_hw *hw)
#define HV_M_STATUS_SPEED_MASK
#define HV_M_STATUS_AUTONEG_COMPLETE
#define BM_CS_STATUS_LINK_UP
#define IGP01E1000_PHY_PAGE_SELECT
#define E1000_KMRNCTRLSTA_K0S_CTRL_MIN_TIME_MASK
#define HV_M_STATUS_SPEED_100
#define BM_CS_STATUS_SPEED_1000
#define IFE_PHY_SPECIAL_CONTROL_LED
#define HV_M_STATUS_LINK_UP
#define IGP01E1000_PHY_PORT_CONFIG
#define BM_CS_STATUS_SPEED_MASK
#define IFE_PSCL_PROBE_LEDS_ON
#define E1000_KMRNCTRLSTA_DIAG_NELPBK
#define E1000_KMRNCTRLSTA_DIAG_OFFSET
#define E1000_KMRNCTRLSTA_TIMEOUTS
#define HV_M_STATUS_SPEED_1000
#define E1000_KMRNCTRLSTA_K0S_CTRL_MIN_TIME_SHIFT
#define E1000_KMRNCTRLSTA_K1_CONFIG
#define IFE_PMC_FORCE_MDIX
#define BM_CS_STATUS_RESOLVED
#define E1000_KMRNCTRLSTA_INBAND_PARAM
#define IFE_PSCL_PROBE_MODE
#define E1000_KMRNCTRLSTA_K1_ENABLE
#define E1000_KMRNCTRLSTA_HD_CTRL
#define E1000_KMRNCTRLSTA_K0S_CTRL
#define IFE_PSCL_PROBE_LEDS_OFF
#define IFE_PMC_AUTO_MDIX
#define IFE_PHY_MDIX_CONTROL
#define E1000_KMRNCTRLSTA_CTRL_OFFSET
#define BM_PORT_CTRL_PAGE
#define IGP01E1000_PSCFR_SMART_SPEED
#define E1000_EXTCNF_CTRL
#define E1000_EXTCNF_SIZE
enum e1000_bus_width width
enum e1000_ulp_state ulp_state
bool kmrn_lock_loss_workaround_enabled
struct e1000_shadow_ram shadow_ram[E1000_SHADOW_RAM_WORDS]
enum e1000_fc_mode current_mode
enum e1000_fc_mode requested_mode
union e1000_hw::@46 dev_spec
struct e1000_bus_info bus
struct e1000_mac_info mac
struct e1000_nvm_info nvm
struct e1000_dev_spec_ich8lan ich8lan
struct e1000_phy_info phy
bool asf_firmware_present
struct e1000_mac_operations ops
u32 mta_shadow[MAX_MTA_REG]
s32(* setup_led)(struct e1000_hw *)
s32(* id_led_init)(struct e1000_hw *)
s32(* get_link_up_info)(struct e1000_hw *, u16 *, u16 *)
s32(* setup_physical_interface)(struct e1000_hw *)
s32(* check_for_link)(struct e1000_hw *)
void(* config_collision_dist)(struct e1000_hw *)
s32(* blink_led)(struct e1000_hw *)
s32(* reset_hw)(struct e1000_hw *)
s32(* set_obff_timer)(struct e1000_hw *, u32)
s32(* led_on)(struct e1000_hw *)
int(* rar_set)(struct e1000_hw *, u8 *, u32)
s32(* init_hw)(struct e1000_hw *)
s32(* setup_link)(struct e1000_hw *)
s32(* cleanup_led)(struct e1000_hw *)
void(* clear_hw_cntrs)(struct e1000_hw *)
void(* set_lan_id)(struct e1000_hw *)
void(* update_mc_addr_list)(struct e1000_hw *, u8 *, u32)
s32(* led_off)(struct e1000_hw *)
bool(* check_mng_mode)(struct e1000_hw *)
s32(* get_bus_info)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
struct e1000_nvm_operations ops
void(* release)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
s32(* write)(struct e1000_hw *, u16, u16, u16 *)
void(* reload)(struct e1000_hw *)
s32(* validate)(struct e1000_hw *)
s32(* update)(struct e1000_hw *)
s32(* read)(struct e1000_hw *, u16, u16, u16 *)
s32(* acquire)(struct e1000_hw *)
s32(* valid_led_default)(struct e1000_hw *, u16 *)
enum e1000_media_type media_type
struct e1000_phy_operations ops
enum e1000_smart_speed smart_speed
s32(* set_page)(struct e1000_hw *, u16)
s32(* read_reg_locked)(struct e1000_hw *, u32, u16 *)
s32(* get_cfg_done)(struct e1000_hw *hw)
void(* power_up)(struct e1000_hw *)
s32(* reset)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
s32(* read_reg)(struct e1000_hw *, u32, u16 *)
s32(* get_info)(struct e1000_hw *)
void(* release)(struct e1000_hw *)
s32(* set_d3_lplu_state)(struct e1000_hw *, bool)
s32(* force_speed_duplex)(struct e1000_hw *)
s32(* get_cable_length)(struct e1000_hw *)
s32(* check_reset_block)(struct e1000_hw *)
s32(* acquire)(struct e1000_hw *)
s32(* write_reg_locked)(struct e1000_hw *, u32, u16)
s32(* set_d0_lplu_state)(struct e1000_hw *, bool)
s32(* write_reg)(struct e1000_hw *, u32, u16)
s32(* commit)(struct e1000_hw *)
void(* power_down)(struct e1000_hw *)
s32(* check_polarity)(struct e1000_hw *)
s32(* write_reg_page)(struct e1000_hw *, u32, u16)
s32(* read_reg_page)(struct e1000_hw *, u32, u16 *)
struct ich8_hws_flash_ctrl::ich8_hsflctl hsf_ctrl
struct ich8_hws_flash_regacc::ich8_flracc hsf_flregacc
struct ich8_hws_flash_status::ich8_hsfsts hsf_status