165 bool supported =
false;
169 DEBUGFUNC(
"ixgbe_device_supports_autoneg_fc");
224 "Device %x does not support flow control autoneg",
239 u32 reg = 0, reg_bp = 0;
248 "ixgbe_fc_rx_pause not valid in strict IEEE mode\n");
314 reg &= ~IXGBE_PCS1GANA_SYM_PAUSE;
317 reg_bp &= ~IXGBE_AUTOC_SYM_PAUSE;
320 reg_cu &= ~IXGBE_TAF_SYM_PAUSE;
344 "Flow control param set incorrectly\n");
360 reg &= ~IXGBE_PCS1GLCTL_AN_1G_TIMEOUT_EN;
363 DEBUGOUT1(
"Set up FC; PCS1GLCTL = 0x%08X\n", reg);
382 DEBUGOUT1(
"Set up FC; PCS1GLCTL = 0x%08X\n", reg);
424 DEBUGOUT1(
"Flow control setup failed, returning %d\n", ret_val);
475 regval &= ~IXGBE_DCA_TXCTRL_DESC_WRO_EN;
516 DEBUGOUT1(
"Failed to initialize HW, STATUS = %d\n", status);
532 DEBUGFUNC(
"ixgbe_clear_hw_cntrs_generic");
538 for (i = 0; i < 8; i++)
554 for (i = 0; i < 8; i++) {
566 for (i = 0; i < 8; i++)
583 for (i = 0; i < 8; i++)
604 for (i = 0; i < 16; i++) {
652 DEBUGFUNC(
"ixgbe_read_pba_string_generic");
654 if (pba_num == NULL) {
655 DEBUGOUT(
"PBA string buffer was null\n");
677 DEBUGOUT(
"NVM PBA number is not stored as string\n");
680 if (pba_num_size < 11) {
681 DEBUGOUT(
"PBA string buffer too small\n");
686 pba_num[0] = (data >> 12) & 0xF;
687 pba_num[1] = (data >> 8) & 0xF;
688 pba_num[2] = (data >> 4) & 0xF;
689 pba_num[3] = data & 0xF;
690 pba_num[4] = (pba_ptr >> 12) & 0xF;
691 pba_num[5] = (pba_ptr >> 8) & 0xF;
694 pba_num[8] = (pba_ptr >> 4) & 0xF;
695 pba_num[9] = pba_ptr & 0xF;
701 for (offset = 0; offset < 10; offset++) {
702 if (pba_num[offset] < 0xA)
703 pba_num[offset] +=
'0';
704 else if (pba_num[offset] < 0x10)
705 pba_num[offset] +=
'A' - 0xA;
717 if (length == 0xFFFF || length == 0) {
718 DEBUGOUT(
"NVM PBA number section invalid length\n");
723 if (pba_num_size < (((
u32)length * 2) - 1)) {
724 DEBUGOUT(
"PBA string buffer too small\n");
732 for (offset = 0; offset < length; offset++) {
738 pba_num[offset * 2] = (
u8)(data >> 8);
739 pba_num[(offset * 2) + 1] = (
u8)(data & 0xFF);
741 pba_num[offset * 2] =
'\0';
768 *pba_num = (
u32)(data << 16);
775 *pba_num |= (
u32)data;
793 u32 eeprom_buf_size,
u16 max_pba_block_size,
802 if (eeprom_buf == NULL) {
826 if (pba_block_size > max_pba_block_size)
829 if (eeprom_buf == NULL) {
836 if (eeprom_buf_size > (
u32)(pba->
word[1] +
839 &eeprom_buf[pba->
word[1]],
840 pba_block_size *
sizeof(
u16));
869 if (eeprom_buf == NULL) {
887 if (eeprom_buf == NULL) {
894 if (eeprom_buf_size > (
u32)(pba->
word[1] +
896 memcpy(&eeprom_buf[pba->
word[1]],
921 u32 eeprom_buf_size,
u16 *pba_block_size)
929 if (eeprom_buf == NULL) {
944 if (eeprom_buf == NULL) {
950 if (eeprom_buf_size > pba_word[1])
951 length = eeprom_buf[pba_word[1] + 0];
956 if (length == 0xFFFF || length == 0)
963 if (pba_block_size != NULL)
964 *pba_block_size = length;
989 for (i = 0; i < 4; i++)
990 mac_addr[i] = (
u8)(rar_low >> (i*8));
992 for (i = 0; i < 2; i++)
993 mac_addr[i+4] = (
u8)(rar_high >> (i*8));
1059 DEBUGFUNC(
"ixgbe_get_bus_info_generic");
1083 DEBUGFUNC(
"ixgbe_set_lan_id_multi_port_pcie");
1116 DEBUGFUNC(
"ixgbe_stop_adapter_generic");
1140 reg_val &= ~IXGBE_RXDCTL_ENABLE;
1166 u32 led_reg, led_mode;
1172 for (i = 0; i < 4; i++) {
1212 led_reg &= ~IXGBE_LED_MODE_MASK(index);
1235 led_reg &= ~IXGBE_LED_MODE_MASK(index);
1256 DEBUGFUNC(
"ixgbe_init_eeprom_params_generic");
1288 DEBUGOUT3(
"Eeprom params: type = %d, size = %d, address bits: "
1311 DEBUGFUNC(
"ixgbe_write_eeprom_buffer_bit_bang_generic");
1371 DEBUGFUNC(
"ixgbe_write_eeprom_buffer_bit_bang");
1384 for (i = 0; i < words; i++) {
1399 ((offset + i) >= 128))
1413 word = (word >> 8) | (word << 8);
1420 if (((offset + i) & (page_size - 1)) ==
1423 }
while (++i < words);
1448 DEBUGFUNC(
"ixgbe_write_eeprom_generic");
1478 DEBUGFUNC(
"ixgbe_read_eeprom_buffer_bit_bang_generic");
1529 DEBUGFUNC(
"ixgbe_read_eeprom_buffer_bit_bang");
1542 for (i = 0; i < words; i++) {
1549 ((offset + i) >= 128))
1560 data[i] = (word_in >> 8) | (word_in << 8);
1583 DEBUGFUNC(
"ixgbe_read_eeprom_bit_bang_generic");
1614 DEBUGFUNC(
"ixgbe_read_eerd_buffer_generic");
1630 for (i = 0; i < words; i++) {
1641 DEBUGOUT(
"Eeprom read timed out\n");
1665 DEBUGFUNC(
"ixgbe_detect_eeprom_page_size_generic");
1687 DEBUGOUT1(
"Detected EEPROM page size = %d words.",
1738 for (i = 0; i < words; i++) {
1745 DEBUGOUT(
"Eeprom write EEWR timed out\n");
1753 DEBUGOUT(
"Eeprom write EEWR timed out\n");
1806 "EEPROM read/write done polling timed out");
1846 eec &= ~IXGBE_EEC_REQ;
1848 DEBUGOUT(
"Could not acquire EEPROM grant\n");
1879 DEBUGFUNC(
"ixgbe_get_eeprom_semaphore");
1883 for (i = 0; i < timeout; i++) {
1897 DEBUGOUT(
"Driver can't access the Eeprom - SMBI Semaphore "
1920 for (i = 0; i < timeout; i++) {
1944 "SWESMBI Software EEPROM semaphore not granted.\n");
1950 "Software semaphore SMBI between device drivers "
1967 DEBUGFUNC(
"ixgbe_release_eeprom_semaphore");
2011 DEBUGOUT(
"SPI EEPROM Status error\n");
2035 eec &= ~IXGBE_EEC_CS;
2054 DEBUGFUNC(
"ixgbe_shift_out_eeprom_bits");
2062 mask = 0x01 << (count - 1);
2064 for (i = 0; i < count; i++) {
2075 eec &= ~IXGBE_EEC_DI;
2093 eec &= ~IXGBE_EEC_DI;
2109 DEBUGFUNC(
"ixgbe_shift_in_eeprom_bits");
2122 for (i = 0; i < count; i++) {
2170 *eec = *eec & ~IXGBE_EEC_SK;
2189 eec &= ~IXGBE_EEC_SK;
2197 eec &= ~IXGBE_EEC_REQ;
2221 DEBUGFUNC(
"ixgbe_calc_eeprom_checksum_generic");
2240 if (pointer == 0xFFFF || pointer == 0)
2248 if (length == 0xFFFF || length == 0)
2251 for (j = pointer + 1; j <= pointer + length; j++) {
2262 return (
s32)checksum;
2278 u16 read_checksum = 0;
2280 DEBUGFUNC(
"ixgbe_validate_eeprom_checksum_generic");
2296 checksum = (
u16)(status & 0xffff);
2307 if (read_checksum != checksum)
2312 *checksum_val = checksum;
2326 DEBUGFUNC(
"ixgbe_update_eeprom_checksum_generic");
2342 checksum = (
u16)(status & 0xffff);
2368 }
else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
2369 mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0) {
2388 u32 rar_low, rar_high;
2394 if (index >= rar_entries) {
2396 "RAR index %d is out of range.\n", index);
2407 rar_low = ((
u32)addr[0] |
2408 ((
u32)addr[1] << 8) |
2409 ((
u32)addr[2] << 16) |
2410 ((
u32)addr[3] << 24));
2418 rar_high |= ((
u32)addr[4] | ((
u32)addr[5] << 8));
2420 if (enable_addr != 0)
2444 if (index >= rar_entries) {
2446 "RAR index %d is out of range.\n", index);
2480 DEBUGFUNC(
"ixgbe_init_rx_addrs_generic");
2492 DEBUGOUT3(
" Keeping Current RAR0 Addr =%.2X %.2X %.2X ",
2499 DEBUGOUT(
"Overriding MAC Address in RAR[0]\n");
2500 DEBUGOUT3(
" New MAC Addr =%.2X %.2X %.2X ",
2517 DEBUGOUT1(
"Clearing RAR[1-%d]\n", rar_entries - 1);
2518 for (i = 1; i < rar_entries; i++) {
2551 DEBUGOUT6(
" UC Addr = %.2X %.2X %.2X %.2X %.2X %.2X\n",
2552 addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
2561 DEBUGOUT1(
"Added a secondary address to RAR[%d]\n", rar);
2567 DEBUGOUT(
"ixgbe_add_uc_addr Complete\n");
2594 DEBUGFUNC(
"ixgbe_update_uc_addr_list_generic");
2605 DEBUGOUT1(
"Clearing RAR[1-%d]\n", uc_addr_in_use+1);
2606 for (i = 0; i < uc_addr_in_use; i++) {
2612 for (i = 0; i < addr_count; i++) {
2613 DEBUGOUT(
" Adding the secondary addresses:\n");
2614 addr = next(hw, &addr_list, &vmdq);
2621 DEBUGOUT(
" Entering address overflow promisc mode\n");
2629 DEBUGOUT(
" Leaving address overflow promisc mode\n");
2631 fctrl &= ~IXGBE_FCTRL_UPE;
2636 DEBUGOUT(
"ixgbe_update_uc_addr_list_generic Complete\n");
2660 vector = ((mc_addr[4] >> 4) | (((
u16)mc_addr[5]) << 4));
2663 vector = ((mc_addr[4] >> 3) | (((
u16)mc_addr[5]) << 5));
2666 vector = ((mc_addr[4] >> 2) | (((
u16)mc_addr[5]) << 6));
2669 vector = ((mc_addr[4]) | (((
u16)mc_addr[5]) << 8));
2672 DEBUGOUT(
"MC filter type param set incorrectly\n");
2700 DEBUGOUT1(
" bit-vector = 0x%03X\n", vector);
2711 vector_reg = (vector >> 5) & 0x7F;
2712 vector_bit = vector & 0x1F;
2734 DEBUGFUNC(
"ixgbe_update_mc_addr_list_generic");
2750 for (i = 0; i < mc_addr_count; i++) {
2751 DEBUGOUT(
" Adding the multicast addresses:\n");
2764 DEBUGOUT(
"ixgbe_update_mc_addr_list_generic Complete\n");
2814 u32 mflcn_reg, fccfg_reg;
2833 DEBUGOUT(
"Invalid water mark configuration\n");
2892 "Flow control param set incorrectly\n");
2954 if ((!(adv_reg)) || (!(lp_reg))) {
2956 "Local or link partner's advertised flow control "
2957 "settings are NULL. Local: %x, link partner: %x\n",
2962 if ((adv_reg & adv_sym) && (lp_reg & lp_sym)) {
2972 DEBUGOUT(
"Flow Control = FULL.\n");
2975 DEBUGOUT(
"Flow Control=RX PAUSE frames only\n");
2977 }
else if (!(adv_reg & adv_sym) && (adv_reg & adv_asm) &&
2978 (lp_reg & lp_sym) && (lp_reg & lp_asm)) {
2980 DEBUGOUT(
"Flow Control = TX PAUSE frames only.\n");
2981 }
else if ((adv_reg & adv_sym) && (adv_reg & adv_asm) &&
2982 !(lp_reg & lp_sym) && (lp_reg & lp_asm)) {
2984 DEBUGOUT(
"Flow Control = RX PAUSE frames only.\n");
2987 DEBUGOUT(
"Flow Control = NONE.\n");
3000 u32 pcs_anadv_reg, pcs_lpab_reg, linkstat;
3012 DEBUGOUT(
"Auto-Negotiation did not complete or timed out\n");
3037 u32 links2, anlp1_reg, autoc_reg, links;
3047 DEBUGOUT(
"Auto-Negotiation did not complete\n");
3054 DEBUGOUT(
"Link partner is not AN enabled\n");
3081 u16 technology_ability_reg = 0;
3082 u16 lp_technology_ability_reg = 0;
3086 &technology_ability_reg);
3089 &lp_technology_ability_reg);
3092 (
u32)lp_technology_ability_reg,
3121 "Flow control autoneg is disabled");
3208 return (pollcnt * 11) / 10;
3251 DEBUGOUT(
"GIO Master Disable bit didn't clear - requesting resets\n");
3262 for (i = 0; i < poll; i++) {
3272 "PCIe transaction pending bit also did not clear.\n");
3291 u32 fwmask = mask << 5;
3297 for (i = 0; i < timeout; i++) {
3306 if (!(gssr & (fwmask | swmask))) {
3319 if (gssr & (fwmask | swmask))
3359#define IXGBE_MAX_SECRX_POLL 4000
3364 DEBUGFUNC(
"ixgbe_disable_sec_rx_path_generic");
3381 DEBUGOUT(
"Rx unit being enabled before security "
3382 "path fully disabled. Continuing with init.\n");
3429 DEBUGFUNC(
"ixgbe_enable_sec_rx_path_generic");
3432 secrxreg &= ~IXGBE_SECRXCTRL_RX_DIS;
3448 DEBUGFUNC(
"ixgbe_enable_rx_dma_generic");
3470 bool locked =
false;
3472 DEBUGFUNC(
"ixgbe_blink_led_start_generic");
3499 led_reg &= ~IXGBE_LED_MODE_MASK(index);
3518 bool locked =
false;
3520 DEBUGFUNC(
"ixgbe_blink_led_stop_generic");
3529 autoc_reg &= ~IXGBE_AUTOC_FLU;
3536 led_reg &= ~IXGBE_LED_MODE_MASK(index);
3537 led_reg &= ~IXGBE_LED_BLINK(index);
3556 u16 *san_mac_offset)
3560 DEBUGFUNC(
"ixgbe_get_san_mac_addr_offset");
3570 "eeprom at offset %d failed",
3589 u16 san_mac_data, san_mac_offset;
3593 DEBUGFUNC(
"ixgbe_get_san_mac_addr_generic");
3600 if (ret_val || san_mac_offset == 0 || san_mac_offset == 0xFFFF)
3601 goto san_mac_addr_out;
3608 for (i = 0; i < 3; i++) {
3613 "eeprom read at offset %d failed",
3615 goto san_mac_addr_out;
3617 san_mac_addr[i * 2] = (
u8)(san_mac_data);
3618 san_mac_addr[i * 2 + 1] = (
u8)(san_mac_data >> 8);
3628 for (i = 0; i < 6; i++)
3629 san_mac_addr[i] = 0xFF;
3643 u16 san_mac_data, san_mac_offset;
3646 DEBUGFUNC(
"ixgbe_set_san_mac_addr_generic");
3650 if (ret_val || san_mac_offset == 0 || san_mac_offset == 0xFFFF)
3659 for (i = 0; i < 3; i++) {
3660 san_mac_data = (
u16)((
u16)(san_mac_addr[i * 2 + 1]) << 8);
3661 san_mac_data |= (
u16)(san_mac_addr[i * 2]);
3699 DEBUGFUNC(
"ixgbe_get_pcie_msix_count_generic");
3708 if (msix_count > max_msix_count)
3709 msix_count = max_msix_count;
3725 static const u32 NO_EMPTY_RAR_FOUND = 0xFFFFFFFF;
3726 u32 first_empty_rar = NO_EMPTY_RAR_FOUND;
3728 u32 rar_low, rar_high;
3729 u32 addr_low, addr_high;
3731 DEBUGFUNC(
"ixgbe_insert_mac_addr_generic");
3734 addr_low = addr[0] | (addr[1] << 8)
3737 addr_high = addr[4] | (addr[5] << 8);
3749 && first_empty_rar == NO_EMPTY_RAR_FOUND) {
3750 first_empty_rar = rar;
3751 }
else if ((rar_high & 0xFFFF) == addr_high) {
3753 if (rar_low == addr_low)
3758 if (rar < hw->mac.rar_highwater) {
3761 }
else if (first_empty_rar != NO_EMPTY_RAR_FOUND) {
3763 rar = first_empty_rar;
3791 u32 mpsar_lo, mpsar_hi;
3797 if (rar >= rar_entries) {
3799 "RAR index %d is out of range.\n", rar);
3809 if (!mpsar_lo && !mpsar_hi)
3821 }
else if (vmdq < 32) {
3822 mpsar_lo &= ~(1 << vmdq);
3825 mpsar_hi &= ~(1 << (vmdq - 32));
3830 if (mpsar_lo == 0 && mpsar_hi == 0 &&
3851 if (rar >= rar_entries) {
3853 "RAR index %d is out of range.\n", rar);
3863 mpsar |= 1 << (vmdq - 32);
3904 DEBUGFUNC(
"ixgbe_init_uta_tables_generic");
3907 for (i = 0; i < 128; i++)
3926 s32 regindex, first_empty_slot;
3951 if (!first_empty_slot && !bits)
3952 first_empty_slot = regindex;
3958 if (!first_empty_slot)
3975 bool vlan_on,
bool vlvf_bypass)
3977 u32 regidx, vfta_delta, vfta;
3982 if (vlan > 4095 || vind > 63)
3998 vfta_delta = 1 << (vlan % 32);
4006 vfta_delta &= vlan_on ? ~vfta : vfta;
4042 bool vlan_on,
u32 *vfta_delta,
u32 vfta,
4050 if (vlan > 4095 || vind > 63)
4070 bits |= 1 << (vind % 32);
4075 bits ^= 1 << (vind % 32);
4129 for (offset = 0; offset < hw->
mac.
vft_size; offset++)
4177 bool *link_up,
bool link_up_wait_to_complete)
4179 u32 links_reg, links_orig;
4182 DEBUGFUNC(
"ixgbe_check_mac_link_generic");
4202 sfp_cage_full =
false;
4206 if (!sfp_cage_full) {
4218 if (links_orig != links_reg) {
4219 DEBUGOUT2(
"LINKS changed from %08X to %08X\n",
4220 links_orig, links_reg);
4223 if (link_up_wait_to_complete) {
4286 u16 alt_san_mac_blk_offset;
4288 DEBUGFUNC(
"ixgbe_get_wwn_prefix_generic");
4291 *wwnn_prefix = 0xFFFF;
4292 *wwpn_prefix = 0xFFFF;
4296 if (hw->
eeprom.
ops.
read(hw, offset, &alt_san_mac_blk_offset))
4297 goto wwn_prefix_err;
4299 if ((alt_san_mac_blk_offset == 0) ||
4300 (alt_san_mac_blk_offset == 0xFFFF))
4301 goto wwn_prefix_out;
4306 goto wwn_prefix_err;
4308 goto wwn_prefix_out;
4314 "eeprom read at offset %d failed", offset);
4319 goto wwn_prefix_err;
4326 "eeprom read at offset %d failed", offset);
4339 u16 offset, caps, flags;
4342 DEBUGFUNC(
"ixgbe_get_fcoe_boot_status_generic");
4361 if ((offset == 0) || (offset == 0xFFFF))
4388 int vf_target_reg = vf >> 3;
4389 int vf_target_shift = vf % 8;
4397 pfvfspoof |= (1 << vf_target_shift);
4399 pfvfspoof &= ~(1 << vf_target_shift);
4412 int vf_target_reg = vf >> 3;
4421 pfvfspoof |= (1 << vf_target_shift);
4423 pfvfspoof &= ~(1 << vf_target_shift);
4437 DEBUGFUNC(
"ixgbe_get_device_caps_generic");
4454 DEBUGFUNC(
"ixgbe_enable_relaxed_ordering_gen2");
4489 for (i = 0; i < length; i++)
4492 return (
u8) (0 - sum);
4518 DEBUGOUT1(
"Buffer length failure buffersize=%d.\n", length);
4529 DEBUGOUT(
"IXGBE_HOST_EN bit disabled.\n");
4534 if (length %
sizeof(
u32)) {
4535 DEBUGOUT(
"Buffer length failure, not aligned to dword");
4539 dword_len = length >> 2;
4544 for (i = 0; i < dword_len; i++)
4551 for (i = 0; i < timeout; i++) {
4566 if ((timeout && i == timeout) ||
4569 "Command has failed with no status valid.\n");
4595 u32 length,
u32 timeout,
bool return_data)
4604 DEBUGFUNC(
"ixgbe_host_interface_command");
4607 DEBUGOUT1(
"Buffer length failure buffersize=%d.\n", length);
4624 dword_len = hdr_size >> 2;
4627 for (bi = 0; bi < dword_len; bi++) {
4639 for (; bi < dword_len + 2; bi++) {
4646 hdr_size += (2 << 2);
4653 if (length <
buf_len + hdr_size) {
4654 DEBUGOUT(
"Buffer not large enough for reply message.\n");
4660 dword_len = (
buf_len + 3) >> 2;
4663 for (; bi <= dword_len; bi++) {
4691 const char *driver_ver)
4697 DEBUGFUNC(
"ixgbe_set_fw_drv_ver_generic");
4722 if (fw_cmd.hdr.cmd_or_resp.ret_status ==
4746 u32 rxpktsize, txpktsize, txpbthresh;
4762 rxpktsize = (pbsize * 5) / (num_pb * 4);
4763 pbsize -= rxpktsize * (num_pb / 2);
4765 for (; i < (num_pb / 2); i++)
4771 for (; i < num_pb; i++)
4781 for (i = 0; i < num_pb; i++) {
4804 u32 gcr_ext, hlreg0, i, poll;
4831 for (i = 0; i < poll; i++) {
4886 DEBUGFUNC(
"ixgbe_get_thermal_sensor_data_generic");
4899 if ((ets_offset == 0x0000) || (ets_offset == 0xFFFF)) {
4918 for (i = 0; i < num_sensors; i++) {
4929 if (sensor_location != 0) {
4956 u8 low_thresh_delta;
4964 DEBUGFUNC(
"ixgbe_init_thermal_sensor_thresh_generic");
4976 if ((ets_offset == 0x0000) || (ets_offset == 0xFFFF))
4979 offset = ets_offset;
4990 for (i = 0; i < num_sensors; i++) {
4991 offset = ets_offset + 1 + i;
4994 "eeprom read at offset %d failed",
5019 "eeprom read at offset %d failed", offset);
5032#define IXGBE_BYPASS_BB_WAIT 1
5036 u32 sck, sdi, sdo, dir_sck, dir_sdi, dir_sdo;
5089 for (i = 0; i < 32; i++) {
5090 if ((cmd >> (31 - i)) & 0x01) {
5112 *status = (*status << 1) | 0x01;
5114 *status = (*status << 1) | 0x00;
5130 *status = (*status & 0x3fffffff) | (cmd & 0xc0000000);
5165 if ((out_reg & mask) != (in_reg & mask))
5178 if ((out_reg & mask) != (in_reg & mask))
5216 cmd = (by_ctl & ~event) |
BYPASS_WE | action;
5282 u16 offset, eeprom_cfg_blkh, eeprom_cfg_blkl;
5296 if ((eeprom_cfg_blkl | eeprom_cfg_blkh) == 0x0 ||
5320 u16 rel_num, prod_ver, mod_len, cap, offset;
5342 if ((rel_num | prod_ver) == 0x0 ||
5362 u16 etk_id_l, etk_id_h;
5373 nvm_ver->
etk_id = etk_id_h;
5376 nvm_ver->
etk_id = etk_id_l;
5410 pfdtxgswc &= ~IXGBE_PFDTXGSWC_VT_LBEN;
5417 rxctrl &= ~IXGBE_RXCTRL_RXEN;
5464 u32 fwsm, manc, factps;
5493 bool autoneg_wait_to_complete)
5500 bool autoneg, link_up =
false;
5502 DEBUGFUNC(
"ixgbe_setup_mac_link_multispeed_fiber");
5509 speed &= link_speed;
5529 DEBUGOUT(
"Unexpected media type.\n");
5538 autoneg_wait_to_complete);
5549 for (i = 0; i < 10; i++) {
5580 DEBUGOUT(
"Unexpected media type.\n");
5589 autoneg_wait_to_complete);
5615 autoneg_wait_to_complete);
5652 DEBUGOUT(
"Invalid fixed module speed\n");
5661 DEBUGOUT(
"Failed to read Rx Rate Select RS0\n");
5665 eeprom_data = (eeprom_data & ~IXGBE_SFF_SOFT_RS_SELECT_MASK) | rs;
5671 DEBUGOUT(
"Failed to write Rx Rate Select RS0\n");
5680 DEBUGOUT(
"Failed to read Rx Rate Select RS1\n");
5684 eeprom_data = (eeprom_data & ~IXGBE_SFF_SOFT_RS_SELECT_MASK) | rs;
5690 DEBUGOUT(
"Failed to write Rx Rate Select RS1\n");
void ixgbe_set_rate_select_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed)
s32 ixgbe_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up, bool link_up_wait_to_complete)
s32 ixgbe_clear_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
s32 ixgbe_get_link_capabilities(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *autoneg)
s32 ixgbe_set_rar(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, u32 enable_addr)
s32 ixgbe_setup_mac_link(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
void ixgbe_flap_tx_laser(struct ixgbe_hw *hw)
void ixgbe_enable_rx(struct ixgbe_hw *hw)
s32 ixgbe_identify_phy(struct ixgbe_hw *hw)
s32 ixgbe_setup_fc(struct ixgbe_hw *hw)
void ixgbe_disable_rx(struct ixgbe_hw *hw)
s32 ixgbe_set_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
s32 ixgbe_init_uta_tables(struct ixgbe_hw *hw)
void ixgbe_set_mta(struct ixgbe_hw *hw, u8 *mc_addr)
s32 ixgbe_blink_led_start_generic(struct ixgbe_hw *hw, u32 index)
bool ixgbe_mng_present(struct ixgbe_hw *hw)
s32 ixgbe_set_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
void ixgbe_add_uc_addr(struct ixgbe_hw *hw, u8 *addr, u32 vmdq)
static s32 ixgbe_mta_vector(struct ixgbe_hw *hw, u8 *mc_addr)
s32 ixgbe_update_eeprom_checksum_generic(struct ixgbe_hw *hw)
s32 ixgbe_clear_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
s32 ixgbe_led_off_generic(struct ixgbe_hw *hw, u32 index)
s32 ixgbe_set_vmdq_san_mac_generic(struct ixgbe_hw *hw, u32 vmdq)
s32 ixgbe_write_eeprom_generic(struct ixgbe_hw *hw, u16 offset, u16 data)
void ixgbe_set_vlan_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf)
s32 ixgbe_write_pba_raw(struct ixgbe_hw *hw, u16 *eeprom_buf, u32 eeprom_buf_size, struct ixgbe_pba *pba)
static void ixgbe_shift_out_eeprom_bits(struct ixgbe_hw *hw, u16 data, u16 count)
s32 ixgbe_find_vlvf_slot(struct ixgbe_hw *hw, u32 vlan, bool vlvf_bypass)
s32 ixgbe_clear_rar_generic(struct ixgbe_hw *hw, u32 index)
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_enable_rx_dma_generic(struct ixgbe_hw *hw, u32 regval)
s32 ixgbe_init_thermal_sensor_thresh_generic(struct ixgbe_hw *hw)
s32 ixgbe_update_uc_addr_list_generic(struct ixgbe_hw *hw, u8 *addr_list, u32 addr_count, ixgbe_mc_addr_itr next)
s32 ixgbe_clear_vfta_generic(struct ixgbe_hw *hw)
static s32 ixgbe_fc_autoneg_backplane(struct ixgbe_hw *hw)
bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
s32 ixgbe_set_rar_generic(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, u32 enable_addr)
#define IXGBE_BYPASS_BB_WAIT
s32 ixgbe_write_eeprom_buffer_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
static s32 ixgbe_acquire_eeprom(struct ixgbe_hw *hw)
s32 ixgbe_read_eeprom_buffer_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
s32 ixgbe_fc_enable_generic(struct ixgbe_hw *hw)
static const u8 ixgbe_emc_therm_limit[4]
s32 ixgbe_init_led_link_act_generic(struct ixgbe_hw *hw)
s32 ixgbe_get_fcoe_boot_status_generic(struct ixgbe_hw *hw, u16 *bs)
s32 ixgbe_init_uta_tables_generic(struct ixgbe_hw *hw)
static u16 ixgbe_shift_in_eeprom_bits(struct ixgbe_hw *hw, u16 count)
void ixgbe_enable_rx_generic(struct ixgbe_hw *hw)
static s32 ixgbe_detect_eeprom_page_size_generic(struct ixgbe_hw *hw, u16 offset)
s32 ixgbe_bypass_rw_generic(struct ixgbe_hw *hw, u32 cmd, u32 *status)
s32 ixgbe_blink_led_stop_generic(struct ixgbe_hw *hw, u32 index)
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_setup_fc_generic(struct ixgbe_hw *hw)
static s32 ixgbe_fc_autoneg_copper(struct ixgbe_hw *hw)
s32 ixgbe_get_mac_addr_generic(struct ixgbe_hw *hw, u8 *mac_addr)
s32 ixgbe_start_hw_generic(struct ixgbe_hw *hw)
void ixgbe_set_lan_id_multi_port_pcie(struct ixgbe_hw *hw)
s32 ixgbe_read_pba_raw(struct ixgbe_hw *hw, u16 *eeprom_buf, u32 eeprom_buf_size, u16 max_pba_block_size, struct ixgbe_pba *pba)
s32 ixgbe_clear_hw_cntrs_generic(struct ixgbe_hw *hw)
s32 ixgbe_init_hw_generic(struct ixgbe_hw *hw)
void ixgbe_set_pci_config_data_generic(struct ixgbe_hw *hw, u16 link_status)
void ixgbe_set_rxpba_generic(struct ixgbe_hw *hw, int num_pb, u32 headroom, int strategy)
static void ixgbe_release_eeprom(struct ixgbe_hw *hw)
s32 ixgbe_enable_mc_generic(struct ixgbe_hw *hw)
s32 ixgbe_bypass_set_generic(struct ixgbe_hw *hw, u32 ctrl, u32 event, u32 action)
s32 ixgbe_get_pba_block_size(struct ixgbe_hw *hw, u16 *eeprom_buf, u32 eeprom_buf_size, u16 *pba_block_size)
void ixgbe_disable_rx_generic(struct ixgbe_hw *hw)
#define IXGBE_MAX_SECRX_POLL
s32 ixgbe_read_pba_num_generic(struct ixgbe_hw *hw, u32 *pba_num)
static void ixgbe_standby_eeprom(struct ixgbe_hw *hw)
s32 ixgbe_bypass_rd_eep_generic(struct ixgbe_hw *hw, u32 addr, u8 *value)
s32 ixgbe_calc_eeprom_checksum_generic(struct ixgbe_hw *hw)
s32 ixgbe_disable_mc_generic(struct ixgbe_hw *hw)
s32 ixgbe_acquire_swfw_sync(struct ixgbe_hw *hw, u32 mask)
static bool ixgbe_need_crosstalk_fix(struct ixgbe_hw *hw)
static s32 ixgbe_get_san_mac_addr_offset(struct ixgbe_hw *hw, u16 *san_mac_offset)
void ixgbe_get_orom_version(struct ixgbe_hw *hw, struct ixgbe_nvm_version *nvm_ver)
static void ixgbe_raise_eeprom_clk(struct ixgbe_hw *hw, u32 *eec)
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_disable_pcie_master(struct ixgbe_hw *hw)
static const u8 ixgbe_emc_temp_data[4]
static void ixgbe_lower_eeprom_clk(struct ixgbe_hw *hw, u32 *eec)
s32 ixgbe_read_eerd_buffer_generic(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
s32 prot_autoc_read_generic(struct ixgbe_hw *hw, bool *locked, u32 *reg_val)
s32 ixgbe_read_eeprom_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, u16 *data)
s32 ixgbe_init_eeprom_params_generic(struct ixgbe_hw *hw)
s32 ixgbe_led_on_generic(struct ixgbe_hw *hw, u32 index)
s32 ixgbe_stop_adapter_generic(struct ixgbe_hw *hw)
void ixgbe_start_hw_gen2(struct ixgbe_hw *hw)
void ixgbe_get_etk_id(struct ixgbe_hw *hw, struct ixgbe_nvm_version *nvm_ver)
static s32 ixgbe_write_eeprom_buffer_bit_bang(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
static void ixgbe_release_eeprom_semaphore(struct ixgbe_hw *hw)
static s32 ixgbe_ready_eeprom(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_validate_eeprom_checksum_generic(struct ixgbe_hw *hw, u16 *checksum_val)
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_hic_unlocked(struct ixgbe_hw *hw, u32 *buffer, u32 length, u32 timeout)
static s32 ixgbe_fc_autoneg_fiber(struct ixgbe_hw *hw)
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_write_eewr_generic(struct ixgbe_hw *hw, u16 offset, u16 data)
s32 ixgbe_read_eerd_generic(struct ixgbe_hw *hw, u16 offset, u16 *data)
static s32 ixgbe_read_eeprom_buffer_bit_bang(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
s32 ixgbe_poll_eerd_eewr_done(struct ixgbe_hw *hw, u32 ee_reg)
s32 ixgbe_get_wwn_prefix_generic(struct ixgbe_hw *hw, u16 *wwnn_prefix, u16 *wwpn_prefix)
s32 ixgbe_init_rx_addrs_generic(struct ixgbe_hw *hw)
u8 ixgbe_calculate_checksum(u8 *buffer, u32 length)
s32 ixgbe_read_pba_string_generic(struct ixgbe_hw *hw, u8 *pba_num, u32 pba_num_size)
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)
void ixgbe_fc_autoneg(struct ixgbe_hw *hw)
void ixgbe_release_swfw_sync(struct ixgbe_hw *hw, u32 mask)
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_write_eewr_buffer_generic(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
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)
static s32 ixgbe_get_eeprom_semaphore(struct ixgbe_hw *hw)
s32 ixgbe_get_bus_info_generic(struct ixgbe_hw *hw)
s32 ixgbe_negotiate_fc(struct ixgbe_hw *hw, u32 adv_reg, u32 lp_reg, u32 adv_sym, u32 adv_asm, u32 lp_sym, u32 lp_asm)
u16 ixgbe_get_pcie_msix_count_generic(struct ixgbe_hw *hw)
s32 ixgbe_host_interface_command(struct ixgbe_hw *hw, u32 *buffer, u32 length, u32 timeout, bool return_data)
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)
void ixgbe_get_oem_prod_version(struct ixgbe_hw *hw, struct ixgbe_nvm_version *nvm_ver)
s32 ixgbe_update_mc_addr_list_generic(struct ixgbe_hw *hw, u8 *mc_addr_list, u32 mc_addr_count, ixgbe_mc_addr_itr next, bool clear)
static u32 ixgbe_pcie_timeout_poll(struct ixgbe_hw *hw)
s32 prot_autoc_write_generic(struct ixgbe_hw *hw, u32 reg_val, bool locked)
#define IXGBE_EMC_DIODE2_THERM_LIMIT
#define IXGBE_EMC_DIODE1_THERM_LIMIT
#define IXGBE_EMC_INTERNAL_DATA
#define IXGBE_EMC_DIODE3_DATA
#define IXGBE_EMC_DIODE2_DATA
#define IXGBE_EMC_INTERNAL_THERM_LIMIT
#define IXGBE_EMC_DIODE1_DATA
#define IXGBE_I2C_THERMAL_SENSOR_ADDR
#define IXGBE_EMC_DIODE3_THERM_LIMIT
#define IXGBE_DCB_MAX_USER_PRIORITY
#define IXGBE_RTRUP2TC_UP_MASK
#define IXGBE_RTRUP2TC_UP_SHIFT
#define UNREFERENCED_2PARAMETER(_p, _q)
#define IXGBE_READ_REG(a, reg)
#define ERROR_REPORT3(S, A, B, C)
#define IXGBE_LE32_TO_CPUS(x)
#define IXGBE_READ_PCIE_WORD
#define IXGBE_READ_REG_ARRAY(a, reg, offset)
#define DEBUGOUT2(S, A, B)
#define IXGBE_WRITE_REG_ARRAY(a, reg, offset, val)
#define IXGBE_CPU_TO_LE32
#define DEBUGOUT6(S, A, B, C, D, E, F)
#define DEBUGOUT3(S, A, B, C)
#define ERROR_REPORT1(S, A)
#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
@ IXGBE_ERROR_UNSUPPORTED
#define IXGBE_SFF_SFF_8472_OSCB
#define IXGBE_SFF_SOFT_RS_SELECT_10G
#define IXGBE_TAF_ASM_PAUSE
#define IXGBE_SFF_SFF_8472_ESCB
#define IXGBE_I2C_EEPROM_DEV_ADDR2
#define IXGBE_TAF_SYM_PAUSE
#define IXGBE_SFF_SOFT_RS_SELECT_1G
#define IXGBE_DEV_ID_X540T1
#define IXGBE_PCIDEVCTRL2_1_2ms
#define FW_CEM_RESP_STATUS_SUCCESS
#define IXGBE_LED_BLINK(_i)
#define IXGBE_ALT_SAN_MAC_ADDR_WWPN_OFFSET
#define IXGBE_EERD_EEWR_ATTEMPTS
#define IXGBE_EE_CTRL_4_INST_ID_SHIFT
#define IXGBE_DEV_ID_X550EM_A_SFP
#define IXGBE_NVM_POLL_READ
#define NVM_OEM_PROD_VER_CAP_MASK
#define IXGBE_ERR_SWFW_SYNC
#define IXGBE_RXCTRL_RXEN
#define IXGBE_ERR_INVALID_MAC_ADDR
#define IXGBE_EEPROM_STATUS_RDY_SPI
#define IXGBE_EEPROM_A8_OPCODE_SPI
#define IXGBE_STATUS_LAN_ID_SHIFT
#define IXGBE_LINKS_KX_AN_COMP
#define IXGBE_SWSM_BY_MAC(_hw)
#define IXGBE_EE_CTRL_4_INST_ID
#define IXGBE_MFLCN_RPFCE_MASK
#define IXGBE_RXPBSIZE_SHIFT
#define IXGBE_SECRXSTAT_SECRX_RDY
#define IXGBE_ETS_DATA_INDEX_MASK
#define IXGBE_SAN_MAC_ADDR_PTR
#define IXGBE_EEPROM_READ_OPCODE_SPI
#define IXGBE_STATUS_LAN_ID
#define IXGBE_DEV_ID_X550EM_A_QSFP
#define IXGBE_SAN_MAC_ADDR_PORT0_OFFSET
#define IXGBE_ETS_TYPE_MASK
#define IXGBE_PCIE_MSIX_TBL_SZ_MASK
#define IXGBE_ISCSI_FCOE_BLK_PTR
#define IXGBE_HI_COMMAND_TIMEOUT
@ ixgbe_bus_type_pci_express
#define IXGBE_PXOFFTXC(_i)
#define BYPASS_CTL1_TIME_M
#define IXGBE_MANC_RCV_TCO_EN
#define IXGBE_DEV_ID_82599_T3_LOM
#define IXGBE_PCIDEVCTRL2_16_32ms
#define IXGBE_ETS_DATA_LOC_MASK
#define IXGBE_DEV_ID_X550EM_A_1G_T_L
#define IXGBE_ALT_SAN_MAC_ADDR_CAPS_ALTWWN
#define IXGBE_PCIDEVCTRL2_260_520ms
#define IXGBE_EEPROM_RW_ADDR_SHIFT
#define IXGBE_AUTOC_SYM_PAUSE
#define IXGBE_FWSM_MODE_MASK
#define IXGBE_TXDCTL_SWFLSH
#define IXGBE_DCB_MAX_TRAFFIC_CLASS
#define IXGBE_PXONRXCNT(_i)
#define IXGBE_DEV_ID_X550EM_X_10G_T
#define IXGBE_ALT_SAN_MAC_ADDR_WWNN_OFFSET
#define IXGBE_MAX_SENSORS
#define IXGBE_FACTPS_BY_MAC(_hw)
#define IXGBE_FACTPS_MNGCG
#define IXGBE_LINKS_SPEED_10G_82599
#define BYPASS_CTL2_OFFSET_M
#define FW_CEM_MAX_RETRIES
#define IXGBE_PCIE_ANALOG_PTR
#define IXGBE_EEPROM_GRANT_ATTEMPTS
#define IXGBE_EEPROM_MAX_RETRY_SPI
#define IXGBE_PBANUM1_PTR
#define IXGBE_DCA_RXCTRL_HEAD_WRO_EN
#define IXGBE_STATUS_LAN_ID_1
#define IXGBE_LINK_SPEED_5GB_FULL
#define IXGBE_PCI_LINK_WIDTH
#define IXGBE_PCI_LINK_SPEED_2500
#define IXGBE_LED_MODE_SHIFT(_i)
#define IXGBE_VLVF_ENTRIES
#define BYPASS_CTL2_OFFSET_SHIFT
#define IXGBE_FCRTH_82599(_i)
#define IXGBE_MPSAR_LO(_i)
#define IXGBE_LED_LINK_ACTIVE
#define IXGBE_FLAGS_DOUBLE_RESET_REQUIRED
#define IXGBE_DEV_ID_X540T
#define IXGBE_PCI_LINK_WIDTH_4
@ ixgbe_bus_speed_unknown
#define IXGBE_ISCSI_FCOE_FLAGS_OFFSET
#define IXGBE_TXPBSIZE_MAX
#define IXGBE_RXPBSIZE(_i)
u8 *(* ixgbe_mc_addr_itr)(struct ixgbe_hw *hw, u8 **mc_addr_ptr, u32 *vmdq)
#define IXGBE_ERR_HOST_INTERFACE_COMMAND
#define IXGBE_DEV_ID_X540_BYPASS
#define IXGBE_ERR_NO_SAN_ADDR_PTR
#define IXGBE_LED_MODE_MASK_BASE
#define IXGBE_TXPBSIZE(_i)
#define IXGBE_LINK_SPEED_UNKNOWN
#define IXGBE_ERR_INVALID_LINK_SETTINGS
#define IXGBE_DEV_ID_X550EM_A_1G_T
#define IXGBE_PCIE_MSIX_82598_CAPS
#define IXGBE_PXON2OFFCNT(_i)
#define IXGBE_LINKS_SPEED_1G_82599
#define IXGBE_CTRL_GIO_DIS
#define IXGBE_ETS_LTHRES_DELTA_MASK
#define NVM_OEM_PROD_VER_MOD_LEN
#define IXGBE_PCIDEVCTRL2_4_8s
#define IXGBE_AUTOC_ASM_PAUSE
#define IXGBE_VT_CTL_VT_ENABLE
#define IXGBE_LINKS_SPEED_10_X550EM_A
#define IXGBE_NOT_IMPLEMENTED
@ ixgbe_eeprom_uninitialized
#define IXGBE_ETS_DATA_LOC_SHIFT
#define IXGBE_PCS1GLSTA_AN_COMPLETE
#define IXGBE_PCI_LINK_SPEED_8000
#define IXGBE_TXPBTHRESH(_i)
#define IXGBE_FCOE_IBA_CAPS_FCOE
#define IXGBE_DEV_ID_X550EM_A_SFP_N
#define IXGBE_EEPROM_RW_REG_DATA
#define BYPASS_MAIN_OFF_M
#define NVM_OEM_PROD_VER_OFF_H
#define IXGBE_GSSR_EEP_SM
#define IXGBE_LINKS_SPEED_82599
#define IXGBE_PBANUM_PTR_GUARD
#define IXGBE_ETS_TYPE_EMC
#define IXGBE_PCI_MASTER_DISABLE_TIMEOUT
#define IXGBE_ESDP_SDP0_DIR
@ ixgbe_media_type_copper
@ ixgbe_media_type_fiber_qsfp
@ ixgbe_media_type_backplane
@ ixgbe_media_type_fiber_fixed
#define IXGBE_HOST_INTERFACE_MASK_CMD
#define IXGBE_LINKS_SPEED_NON_STD
#define IXGBE_ANLP1_ASM_PAUSE
#define IXGBE_DCA_RXCTRL(_i)
#define IXGBE_PXOFFRXC(_i)
#define IXGBE_EEPROM_WORD_SIZE_SHIFT
#define IXGBE_BYPASS_FW_WRITE_FAILURE
#define IXGBE_GSSR_SW_MNG_SM
#define IXGBE_RXDCTL_SWFLSH
#define IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD
#define IXGBE_ETS_NUM_SENSORS_MASK
#define IXGBE_PCIDEVCTRL2_1_2s
#define IXGBE_AUTOC_AN_RESTART
#define IXGBE_IS_BROADCAST(Address)
#define IXGBE_GCR_EXT_BUFFERS_CLEAR
#define IXGBE_LINK_SPEED_10_FULL
#define IXGBE_ERR_FC_NOT_NEGOTIATED
#define IXGBE_PCI_LINK_STATUS
#define NVM_OEM_PROD_VER_OFF_L
#define IXGBE_PCIDEVCTRL2_65_130ms
#define IXGBE_DEV_ID_X550T
#define IXGBE_ISCSI_FCOE_FLAGS_ENABLE
#define IXGBE_PCS1GANA_SYM_PAUSE
#define IXGBE_MPSAR_HI(_i)
#define IXGBE_HOST_INTERFACE_FLASH_READ_CMD
#define IXGBE_DEV_ID_X550T1
#define IXGBE_EEPROM_CTRL_4
#define IXGBE_EEC_ADDR_SIZE
#define BYPASS_WDTIMEOUT_M
#define BYPASS_STATUS_OFF_M
#define NVM_OEM_PROD_VER_PTR
#define IXGBE_ESDP_SDP1_DIR
#define IXGBE_PCI_DEVICE_STATUS_TRANSACTION_PENDING
#define IXGBE_PXONTXC(_i)
#define IXGBE_PCIDEVCTRL2_17_34s
#define IXGBE_SPOOF_VLANAS_SHIFT
#define IXGBE_EEPROM_OPCODE_BITS
#define IXGBE_ESDP_SDP6_DIR
#define IXGBE_IS_MULTICAST(Address)
#define IXGBE_PCS1GANA_ASM_PAUSE
#define IXGBE_ETS_DATA_INDEX_SHIFT
#define IXGBE_MAX_MSIX_VECTORS_82599
#define IXGBE_MDIO_AUTO_NEG_ADVT
#define IXGBE_ESDP_SDP2_DIR
#define IXGBE_EEPROM_WRITE_OPCODE_SPI
#define NVM_OROM_PATCH_MASK
#define IXGBE_LINK_SPEED_100_FULL
#define IXGBE_ETS_DATA_HTHRESH_MASK
#define IXGBE_PXONRXC(_i)
#define IXGBE_MDIO_AUTO_NEG_LP
#define FW_CEM_CMD_RESERVED
#define IXGBE_PBANUM0_PTR
#define IXGBE_LINKS_SPEED_100_82599
#define IXGBE_PXOFFRXCNT(_i)
#define IXGBE_PCI_LINK_WIDTH_2
#define IXGBE_ANLP1_SYM_PAUSE
#define IXGBE_ERR_INVALID_ARGUMENT
#define IXGBE_ESDP_SDP7_DIR
#define IXGBE_MDIO_AUTO_NEG_DEV_TYPE
#define IXGBE_DCA_TXCTRL_82599(_i)
#define IXGBE_PFVFSPOOF(_i)
#define IXGBE_LINK_SPEED_1GB_FULL
#define IXGBE_PCI_LINK_SPEED
#define IXGBE_ERR_PBA_SECTION
#define IXGBE_EEC_BY_MAC(_hw)
#define IXGBE_LINKS2_AN_SUPPORTED
#define IXGBE_EEPROM_RW_REG_START
#define IXGBE_MCSTCTRL_MFE
#define IXGBE_DCA_TXCTRL_DESC_WRO_EN
#define IXGBE_EEPROM_WREN_OPCODE_SPI
#define IXGBE_PCIDEVCTRL2_50_100us
#define IXGBE_PCI_LINK_SPEED_5000
#define IXGBE_PCI_DEVICE_CONTROL2
#define IXGBE_EEPROM_CHECKSUM
#define IXGBE_ERR_NO_SPACE
#define IXGBE_LINK_SPEED_2_5GB_FULL
#define IXGBE_PCI_LINK_WIDTH_8
#define IXGBE_PCIDEVCTRL2_16_32ms_def
#define IXGBE_HLREG0_LPBK
#define IXGBE_FCCFG_TFCE_802_3X
#define IXGBE_LINK_SPEED_10GB_FULL
#define IXGBE_ERR_DEVICE_NOT_SUPPORTED
#define IXGBE_PCS1GLSTA_AN_TIMED_OUT
#define FW_CEM_CMD_DRIVER_INFO
#define IXGBE_SWSM_SWESMBI
#define IXGBE_FWSM_FW_MODE_PT
#define IXGBE_PCI_LINK_WIDTH_1
#define IXGBE_DCA_RXCTRL_DATA_WRO_EN
#define IXGBE_FWSM_BY_MAC(_hw)
#define IXGBE_PCIE_MSIX_82599_CAPS
#define IXGBE_PFDTXGSWC_VT_LBEN
#define FW_CEM_CMD_DRIVER_INFO_LEN
#define IXGBE_DEV_ID_X550EM_A_10G_T
#define IXGBE_PCIDEVCTRL2_TIMEO_MASK
#define IXGBE_ETS_LTHRES_DELTA_SHIFT
#define IXGBE_EEPROM_RD_BUFFER_MAX_COUNT
#define IXGBE_EEPROM_PAGE_SIZE_MAX
#define BYPASS_CTL1_VALID_M
#define IXGBE_IRQ_CLEAR_MASK
#define IXGBE_ERR_MASTER_REQUESTS_PENDING
#define IXGBE_MAX_MSIX_VECTORS_82598
#define IXGBE_DEVICE_CAPS_NO_CROSSTALK_WR
#define IXGBE_NVM_POLL_WRITE
#define IXGBE_DEV_ID_X550EM_A_QSFP_N
#define IXGBE_ETS_TYPE_SHIFT
#define IXGBE_EEPROM_RW_REG_DONE
#define IXGBE_TXPKT_SIZE_MAX
#define NVM_OEM_PROD_VER_CAP_OFF
#define IXGBE_FCCFG_TFCE_PRIORITY
#define BYPASS_CTL2_DATA_M
#define IXGBE_SECRXCTRL_RX_DIS
#define IXGBE_MDIO_PCS_DEV_TYPE
@ ixgbe_bus_width_unknown
@ ixgbe_bus_width_pcie_x1
@ ixgbe_bus_width_pcie_x8
@ ixgbe_bus_width_pcie_x2
@ ixgbe_bus_width_pcie_x4
#define IXGBE_FCOE_IBA_CAPS_BLK_PTR
#define IXGBE_SAN_MAC_ADDR_PORT1_OFFSET
#define IXGBE_DEVICE_CAPS
#define IXGBE_EEPROM_RDSR_OPCODE_SPI
#define IXGBE_FCRTL_82599(_i)
#define IXGBE_ERR_SFP_NOT_PRESENT
#define IXGBE_EEC_SIZE_SHIFT
#define IXGBE_HI_MAX_BLOCK_BYTE_LENGTH
#define IXGBE_PCI_DEVICE_STATUS
#define IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD
#define IXGBE_DEV_ID_X550EM_X_XFI
#define BYPASS_WDT_VALUE_M
#define IXGBE_CLEAR_VMDQ_ALL
@ ixgbe_fcoe_bootstatus_disabled
@ ixgbe_fcoe_bootstatus_unavailable
@ ixgbe_fcoe_bootstatus_enabled
#define IXGBE_CTRL_EXT_NS_DIS
#define IXGBE_ALT_SAN_MAC_ADDR_BLK_PTR
#define IXGBE_ALT_SAN_MAC_ADDR_CAPS_OFFSET
#define IXGBE_ERR_EEPROM_CHECKSUM
enum ixgbe_bus_width width
enum ixgbe_bus_speed speed
enum ixgbe_eeprom_type type
struct ixgbe_eeprom_operations ops
s32(* read_buffer)(struct ixgbe_hw *, u16, u16, u16 *)
s32(* write_buffer)(struct ixgbe_hw *, u16, u16, u16 *)
s32(* update_checksum)(struct ixgbe_hw *)
s32(* init_params)(struct ixgbe_hw *)
s32(* write)(struct ixgbe_hw *, u16, u16)
s32(* read)(struct ixgbe_hw *, u16, u16 *)
s32(* calc_checksum)(struct ixgbe_hw *)
s32(* validate_checksum)(struct ixgbe_hw *, u16 *)
enum ixgbe_fc_mode current_mode
u32 low_water[IXGBE_DCB_MAX_TRAFFIC_CLASS]
u32 high_water[IXGBE_DCB_MAX_TRAFFIC_CLASS]
enum ixgbe_fc_mode requested_mode
union ixgbe_hic_hdr::@3 cmd_or_resp
struct ixgbe_mac_info mac
struct ixgbe_addr_filter_info addr_ctrl
struct ixgbe_bus_info bus
struct ixgbe_eeprom_info eeprom
struct ixgbe_phy_info phy
u32 mta_shadow[IXGBE_MAX_MTA]
struct ixgbe_thermal_sensor_data thermal_sensor_data
u8 addr[IXGBE_ETH_LENGTH_OF_ADDRESS]
struct ixgbe_mac_operations ops
s32(* set_vlvf)(struct ixgbe_hw *, u32, u32, bool, u32 *, u32, bool)
s32(* reset_hw)(struct ixgbe_hw *)
s32(* init_hw)(struct ixgbe_hw *)
s32(* prot_autoc_read)(struct ixgbe_hw *, bool *, u32 *)
s32(* dmac_config_tcs)(struct ixgbe_hw *hw)
s32(* acquire_swfw_sync)(struct ixgbe_hw *, u32)
s32(* fc_enable)(struct ixgbe_hw *)
s32(* led_off)(struct ixgbe_hw *, u32)
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)
s32(* disable_mc)(struct ixgbe_hw *)
void(* release_swfw_sync)(struct ixgbe_hw *, u32)
s32(* clear_vmdq)(struct ixgbe_hw *, u32, u32)
s32(* enable_mc)(struct ixgbe_hw *)
s32(* clear_vfta)(struct ixgbe_hw *)
void(* enable_rx)(struct ixgbe_hw *hw)
s32(* set_vmdq)(struct ixgbe_hw *, u32, u32)
s32(* check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool)
s32(* prot_autoc_write)(struct ixgbe_hw *, u32, bool)
s32(* set_vfta)(struct ixgbe_hw *, u32, u32, bool, bool)
s32(* update_uc_addr_list)(struct ixgbe_hw *, u8 *, u32, ixgbe_mc_addr_itr)
s32(* update_mc_addr_list)(struct ixgbe_hw *, u8 *, u32, ixgbe_mc_addr_itr, bool clear)
s32(* init_led_link_act)(struct ixgbe_hw *)
void(* disable_rx)(struct ixgbe_hw *hw)
s32(* init_uta_tables)(struct ixgbe_hw *)
s32(* get_device_caps)(struct ixgbe_hw *, u16 *)
void(* fc_autoneg)(struct ixgbe_hw *)
s32(* led_on)(struct ixgbe_hw *, u32)
s32(* setup_fc)(struct ixgbe_hw *)
s32(* dmac_config)(struct ixgbe_hw *hw)
s32(* get_link_capabilities)(struct ixgbe_hw *, ixgbe_link_speed *, bool *)
void(* set_lan_id)(struct ixgbe_hw *)
s32(* clear_rar)(struct ixgbe_hw *, u32)
s32(* insert_mac_addr)(struct ixgbe_hw *, u8 *, u32)
s32(* blink_led_stop)(struct ixgbe_hw *, u32)
s32(* clear_hw_cntrs)(struct ixgbe_hw *)
enum ixgbe_media_type(* get_media_type)(struct ixgbe_hw *)
s32(* get_bus_info)(struct ixgbe_hw *)
s32(* blink_led_start)(struct ixgbe_hw *, u32)
s32(* start_hw)(struct ixgbe_hw *)
s32(* stop_adapter)(struct ixgbe_hw *)
u64(* get_supported_physical_layer)(struct ixgbe_hw *)
s32(* dmac_update_tcs)(struct ixgbe_hw *hw)
enum ixgbe_media_type media_type
ixgbe_autoneg_advertised autoneg_advertised
struct ixgbe_phy_operations ops
s32(* write_i2c_byte)(struct ixgbe_hw *, u8, u8, u8)
s32(* read_i2c_byte)(struct ixgbe_hw *, u8, u8, u8 *)
s32(* read_reg)(struct ixgbe_hw *, u32, u32, u16 *)
s32(* write_reg)(struct ixgbe_hw *, u32, u32, u16)
struct ixgbe_thermal_diode_data sensor[IXGBE_MAX_SENSORS]