42#define IXGBE_82599_MAX_TX_QUEUES 128
43#define IXGBE_82599_MAX_RX_QUEUES 128
44#define IXGBE_82599_RAR_ENTRIES 128
45#define IXGBE_82599_MC_TBL_SIZE 128
46#define IXGBE_82599_VFT_TBL_SIZE 128
47#define IXGBE_82599_RX_PB_SIZE 512
51 bool autoneg_wait_to_complete);
58 u8 dev_addr,
u8 *data);
60 u8 dev_addr,
u8 data);
66 DEBUGFUNC(
"ixgbe_init_mac_link_ops_82599");
132 esdp &= ~IXGBE_ESDP_SDP1_DIR;
133 esdp &= ~IXGBE_ESDP_SDP0;
134 esdp &= ~IXGBE_ESDP_SDP0_NATIVE;
135 esdp &= ~IXGBE_ESDP_SDP1_NATIVE;
145 goto init_phy_ops_out;
177 u16 list_offset, data_offset, data_value;
179 DEBUGFUNC(
"ixgbe_setup_sfp_modules_82599");
201 while (data_value != 0xffff) {
221 DEBUGOUT(
"sfp module setup not complete\n");
237 "eeprom read at offset %d failed", data_offset);
428 DEBUGFUNC(
"ixgbe_get_link_capabilities_82599");
598 DEBUGFUNC(
"ixgbe_stop_mac_link_on_d3_82599");
618 bool autoneg_wait_to_complete)
624 bool got_lock =
false;
648 if (autoneg_wait_to_complete) {
665 DEBUGOUT(
"Autoneg did not complete.\n");
713 esdp_reg &= ~IXGBE_ESDP_SDP3;
733 DEBUGFUNC(
"ixgbe_flap_tx_laser_multispeed_fiber");
763 esdp_reg &= ~IXGBE_ESDP_SDP5;
767 DEBUGOUT(
"Invalid fixed module speed\n");
785 bool autoneg_wait_to_complete)
790 bool link_up =
false;
793 DEBUGFUNC(
"ixgbe_setup_mac_link_smartspeed");
818 autoneg_wait_to_complete);
828 for (i = 0; i < 5; i++) {
853 autoneg_wait_to_complete);
863 for (i = 0; i < 6; i++) {
878 autoneg_wait_to_complete);
882 DEBUGOUT(
"Smartspeed has downgraded the link speed "
883 "from the maximum advertised\n");
897 bool autoneg_wait_to_complete)
899 bool autoneg =
false;
901 u32 pma_pmd_1g, link_mode;
904 u32 autoc = current_autoc;
918 speed &= link_capabilities;
954 autoc &= ~IXGBE_AUTOC_LMS_MASK;
962 autoc &= ~IXGBE_AUTOC_LMS_MASK;
970 if (autoc != current_autoc) {
977 if (autoneg_wait_to_complete) {
992 DEBUGOUT(
"Autoneg did not complete.\n");
1015 bool autoneg_wait_to_complete)
1019 DEBUGFUNC(
"ixgbe_setup_copper_link_82599");
1023 autoneg_wait_to_complete);
1043 u32 i, autoc, autoc2;
1045 bool link_up =
false;
1100 for (i = 0; i < 10; i++) {
1109 DEBUGOUT(
"Reset polling failed to complete.\n");
1120 hw->
mac.
flags &= ~IXGBE_FLAGS_DOUBLE_RESET_REQUIRED;
1134 autoc2 &= ~IXGBE_AUTOC2_LINK_DISABLE_MASK;
1167 autoc2 &= ~IXGBE_AUTOC2_UPPER_MASK;
1241 fdirctrl &= ~IXGBE_FDIRCTRL_INIT_DONE;
1243 DEBUGFUNC(
"ixgbe_reinit_fdir_tables_82599");
1251 DEBUGOUT(
"Flow Director previous command did not complete, aborting table re-initialization.\n");
1290 DEBUGOUT(
"Flow Director Signature poll time exceeded!\n");
1342 DEBUGOUT(
"Flow Director poll time exceeded!\n");
1353 DEBUGFUNC(
"ixgbe_init_fdir_signature_82599");
1382 DEBUGFUNC(
"ixgbe_init_fdir_perfect_82599");
1419 DEBUGFUNC(
"ixgbe_set_fdir_drop_queue_82599");
1449#define IXGBE_ATR_COMMON_HASH_KEY \
1450 (IXGBE_ATR_BUCKET_HASH_KEY & IXGBE_ATR_SIGNATURE_HASH_KEY)
1451#define IXGBE_COMPUTE_SIG_HASH_ITERATION(_n) \
1454 if (IXGBE_ATR_COMMON_HASH_KEY & (0x01 << n)) \
1455 common_hash ^= lo_hash_dword >> n; \
1456 else if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << n)) \
1457 bucket_hash ^= lo_hash_dword >> n; \
1458 else if (IXGBE_ATR_SIGNATURE_HASH_KEY & (0x01 << n)) \
1459 sig_hash ^= lo_hash_dword << (16 - n); \
1460 if (IXGBE_ATR_COMMON_HASH_KEY & (0x01 << (n + 16))) \
1461 common_hash ^= hi_hash_dword >> n; \
1462 else if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << (n + 16))) \
1463 bucket_hash ^= hi_hash_dword >> n; \
1464 else if (IXGBE_ATR_SIGNATURE_HASH_KEY & (0x01 << (n + 16))) \
1465 sig_hash ^= hi_hash_dword << (16 - n); \
1482 u32 hi_hash_dword, lo_hash_dword, flow_vm_vlan;
1483 u32 sig_hash = 0, bucket_hash = 0, common_hash = 0;
1492 lo_hash_dword = (hi_hash_dword >> 16) | (hi_hash_dword << 16);
1495 hi_hash_dword ^= flow_vm_vlan ^ (flow_vm_vlan >> 16);
1505 lo_hash_dword ^= flow_vm_vlan ^ (flow_vm_vlan << 16);
1525 bucket_hash ^= common_hash;
1528 sig_hash ^= common_hash << 16;
1532 return sig_hash ^ bucket_hash;
1555 DEBUGFUNC(
"ixgbe_fdir_add_signature_filter_82599");
1565 switch (flow_type) {
1574 DEBUGOUT(
" Error on flow type input\n");
1590 fdirhashcmd = (
u64)fdircmd << 32;
1594 DEBUGOUT2(
"Tx Queue=%x hash=%x\n", queue, (
u32)fdirhashcmd);
1599#define IXGBE_COMPUTE_BKT_HASH_ITERATION(_n) \
1602 if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << n)) \
1603 bucket_hash ^= lo_hash_dword >> n; \
1604 if (IXGBE_ATR_BUCKET_HASH_KEY & (0x01 << (n + 16))) \
1605 bucket_hash ^= hi_hash_dword >> n; \
1623 u32 hi_hash_dword, lo_hash_dword, flow_vm_vlan;
1624 u32 bucket_hash = 0;
1629 for (i = 0; i < 14; i++)
1636 for (i = 1; i <= 13; i++)
1641 lo_hash_dword = (hi_hash_dword >> 16) | (hi_hash_dword << 16);
1644 hi_hash_dword ^= flow_vm_vlan ^ (flow_vm_vlan >> 16);
1654 lo_hash_dword ^= flow_vm_vlan ^ (flow_vm_vlan << 16);
1657 for (i = 1; i <= 15; i++)
1681 mask = ((mask & 0x55555555) << 1) | ((mask & 0xAAAAAAAA) >> 1);
1682 mask = ((mask & 0x33333333) << 2) | ((mask & 0xCCCCCCCC) >> 2);
1683 mask = ((mask & 0x0F0F0F0F) << 4) | ((mask & 0xF0F0F0F0) >> 4);
1684 return ((mask & 0x00FF00FF) << 8) | ((mask & 0xFF00FF00) >> 8);
1694#define IXGBE_STORE_AS_BE32(_value) \
1695 (((u32)(_value) >> 24) | (((u32)(_value) & 0x00FF0000) >> 8) | \
1696 (((u32)(_value) & 0x0000FF00) << 8) | ((u32)(_value) << 24))
1698#define IXGBE_WRITE_REG_BE32(a, reg, value) \
1699 IXGBE_WRITE_REG((a), (reg), IXGBE_STORE_AS_BE32(IXGBE_NTOHL(value)))
1701#define IXGBE_STORE_AS_BE16(_value) \
1702 IXGBE_NTOHS(((u16)(_value) >> 8) | ((u16)(_value) << 8))
1712 DEBUGFUNC(
"ixgbe_fdir_set_atr_input_mask_82599");
1726 DEBUGOUT(
" bucket hash should always be 0 in mask\n");
1735 DEBUGOUT(
" Error on vm pool mask\n");
1744 DEBUGOUT(
" Error on src/dst port mask\n");
1750 DEBUGOUT(
" Error on flow type mask\n");
1783 DEBUGOUT(
" Error on flexible byte mask\n");
1799 DEBUGOUT(
" Error on inner_mac byte mask\n");
1814 DEBUGOUT(
" Error on TNI/VNI byte mask\n");
1825 DEBUGOUT(
" Error on tunnel type byte mask\n");
1883 u16 soft_id,
u8 queue,
bool cloud_mode)
1885 u32 fdirport, fdirvlan, fdirhash, fdircmd;
1886 u32 addr_low, addr_high;
1891 DEBUGFUNC(
"ixgbe_fdir_write_perfect_filter_82599");
1925 cloud_type = 0x80000000;
1933 cloud_type |= addr_high;
1964 DEBUGOUT(
"Flow Director command did not complete!\n");
1992 DEBUGOUT(
"Flow Director command did not complete!\n");
2022 u16 soft_id,
u8 queue,
bool cloud_mode)
2027 DEBUGFUNC(
"ixgbe_fdir_add_perfect_filter_82599");
2038 DEBUGOUT(
" Error on src/dst port\n");
2045 DEBUGOUT(
" Error on src/dst port\n");
2057 DEBUGOUT(
" Error on flow type input\n");
2071 soft_id, queue, cloud_mode);
2086 DEBUGFUNC(
"ixgbe_read_analog_reg8_82599");
2093 *val = (
u8)core_ctl;
2110 DEBUGFUNC(
"ixgbe_write_analog_reg8_82599");
2112 core_ctl = (reg << 8) | val;
2200 u16 ext_ability = 0;
2202 DEBUGFUNC(
"ixgbe_get_support_physical_layer_82599");
2270 return physical_layer;
2317 u16 fw_offset, fw_ptp_cfg_offset;
2320 DEBUGFUNC(
"ixgbe_verify_fw_version_82599");
2325 goto fw_version_out;
2335 if ((fw_offset == 0) || (fw_offset == 0xFFFF))
2336 goto fw_version_out;
2341 &fw_ptp_cfg_offset)) {
2343 "eeprom read at offset %d failed",
2349 if ((fw_ptp_cfg_offset == 0) || (fw_ptp_cfg_offset == 0xFFFF))
2350 goto fw_version_out;
2356 "eeprom read at offset %d failed",
2361 if (fw_version > 0x5)
2377 bool lesm_enabled =
false;
2378 u16 fw_offset, fw_lesm_param_offset, fw_lesm_state;
2381 DEBUGFUNC(
"ixgbe_verify_lesm_fw_enabled_82599");
2387 (fw_offset == 0) || (fw_offset == 0xFFFF))
2393 &fw_lesm_param_offset);
2396 (fw_lesm_param_offset == 0) || (fw_lesm_param_offset == 0xFFFF))
2406 lesm_enabled =
true;
2409 return lesm_enabled;
2429 DEBUGFUNC(
"ixgbe_read_eeprom_buffer_82599");
2490 u32 i, autoc_reg, autoc2_reg;
2495 autoc2_reg &= ~IXGBE_AUTOC2_LINK_DISABLE_MASK;
2506 for (i = 0; i < 10; i++) {
2514 DEBUGOUT(
"auto negotiation not completed\n");
2516 goto reset_pipeline_out;
2540 u8 dev_addr,
u8 *data)
2565 DEBUGOUT(
"Driver can't access resource,"
2566 " acquiring I2C bus timeout.\n");
2568 goto release_i2c_access;
2579 esdp &= ~IXGBE_ESDP_SDP0;
2598 u8 dev_addr,
u8 data)
2604 DEBUGFUNC(
"ixgbe_write_i2c_byte_82599");
2623 DEBUGOUT(
"Driver can't access resource,"
2624 " acquiring I2C bus timeout.\n");
2626 goto release_i2c_access;
2637 esdp &= ~IXGBE_ESDP_SDP0;
static s32 ixgbe_read_i2c_byte_82599(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data)
s32 ixgbe_reset_pipeline_82599(struct ixgbe_hw *hw)
static u32 ixgbe_get_fdirtcpm_82599(union ixgbe_atr_input *input_mask)
void ixgbe_set_fdir_drop_queue_82599(struct ixgbe_hw *hw, u8 dropqueue)
bool ixgbe_verify_lesm_fw_enabled_82599(struct ixgbe_hw *hw)
static s32 ixgbe_fdir_check_cmd_complete(struct ixgbe_hw *hw, u32 *fdircmd)
u64 ixgbe_get_supported_physical_layer_82599(struct ixgbe_hw *hw)
void ixgbe_init_mac_link_ops_82599(struct ixgbe_hw *hw)
static s32 ixgbe_setup_copper_link_82599(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
s32 ixgbe_init_phy_ops_82599(struct ixgbe_hw *hw)
s32 ixgbe_start_hw_82599(struct ixgbe_hw *hw)
s32 ixgbe_init_ops_82599(struct ixgbe_hw *hw)
#define IXGBE_82599_RX_PB_SIZE
s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw, union ixgbe_atr_input *input_mask, bool cloud_mode)
#define IXGBE_82599_MAX_RX_QUEUES
s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw, union ixgbe_atr_input *input, union ixgbe_atr_input *input_mask, u16 soft_id, u8 queue, bool cloud_mode)
s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
#define IXGBE_COMPUTE_SIG_HASH_ITERATION(_n)
static s32 ixgbe_verify_fw_version_82599(struct ixgbe_hw *hw)
s32 prot_autoc_write_82599(struct ixgbe_hw *hw, u32 autoc, bool locked)
s32 ixgbe_write_analog_reg8_82599(struct ixgbe_hw *hw, u32 reg, u8 val)
s32 ixgbe_reinit_fdir_tables_82599(struct ixgbe_hw *hw)
s32 ixgbe_get_link_capabilities_82599(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *autoneg)
#define IXGBE_COMPUTE_BKT_HASH_ITERATION(_n)
static s32 ixgbe_write_i2c_byte_82599(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 data)
s32 ixgbe_setup_sfp_modules_82599(struct ixgbe_hw *hw)
#define IXGBE_82599_RAR_ENTRIES
void ixgbe_disable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
#define IXGBE_STORE_AS_BE16(_value)
s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 fdirctrl, bool cloud_mode)
void ixgbe_fdir_add_signature_filter_82599(struct ixgbe_hw *hw, union ixgbe_atr_hash_dword input, union ixgbe_atr_hash_dword common, u8 queue)
s32 ixgbe_fdir_erase_perfect_filter_82599(struct ixgbe_hw *hw, union ixgbe_atr_input *input, u16 soft_id)
s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 fdirctrl)
s32 ixgbe_enable_rx_dma_82599(struct ixgbe_hw *hw, u32 regval)
void ixgbe_set_hard_rate_select_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed)
static s32 ixgbe_read_eeprom_82599(struct ixgbe_hw *hw, u16 offset, u16 *data)
#define IXGBE_WRITE_REG_BE32(a, reg, value)
s32 ixgbe_setup_mac_link_smartspeed(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
static void ixgbe_fdir_enable_82599(struct ixgbe_hw *hw, u32 fdirctrl)
static s32 ixgbe_read_eeprom_buffer_82599(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
#define IXGBE_82599_MC_TBL_SIZE
void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
enum ixgbe_media_type ixgbe_get_media_type_82599(struct ixgbe_hw *hw)
s32 ixgbe_read_analog_reg8_82599(struct ixgbe_hw *hw, u32 reg, u8 *val)
s32 prot_autoc_read_82599(struct ixgbe_hw *hw, bool *locked, u32 *reg_val)
s32 ixgbe_reset_hw_82599(struct ixgbe_hw *hw)
void ixgbe_atr_compute_perfect_hash_82599(union ixgbe_atr_input *input, union ixgbe_atr_input *input_mask)
s32 ixgbe_identify_phy_82599(struct ixgbe_hw *hw)
void ixgbe_stop_mac_link_on_d3_82599(struct ixgbe_hw *hw)
#define IXGBE_82599_VFT_TBL_SIZE
void ixgbe_enable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
#define IXGBE_82599_MAX_TX_QUEUES
s32 ixgbe_start_mac_link_82599(struct ixgbe_hw *hw, bool autoneg_wait_to_complete)
s32 ixgbe_fdir_write_perfect_filter_82599(struct ixgbe_hw *hw, union ixgbe_atr_input *input, u16 soft_id, u8 queue, bool cloud_mode)
u32 ixgbe_atr_compute_sig_hash_82599(union ixgbe_atr_hash_dword input, union ixgbe_atr_hash_dword common)
s32 ixgbe_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up, bool link_up_wait_to_complete)
s32 ixgbe_get_link_capabilities(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *autoneg)
s32 ixgbe_read_eeprom(struct ixgbe_hw *hw, u16 offset, u16 *data)
void ixgbe_enable_rx(struct ixgbe_hw *hw)
void ixgbe_disable_rx(struct ixgbe_hw *hw)
enum ixgbe_media_type ixgbe_get_media_type(struct ixgbe_hw *hw)
bool ixgbe_mng_present(struct ixgbe_hw *hw)
s32 ixgbe_set_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
s32 ixgbe_clear_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
s32 ixgbe_set_vmdq_san_mac_generic(struct ixgbe_hw *hw, u32 vmdq)
void ixgbe_set_vlan_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf)
bool ixgbe_bypass_valid_rd_generic(u32 in_reg, u32 out_reg)
void ixgbe_set_mac_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf)
s32 ixgbe_init_thermal_sensor_thresh_generic(struct ixgbe_hw *hw)
s32 ixgbe_clear_vfta_generic(struct ixgbe_hw *hw)
s32 ixgbe_read_eeprom_buffer_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
s32 ixgbe_get_fcoe_boot_status_generic(struct ixgbe_hw *hw, u16 *bs)
s32 ixgbe_init_uta_tables_generic(struct ixgbe_hw *hw)
s32 ixgbe_bypass_rw_generic(struct ixgbe_hw *hw, u32 cmd, u32 *status)
s32 ixgbe_enable_sec_rx_path_generic(struct ixgbe_hw *hw)
void ixgbe_set_soft_rate_select_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed)
s32 ixgbe_start_hw_generic(struct ixgbe_hw *hw)
void ixgbe_set_rxpba_generic(struct ixgbe_hw *hw, int num_pb, u32 headroom, int strategy)
s32 ixgbe_bypass_set_generic(struct ixgbe_hw *hw, u32 ctrl, u32 event, u32 action)
s32 ixgbe_bypass_rd_eep_generic(struct ixgbe_hw *hw, u32 addr, u8 *value)
s32 ixgbe_get_san_mac_addr_generic(struct ixgbe_hw *hw, u8 *san_mac_addr)
void ixgbe_enable_relaxed_ordering_gen2(struct ixgbe_hw *hw)
s32 ixgbe_get_device_caps_generic(struct ixgbe_hw *hw, u16 *device_caps)
s32 ixgbe_init_ops_generic(struct ixgbe_hw *hw)
s32 ixgbe_set_vfta_generic(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on, bool vlvf_bypass)
s32 ixgbe_read_eerd_buffer_generic(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
s32 ixgbe_read_eeprom_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, u16 *data)
void ixgbe_start_hw_gen2(struct ixgbe_hw *hw)
s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
s32 ixgbe_set_vlvf_generic(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on, u32 *vfta_delta, u32 vfta, bool vlvf_bypass)
s32 ixgbe_check_mac_link_generic(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up, bool link_up_wait_to_complete)
s32 ixgbe_read_eerd_generic(struct ixgbe_hw *hw, u16 offset, u16 *data)
s32 ixgbe_get_wwn_prefix_generic(struct ixgbe_hw *hw, u16 *wwnn_prefix, u16 *wwpn_prefix)
s32 ixgbe_set_fw_drv_ver_generic(struct ixgbe_hw *hw, u8 maj, u8 min, u8 build, u8 sub, u16 len, const char *driver_ver)
s32 ixgbe_set_san_mac_addr_generic(struct ixgbe_hw *hw, u8 *san_mac_addr)
s32 ixgbe_disable_sec_rx_path_generic(struct ixgbe_hw *hw)
s32 ixgbe_get_thermal_sensor_data_generic(struct ixgbe_hw *hw)
s32 ixgbe_insert_mac_addr_generic(struct ixgbe_hw *hw, u8 *addr, u32 vmdq)
s32 ixgbe_validate_mac_addr(u8 *mac_addr)
u16 ixgbe_get_pcie_msix_count_generic(struct ixgbe_hw *hw)
bool ixgbe_mng_enabled(struct ixgbe_hw *hw)
void ixgbe_clear_tx_pending(struct ixgbe_hw *hw)
void ixgbe_dcb_get_rtrup2tc_generic(struct ixgbe_hw *hw, u8 *map)
#define IXGBE_WRITE_REG64(hw, reg, value)
void ixgbe_init_mbx_params_pf(struct ixgbe_hw *hw)
#define IXGBE_READ_REG(a, reg)
#define DEBUGOUT2(S, A, B)
#define UNREFERENCED_1PARAMETER(_p)
#define IXGBE_WRITE_FLUSH(a)
#define IXGBE_WRITE_REG(a, reg, val)
#define ERROR_REPORT2(S, A, B)
@ IXGBE_ERROR_INVALID_STATE
s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw)
s32 ixgbe_get_copper_link_capabilities_generic(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *autoneg)
s32 ixgbe_write_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 data)
s32 ixgbe_get_sfp_init_sequence_offsets(struct ixgbe_hw *hw, u16 *list_offset, u16 *data_offset)
s32 ixgbe_identify_module_generic(struct ixgbe_hw *hw)
s32 ixgbe_get_phy_firmware_version_tnx(struct ixgbe_hw *hw, u16 *firmware_version)
u64 ixgbe_get_supported_phy_sfp_layer_generic(struct ixgbe_hw *hw)
s32 ixgbe_setup_phy_link_tnx(struct ixgbe_hw *hw)
s32 ixgbe_check_phy_link_tnx(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up)
s32 ixgbe_init_phy_ops_generic(struct ixgbe_hw *hw)
s32 ixgbe_check_reset_blocked(struct ixgbe_hw *hw)
s32 ixgbe_read_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data)
#define IXGBE_FDIRCTRL_PERFECT_MATCH
#define IXGBE_GSSR_MAC_CSR_SM
#define IXGBE_AUTOC2_10G_KR
#define IXGBE_ERR_EEPROM_VERSION
#define IXGBE_FDIRCMD_VT_POOL_SHIFT
#define IXGBE_MDIO_PHY_1000BASET_ABILITY
#define IXGBE_PHYSICAL_LAYER_10GBASE_CX4
#define IXGBE_ERR_SWFW_SYNC
#define IXGBE_RXCTRL_RXEN
#define IXGBE_MDIO_PHY_EXT_ABILITY
#define IXGBE_FDIRCTRL_REPORT_STATUS
#define IXGBE_FDIRIP6M_TUNNEL_TYPE
#define IXGBE_AUTOC_LMS_1G_AN
#define IXGBE_LINKS_KX_AN_COMP
#define IXGBE_FDIRIP6M_ALWAYS_MASK
#define IXGBE_AUTOC_10G_KX4
#define IXGBE_DEV_ID_82599_XAUI_LOM
#define IXGBE_AUTO_NEG_TIME
#define IXGBE_PHYSICAL_LAYER_10GBASE_T
#define IXGBE_ATR_SIGNATURE_HASH_KEY
#define IXGBE_PHYSICAL_LAYER_100BASE_TX
#define IXGBE_AUTOC_1G_SFI
#define IXGBE_PHYSICAL_LAYER_1000BASE_KX
#define IXGBE_DEV_ID_82599_BYPASS
#define IXGBE_DEV_ID_82599_T3_LOM
#define IXGBE_FDIRM_VLANP
#define IXGBE_FDIRCMD_QUEUE_EN
#define IXGBE_FWSM_MODE_MASK
#define IXGBE_FDIRCTRL_FLEX_SHIFT
#define IXGBE_ATR_L4TYPE_MASK
#define IXGBE_FDIRM_DIPv6
#define IXGBE_PHYSICAL_LAYER_UNKNOWN
#define IXGBE_AUTOC_LMS_1G_LINK_NO_AN
#define IXGBE_FW_LESM_STATE_ENABLED
#define IXGBE_ATR_L4TYPE_IPV6_MASK
#define IXGBE_FDIRCTRL_FULL_THRESH_SHIFT
#define IXGBE_PHYSICAL_LAYER_10GBASE_KR
#define IXGBE_FLAGS_DOUBLE_RESET_REQUIRED
@ IXGBE_ATR_FLOW_TYPE_SCTPV4
@ IXGBE_ATR_FLOW_TYPE_TUNNELED_TCPV4
@ IXGBE_ATR_FLOW_TYPE_TUNNELED_SCTPV4
@ IXGBE_ATR_FLOW_TYPE_TCPV4
@ IXGBE_ATR_FLOW_TYPE_TCPV6
@ IXGBE_ATR_FLOW_TYPE_TUNNELED_UDPV4
@ IXGBE_ATR_FLOW_TYPE_IPV4
@ IXGBE_ATR_FLOW_TYPE_SCTPV6
@ IXGBE_ATR_FLOW_TYPE_UDPV6
@ IXGBE_ATR_FLOW_TYPE_TUNNELED_IPV4
@ IXGBE_ATR_FLOW_TYPE_UDPV4
#define IXGBE_FDIRCTRL_DROP_Q_MASK
#define IXGBE_DEV_ID_82599_SFP_SF2
#define IXGBE_AUTOC_LMS_SGMII_1G_100M
#define IXGBE_FDIR_INIT_DONE_POLL
#define IXGBE_FW_PASSTHROUGH_PATCH_CONFIG_PTR
#define IXGBE_LINK_SPEED_UNKNOWN
#define IXGBE_AUTOC_KX4_SUPP
#define IXGBE_EEPROM_CCD_BIT
#define IXGBE_DEV_ID_82599_SFP_FCOE
@ ixgbe_phy_sfp_unsupported
#define IXGBE_AUTOC_LMS_MASK
#define IXGBE_MDIO_PHY_10GBASET_ABILITY
#define IXGBE_FDIRIP6M_TNI_VNI
#define IXGBE_ATR_HASH_MASK
#define IXGBE_FDIRSIPv6(_i)
#define IXGBE_DEV_ID_82599_KX4_MEZZ
#define IXGBE_ATR_L4TYPE_TUNNEL_MASK
#define IXGBE_AUTOC_10G_PMA_PMD_MASK
#define IXGBE_ESDP_SDP0_DIR
@ ixgbe_media_type_unknown
@ ixgbe_media_type_copper
@ ixgbe_media_type_fiber_qsfp
@ ixgbe_media_type_backplane
@ ixgbe_media_type_fiber_fixed
#define IXGBE_EERD_MAX_ADDR
#define IXGBE_FDIRCMD_CMD_POLL
#define IXGBE_AUTOC_LMS_10G_SERIAL
#define IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK
@ ixgbe_sfp_type_1g_sx_core1
@ ixgbe_sfp_type_1g_cu_core1
@ ixgbe_sfp_type_1g_lx_core0
@ ixgbe_sfp_type_1g_cu_core0
@ ixgbe_sfp_type_1g_lx_core1
@ ixgbe_sfp_type_1g_sx_core0
#define IXGBE_ERR_FDIR_REINIT_FAILED
#define IXGBE_FDIR_DROP_QUEUE
#define IXGBE_FDIRCTRL_FILTERMODE_CLOUD
#define IXGBE_ESDP_SDP5_DIR
#define IXGBE_MDIO_PMA_PMD_DEV_TYPE
#define IXGBE_AUTOC_KX4_KX_SUPP_MASK
#define IXGBE_FDIRCMD_FILTER_UPDATE
#define IXGBE_ATR_BUCKET_HASH_KEY
#define IXGBE_AUTOC_AN_RESTART
#define IXGBE_EEPROM_CTRL_2
#define IXGBE_PHYSICAL_LAYER_10GBASE_XAUI
#define IXGBE_FDIRCMD_DROP
#define IXGBE_FW_LESM_PARAMETERS_PTR
#define IXGBE_FDIRCMD_FILTER_VALID
#define IXGBE_ANLP1_AN_STATE_MASK
#define IXGBE_CORECTL_WRITE_CMD
#define IXGBE_FDIRTCPM_DPORTM_SHIFT
#define IXGBE_AUTOC_LMS_KX4_KX_KR
#define IXGBE_DEV_ID_82599_BACKPLANE_FCOE
#define IXGBE_PHYSICAL_LAYER_1000BASE_BX
#define IXGBE_FDIRCTRL_INIT_DONE
#define IXGBE_FDIRCMD_LAST
#define IXGBE_AUTOC_KR_SUPP
#define IXGBE_LINK_SPEED_100_FULL
#define IXGBE_AUTOC_10G_CX4
#define IXGBE_FDIRCMD_RX_QUEUE_SHIFT
#define IXGBE_FDIRHASH_SIG_SW_INDEX_SHIFT
#define IXGBE_FDIRCMD_CMD_REMOVE_FLOW
#define IXGBE_DEV_ID_82599_SFP_EM
#define IXGBE_MDIO_PHY_100BASETX_ABILITY
#define IXGBE_FDIRCTRL_DROP_NO_MATCH
#define IXGBE_DEV_ID_82599_KR
#define IXGBE_LINK_SPEED_1GB_FULL
#define IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN
#define IXGBE_AUTOC_10G_XAUI
#define IXGBE_AUTOC_KX_SUPP
#define IXGBE_FDIRCMD_FLOW_TYPE_SHIFT
#define IXGBE_AUTOC2_UPPER_MASK
#define IXGBE_PHYSICAL_LAYER_10GBASE_KX4
#define IXGBE_ERR_LINK_SETUP
#define IXGBE_AUTOC2_10G_SFI
#define IXGBE_AUTOC_LMS_SHIFT
#define IXGBE_SMARTSPEED_MAX_RETRIES
#define IXGBE_FDIRCTRL_FILTERMODE_SHIFT
#define IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT
#define IXGBE_LINK_SPEED_10GB_FULL
#define IXGBE_DEV_ID_82599_SFP_SF_QP
#define IXGBE_FDIRIP6M_TNI_VNI_24
#define IXGBE_DEV_ID_82599EN_SFP
#define IXGBE_ERR_FDIR_CMD_INCOMPLETE
#define IXGBE_FDIRCMD_TUNNEL_FILTER
#define IXGBE_AUTOC2_LINK_DISABLE_ON_D3_MASK
#define IXGBE_DEV_ID_82599_CX4
#define IXGBE_FWSM_BY_MAC(_hw)
#define IXGBE_FW_LESM_STATE_1
#define IXGBE_DEV_ID_82599_QSFP_SF_QP
#define IXGBE_FDIRCMD_CMD_QUERY_REM_FILT
#define IXGBE_ERR_SFP_SETUP_NOT_COMPLETE
#define IXGBE_FW_PATCH_VERSION_4
#define IXGBE_DEV_ID_82599_SFP
#define IXGBE_FDIRM_VLANID
#define IXGBE_AUTOC_1G_KX_BX
#define IXGBE_DEV_ID_82599_KX4
#define IXGBE_AUTOC2_LINK_DISABLE_MASK
#define IXGBE_DEV_ID_82599_COMBO_BACKPLANE
#define IXGBE_AUTOC_1G_PMA_PMD_MASK
#define IXGBE_CTRL_LNK_RST
#define IXGBE_FDIRCMD_CMD_MASK
#define IXGBE_FDIRCTRL_DROP_Q_SHIFT
#define IXGBE_CTRL_RST_MASK
#define IXGBE_FDIRPORT_DESTINATION_SHIFT
#define IXGBE_FDIRCMD_CLEARHT
#define IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII
#define IXGBE_FDIRIP6M_INNER_MAC
#define IXGBE_PHYSICAL_LAYER_1000BASE_T
#define IXGBE_ERR_AUTONEG_NOT_COMPLETE
#define IXGBE_AUTOC_LMS_10G_LINK_NO_AN
#define IXGBE_FDIRCMD_CMD_ADD_FLOW
#define IXGBE_CLEAR_VMDQ_ALL
#define IXGBE_ERR_SFP_NOT_SUPPORTED
#define IXGBE_ERR_RESET_FAILED
#define IXGBE_FDIRVLAN_FLEX_SHIFT
#define IXGBE_FDIRIP6M_DIPM_SHIFT
enum ixgbe_eeprom_type type
struct ixgbe_eeprom_operations ops
s32(* read_buffer)(struct ixgbe_hw *, u16, u16, u16 *)
s32(* read)(struct ixgbe_hw *, u16, u16 *)
struct ixgbe_mac_info mac
struct ixgbe_mbx_info mbx
struct ixgbe_eeprom_info eeprom
struct ixgbe_phy_info phy
bool orig_link_settings_stored
u8 perm_addr[IXGBE_ETH_LENGTH_OF_ADDRESS]
u8 san_addr[IXGBE_ETH_LENGTH_OF_ADDRESS]
struct ixgbe_mac_operations ops
s32(* get_wwn_prefix)(struct ixgbe_hw *, u16 *, u16 *)
s32(* set_vlvf)(struct ixgbe_hw *, u32, u32, bool, u32 *, u32, bool)
s32(* reset_hw)(struct ixgbe_hw *)
s32(* prot_autoc_read)(struct ixgbe_hw *, bool *, u32 *)
void(* set_mac_anti_spoofing)(struct ixgbe_hw *, bool, int)
s32(* acquire_swfw_sync)(struct ixgbe_hw *, u32)
s32(* set_fw_drv_ver)(struct ixgbe_hw *, u8, u8, u8, u8, u16, const char *)
s32(* get_mac_addr)(struct ixgbe_hw *, u8 *)
s32(* init_rx_addrs)(struct ixgbe_hw *)
s32(* enable_rx_dma)(struct ixgbe_hw *, u32)
s32(* setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool)
s32(* set_rar)(struct ixgbe_hw *, u32, u8 *, u32, u32)
void(* release_swfw_sync)(struct ixgbe_hw *, u32)
s32(* read_analog_reg8)(struct ixgbe_hw *, u32, u8 *)
s32(* clear_vmdq)(struct ixgbe_hw *, u32, u32)
s32(* setup_mac_link)(struct ixgbe_hw *, ixgbe_link_speed, bool)
void(* set_rate_select_speed)(struct ixgbe_hw *, ixgbe_link_speed)
s32(* clear_vfta)(struct ixgbe_hw *)
s32(* init_thermal_sensor_thresh)(struct ixgbe_hw *hw)
void(* set_vlan_anti_spoofing)(struct ixgbe_hw *, bool, int)
void(* setup_rxpba)(struct ixgbe_hw *, int, u32, int)
s32(* set_vmdq)(struct ixgbe_hw *, u32, u32)
s32(* check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool)
void(* get_rtrup2tc)(struct ixgbe_hw *hw, u8 *map)
s32(* get_thermal_sensor_data)(struct ixgbe_hw *)
s32(* prot_autoc_write)(struct ixgbe_hw *, u32, bool)
s32(* setup_sfp)(struct ixgbe_hw *)
s32(* set_vfta)(struct ixgbe_hw *, u32, u32, bool, bool)
s32(* disable_sec_rx_path)(struct ixgbe_hw *)
s32(* enable_sec_rx_path)(struct ixgbe_hw *)
s32(* bypass_set)(struct ixgbe_hw *hw, u32 cmd, u32 event, u32 action)
s32(* get_san_mac_addr)(struct ixgbe_hw *, u8 *)
s32(* write_analog_reg8)(struct ixgbe_hw *, u32, u8)
s32(* init_uta_tables)(struct ixgbe_hw *)
void(* disable_tx_laser)(struct ixgbe_hw *)
s32(* get_device_caps)(struct ixgbe_hw *, u16 *)
void(* enable_relaxed_ordering)(struct ixgbe_hw *)
s32(* get_link_capabilities)(struct ixgbe_hw *, ixgbe_link_speed *, bool *)
s32(* insert_mac_addr)(struct ixgbe_hw *, u8 *, u32)
void(* enable_tx_laser)(struct ixgbe_hw *)
void(* flap_tx_laser)(struct ixgbe_hw *)
enum ixgbe_media_type(* get_media_type)(struct ixgbe_hw *)
s32(* set_san_mac_addr)(struct ixgbe_hw *, u8 *)
s32(* get_fcoe_boot_status)(struct ixgbe_hw *, u16 *)
s32(* start_hw)(struct ixgbe_hw *)
s32(* set_vmdq_san_mac)(struct ixgbe_hw *, u32)
bool(* bypass_valid_rd)(u32 in_reg, u32 out_reg)
s32(* stop_adapter)(struct ixgbe_hw *)
s32(* bypass_rd_eep)(struct ixgbe_hw *hw, u32 addr, u8 *value)
u64(* get_supported_physical_layer)(struct ixgbe_hw *)
s32(* bypass_rw)(struct ixgbe_hw *hw, u32 cmd, u32 *status)
struct ixgbe_mbx_operations ops
void(* init_params)(struct ixgbe_hw *hw)
enum ixgbe_media_type media_type
ixgbe_autoneg_advertised autoneg_advertised
struct ixgbe_phy_operations ops
enum ixgbe_sfp_type sfp_type
enum ixgbe_smart_speed smart_speed
s32(* setup_link_speed)(struct ixgbe_hw *, ixgbe_link_speed, bool)
s32(* write_i2c_byte)(struct ixgbe_hw *, u8, u8, u8)
s32(* read_i2c_byte)(struct ixgbe_hw *, u8, u8, u8 *)
s32(* init)(struct ixgbe_hw *)
s32(* get_firmware_version)(struct ixgbe_hw *, u16 *)
s32(* reset)(struct ixgbe_hw *)
s32(* identify)(struct ixgbe_hw *)
s32(* check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *)
s32(* read_reg)(struct ixgbe_hw *, u32, u32, u16 *)
s32(* setup_link)(struct ixgbe_hw *)
struct ixgbe_atr_hash_dword::@19 formatted