FreeBSD kernel IXGBE device code
ixgbe_api.c
Go to the documentation of this file.
1/******************************************************************************
2 SPDX-License-Identifier: BSD-3-Clause
3
4 Copyright (c) 2001-2020, Intel Corporation
5 All rights reserved.
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are met:
9
10 1. Redistributions of source code must retain the above copyright notice,
11 this list of conditions and the following disclaimer.
12
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
16
17 3. Neither the name of the Intel Corporation nor the names of its
18 contributors may be used to endorse or promote products derived from
19 this software without specific prior written permission.
20
21 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 POSSIBILITY OF SUCH DAMAGE.
32
33******************************************************************************/
34/*$FreeBSD$*/
35
36#include "ixgbe_api.h"
37#include "ixgbe_common.h"
38
39#define IXGBE_EMPTY_PARAM
40
43};
44
46 IXGBE_MVALS_INIT(_X540)
47};
48
50 IXGBE_MVALS_INIT(_X550)
51};
52
54 IXGBE_MVALS_INIT(_X550EM_x)
55};
56
58 IXGBE_MVALS_INIT(_X550EM_a)
59};
60
68void ixgbe_dcb_get_rtrup2tc(struct ixgbe_hw *hw, u8 *map)
69{
70 if (hw->mac.ops.get_rtrup2tc)
71 hw->mac.ops.get_rtrup2tc(hw, map);
72}
73
87{
88 s32 status;
89
90 DEBUGFUNC("ixgbe_init_shared_code");
91
92 /*
93 * Set the mac type
94 */
96
97 switch (hw->mac.type) {
99 status = ixgbe_init_ops_82598(hw);
100 break;
102 status = ixgbe_init_ops_82599(hw);
103 break;
104 case ixgbe_mac_X540:
105 status = ixgbe_init_ops_X540(hw);
106 break;
107 case ixgbe_mac_X550:
108 status = ixgbe_init_ops_X550(hw);
109 break;
111 status = ixgbe_init_ops_X550EM_x(hw);
112 break;
114 status = ixgbe_init_ops_X550EM_a(hw);
115 break;
121 status = ixgbe_init_ops_vf(hw);
122 break;
123 default:
125 break;
126 }
128
129 return status;
130}
131
140{
141 s32 ret_val = IXGBE_SUCCESS;
142
143 DEBUGFUNC("ixgbe_set_mac_type\n");
144
145 if (hw->vendor_id != IXGBE_INTEL_VENDOR_ID) {
147 "Unsupported vendor id: %x", hw->vendor_id);
149 }
150
152
153 switch (hw->device_id) {
167 break;
185 break;
189 break;
194 break;
198 hw->mac.type = ixgbe_mac_X540;
200 break;
203 hw->mac.type = ixgbe_mac_X550;
205 break;
214 break;
228 break;
233 break;
238 break;
243 break;
244 default:
247 "Unsupported device id: %x",
248 hw->device_id);
249 break;
250 }
251
252 DEBUGOUT2("ixgbe_set_mac_type found mac: %d, returns: %d\n",
253 hw->mac.type, ret_val);
254 return ret_val;
255}
256
264{
265 return ixgbe_call_func(hw, hw->mac.ops.init_hw, (hw),
267}
268
277{
278 return ixgbe_call_func(hw, hw->mac.ops.reset_hw, (hw),
280}
281
293{
294 return ixgbe_call_func(hw, hw->mac.ops.start_hw, (hw),
296}
297
307{
310}
311
320{
321 return ixgbe_call_func(hw, hw->mac.ops.clear_hw_cntrs, (hw),
323}
324
332{
333 return ixgbe_call_func(hw, hw->mac.ops.get_media_type, (hw),
335}
336
347s32 ixgbe_get_mac_addr(struct ixgbe_hw *hw, u8 *mac_addr)
348{
349 return ixgbe_call_func(hw, hw->mac.ops.get_mac_addr,
350 (hw, mac_addr), IXGBE_NOT_IMPLEMENTED);
351}
352
361s32 ixgbe_get_san_mac_addr(struct ixgbe_hw *hw, u8 *san_mac_addr)
362{
364 (hw, san_mac_addr), IXGBE_NOT_IMPLEMENTED);
365}
366
374s32 ixgbe_set_san_mac_addr(struct ixgbe_hw *hw, u8 *san_mac_addr)
375{
377 (hw, san_mac_addr), IXGBE_NOT_IMPLEMENTED);
378}
379
387s32 ixgbe_get_device_caps(struct ixgbe_hw *hw, u16 *device_caps)
388{
389 return ixgbe_call_func(hw, hw->mac.ops.get_device_caps,
390 (hw, device_caps), IXGBE_NOT_IMPLEMENTED);
391}
392
402s32 ixgbe_get_wwn_prefix(struct ixgbe_hw *hw, u16 *wwnn_prefix,
403 u16 *wwpn_prefix)
404{
405 return ixgbe_call_func(hw, hw->mac.ops.get_wwn_prefix,
406 (hw, wwnn_prefix, wwpn_prefix),
408}
409
418{
420 (hw, bs),
422}
423
431{
432 return ixgbe_call_func(hw, hw->mac.ops.get_bus_info, (hw),
434}
435
443{
444 return hw->mac.max_tx_queues;
445}
446
454{
455 return hw->mac.max_rx_queues;
456}
457
468{
469 return ixgbe_call_func(hw, hw->mac.ops.stop_adapter, (hw),
471}
472
481s32 ixgbe_read_pba_string(struct ixgbe_hw *hw, u8 *pba_num, u32 pba_num_size)
482{
483 return ixgbe_read_pba_string_generic(hw, pba_num, pba_num_size);
484}
485
493s32 ixgbe_read_pba_num(struct ixgbe_hw *hw, u32 *pba_num)
494{
495 return ixgbe_read_pba_num_generic(hw, pba_num);
496}
497
505{
506 s32 status = IXGBE_SUCCESS;
507
508 if (hw->phy.type == ixgbe_phy_unknown) {
509 status = ixgbe_call_func(hw, hw->phy.ops.identify, (hw),
511 }
512
513 return status;
514}
515
521{
522 s32 status = IXGBE_SUCCESS;
523
524 if (hw->phy.type == ixgbe_phy_unknown) {
526 status = IXGBE_ERR_PHY;
527 }
528
529 if (status == IXGBE_SUCCESS) {
530 status = ixgbe_call_func(hw, hw->phy.ops.reset, (hw),
532 }
533 return status;
534}
535
541s32 ixgbe_get_phy_firmware_version(struct ixgbe_hw *hw, u16 *firmware_version)
542{
543 s32 status = IXGBE_SUCCESS;
544
546 (hw, firmware_version),
548 return status;
549}
550
560s32 ixgbe_read_phy_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type,
561 u16 *phy_data)
562{
563 if (hw->phy.id == 0)
565
566 return ixgbe_call_func(hw, hw->phy.ops.read_reg, (hw, reg_addr,
567 device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
568}
569
579s32 ixgbe_write_phy_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type,
580 u16 phy_data)
581{
582 if (hw->phy.id == 0)
584
585 return ixgbe_call_func(hw, hw->phy.ops.write_reg, (hw, reg_addr,
586 device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
587}
588
596{
597 return ixgbe_call_func(hw, hw->phy.ops.setup_link, (hw),
599}
600
610{
611 return ixgbe_call_func(hw, hw->phy.ops.setup_internal_link, (hw),
613}
614
625 bool *link_up)
626{
627 return ixgbe_call_func(hw, hw->phy.ops.check_link, (hw, speed,
628 link_up), IXGBE_NOT_IMPLEMENTED);
629}
630
640 bool autoneg_wait_to_complete)
641{
642 return ixgbe_call_func(hw, hw->phy.ops.setup_link_speed, (hw, speed,
643 autoneg_wait_to_complete),
645}
646
652s32 ixgbe_set_phy_power(struct ixgbe_hw *hw, bool on)
653{
654 return ixgbe_call_func(hw, hw->phy.ops.set_phy_power, (hw, on),
656}
657
668 bool *link_up, bool link_up_wait_to_complete)
669{
670 return ixgbe_call_func(hw, hw->mac.ops.check_link, (hw, speed,
671 link_up, link_up_wait_to_complete),
673}
674
682{
683 if (hw->mac.ops.disable_tx_laser)
684 hw->mac.ops.disable_tx_laser(hw);
685}
686
694{
695 if (hw->mac.ops.enable_tx_laser)
696 hw->mac.ops.enable_tx_laser(hw);
697}
698
708{
709 if (hw->mac.ops.flap_tx_laser)
710 hw->mac.ops.flap_tx_laser(hw);
711}
712
723 bool autoneg_wait_to_complete)
724{
725 return ixgbe_call_func(hw, hw->mac.ops.setup_link, (hw, speed,
726 autoneg_wait_to_complete),
728}
729
740 bool autoneg_wait_to_complete)
741{
742 return ixgbe_call_func(hw, hw->mac.ops.setup_mac_link, (hw, speed,
743 autoneg_wait_to_complete),
745}
746
756 bool *autoneg)
757{
758 return ixgbe_call_func(hw, hw->mac.ops.get_link_capabilities, (hw,
759 speed, autoneg), IXGBE_NOT_IMPLEMENTED);
760}
761
769s32 ixgbe_led_on(struct ixgbe_hw *hw, u32 index)
770{
771 return ixgbe_call_func(hw, hw->mac.ops.led_on, (hw, index),
773}
774
782s32 ixgbe_led_off(struct ixgbe_hw *hw, u32 index)
783{
784 return ixgbe_call_func(hw, hw->mac.ops.led_off, (hw, index),
786}
787
796{
797 return ixgbe_call_func(hw, hw->mac.ops.blink_led_start, (hw, index),
799}
800
809{
810 return ixgbe_call_func(hw, hw->mac.ops.blink_led_stop, (hw, index),
812}
813
822{
823 return ixgbe_call_func(hw, hw->eeprom.ops.init_params, (hw),
825}
826
827
838s32 ixgbe_write_eeprom(struct ixgbe_hw *hw, u16 offset, u16 data)
839{
840 return ixgbe_call_func(hw, hw->eeprom.ops.write, (hw, offset, data),
842}
843
855s32 ixgbe_write_eeprom_buffer(struct ixgbe_hw *hw, u16 offset, u16 words,
856 u16 *data)
857{
858 return ixgbe_call_func(hw, hw->eeprom.ops.write_buffer,
859 (hw, offset, words, data),
861}
862
871s32 ixgbe_read_eeprom(struct ixgbe_hw *hw, u16 offset, u16 *data)
872{
873 return ixgbe_call_func(hw, hw->eeprom.ops.read, (hw, offset, data),
875}
876
887 u16 words, u16 *data)
888{
889 return ixgbe_call_func(hw, hw->eeprom.ops.read_buffer,
890 (hw, offset, words, data),
892}
893
902{
904 (hw, checksum_val), IXGBE_NOT_IMPLEMENTED);
905}
906
912{
913 return ixgbe_call_func(hw, hw->eeprom.ops.update_checksum, (hw),
915}
916
926s32 ixgbe_insert_mac_addr(struct ixgbe_hw *hw, u8 *addr, u32 vmdq)
927{
928 return ixgbe_call_func(hw, hw->mac.ops.insert_mac_addr,
929 (hw, addr, vmdq),
931}
932
943s32 ixgbe_set_rar(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq,
944 u32 enable_addr)
945{
946 return ixgbe_call_func(hw, hw->mac.ops.set_rar, (hw, index, addr, vmdq,
947 enable_addr), IXGBE_NOT_IMPLEMENTED);
948}
949
957s32 ixgbe_clear_rar(struct ixgbe_hw *hw, u32 index)
958{
959 return ixgbe_call_func(hw, hw->mac.ops.clear_rar, (hw, index),
961}
962
969s32 ixgbe_set_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
970{
971 return ixgbe_call_func(hw, hw->mac.ops.set_vmdq, (hw, rar, vmdq),
973
974}
975
982{
984 (hw, vmdq), IXGBE_NOT_IMPLEMENTED);
985}
986
993s32 ixgbe_clear_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
994{
995 return ixgbe_call_func(hw, hw->mac.ops.clear_vmdq, (hw, rar, vmdq),
997}
998
1008{
1009 return ixgbe_call_func(hw, hw->mac.ops.init_rx_addrs, (hw),
1011}
1012
1018{
1019 return hw->mac.num_rar_entries;
1020}
1021
1034 u32 addr_count, ixgbe_mc_addr_itr func)
1035{
1036 return ixgbe_call_func(hw, hw->mac.ops.update_uc_addr_list, (hw,
1037 addr_list, addr_count, func),
1039}
1040
1054s32 ixgbe_update_mc_addr_list(struct ixgbe_hw *hw, u8 *mc_addr_list,
1055 u32 mc_addr_count, ixgbe_mc_addr_itr func,
1056 bool clear)
1057{
1058 return ixgbe_call_func(hw, hw->mac.ops.update_mc_addr_list, (hw,
1059 mc_addr_list, mc_addr_count, func, clear),
1061}
1062
1070{
1071 return ixgbe_call_func(hw, hw->mac.ops.enable_mc, (hw),
1073}
1074
1082{
1083 return ixgbe_call_func(hw, hw->mac.ops.disable_mc, (hw),
1085}
1086
1094{
1095 return ixgbe_call_func(hw, hw->mac.ops.clear_vfta, (hw),
1097}
1098
1109s32 ixgbe_set_vfta(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on,
1110 bool vlvf_bypass)
1111{
1112 return ixgbe_call_func(hw, hw->mac.ops.set_vfta, (hw, vlan, vind,
1113 vlan_on, vlvf_bypass), IXGBE_NOT_IMPLEMENTED);
1114}
1115
1129s32 ixgbe_set_vlvf(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on,
1130 u32 *vfta_delta, u32 vfta, bool vlvf_bypass)
1131{
1132 return ixgbe_call_func(hw, hw->mac.ops.set_vlvf, (hw, vlan, vind,
1133 vlan_on, vfta_delta, vfta, vlvf_bypass),
1135}
1136
1144{
1145 return ixgbe_call_func(hw, hw->mac.ops.fc_enable, (hw),
1147}
1148
1156{
1157 return ixgbe_call_func(hw, hw->mac.ops.setup_fc, (hw),
1159}
1160
1171s32 ixgbe_set_fw_drv_ver(struct ixgbe_hw *hw, u8 maj, u8 min, u8 build,
1172 u8 ver, u16 len, char *driver_ver)
1173{
1174 return ixgbe_call_func(hw, hw->mac.ops.set_fw_drv_ver, (hw, maj, min,
1175 build, ver, len, driver_ver),
1177}
1178
1179
1187{
1188 return ixgbe_call_func(hw, hw->mac.ops.get_thermal_sensor_data, (hw),
1190}
1191
1199{
1202}
1203
1212{
1213 return ixgbe_call_func(hw, hw->mac.ops.dmac_config, (hw),
1215}
1216
1224{
1225 return ixgbe_call_func(hw, hw->mac.ops.dmac_update_tcs, (hw),
1227}
1228
1237{
1238 return ixgbe_call_func(hw, hw->mac.ops.dmac_config_tcs, (hw),
1240}
1241
1252s32 ixgbe_setup_eee(struct ixgbe_hw *hw, bool enable_eee)
1253{
1254 return ixgbe_call_func(hw, hw->mac.ops.setup_eee, (hw, enable_eee),
1256}
1257
1264void ixgbe_set_source_address_pruning(struct ixgbe_hw *hw, bool enable,
1265 unsigned int pool)
1266{
1268 hw->mac.ops.set_source_address_pruning(hw, enable, pool);
1269}
1270
1278void ixgbe_set_ethertype_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf)
1279{
1281 hw->mac.ops.set_ethertype_anti_spoofing(hw, enable, vf);
1282}
1283
1294 u32 device_type, u32 *phy_data)
1295{
1296 return ixgbe_call_func(hw, hw->mac.ops.read_iosf_sb_reg, (hw, reg_addr,
1297 device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
1298}
1299
1310 u32 device_type, u32 phy_data)
1311{
1312 return ixgbe_call_func(hw, hw->mac.ops.write_iosf_sb_reg, (hw, reg_addr,
1313 device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
1314}
1315
1322{
1323 if (hw->mac.ops.disable_mdd)
1324 hw->mac.ops.disable_mdd(hw);
1325}
1326
1333{
1334 if (hw->mac.ops.enable_mdd)
1335 hw->mac.ops.enable_mdd(hw);
1336}
1337
1344void ixgbe_mdd_event(struct ixgbe_hw *hw, u32 *vf_bitmap)
1345{
1346 if (hw->mac.ops.mdd_event)
1347 hw->mac.ops.mdd_event(hw, vf_bitmap);
1348}
1349
1358{
1359 if (hw->mac.ops.restore_mdd_vf)
1360 hw->mac.ops.restore_mdd_vf(hw, vf);
1361}
1362
1369{
1370 if (hw->mac.ops.fw_recovery_mode)
1371 return hw->mac.ops.fw_recovery_mode(hw);
1372 return false;
1373}
1374
1383{
1384 return ixgbe_call_func(hw, hw->phy.ops.enter_lplu, (hw),
1386}
1387
1400{
1401 return ixgbe_call_func(hw, hw->phy.ops.handle_lasi, (hw),
1403}
1404
1413s32 ixgbe_bypass_rw(struct ixgbe_hw *hw, u32 cmd, u32 *status)
1414{
1415 return ixgbe_call_func(hw, hw->mac.ops.bypass_rw, (hw, cmd, status),
1417}
1418
1431bool ixgbe_bypass_valid_rd(struct ixgbe_hw *hw, u32 in_reg, u32 out_reg)
1432{
1433 return ixgbe_call_func(hw, hw->mac.ops.bypass_valid_rd,
1434 (in_reg, out_reg), IXGBE_NOT_IMPLEMENTED);
1435}
1436
1449s32 ixgbe_bypass_set(struct ixgbe_hw *hw, u32 cmd, u32 event, u32 action)
1450{
1451 return ixgbe_call_func(hw, hw->mac.ops.bypass_set,
1452 (hw, cmd, event, action),
1454}
1455
1462s32 ixgbe_bypass_rd_eep(struct ixgbe_hw *hw, u32 addr, u8 *value)
1463{
1464 return ixgbe_call_func(hw, hw->mac.ops.bypass_rd_eep,
1465 (hw, addr, value), IXGBE_NOT_IMPLEMENTED);
1466}
1467
1477{
1478 return ixgbe_call_func(hw, hw->mac.ops.read_analog_reg8, (hw, reg,
1479 val), IXGBE_NOT_IMPLEMENTED);
1480}
1481
1491{
1492 return ixgbe_call_func(hw, hw->mac.ops.write_analog_reg8, (hw, reg,
1493 val), IXGBE_NOT_IMPLEMENTED);
1494}
1495
1504{
1505 return ixgbe_call_func(hw, hw->mac.ops.init_uta_tables, (hw),
1507}
1508
1518s32 ixgbe_read_i2c_byte(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr,
1519 u8 *data)
1520{
1521 return ixgbe_call_func(hw, hw->phy.ops.read_i2c_byte, (hw, byte_offset,
1522 dev_addr, data), IXGBE_NOT_IMPLEMENTED);
1523}
1524
1535 u8 dev_addr, u8 *data)
1536{
1538 (hw, byte_offset, dev_addr, data),
1540}
1541
1551s32 ixgbe_read_link(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 *val)
1552{
1553 return ixgbe_call_func(hw, hw->link.ops.read_link, (hw, addr,
1554 reg, val), IXGBE_NOT_IMPLEMENTED);
1555}
1556
1566s32 ixgbe_read_link_unlocked(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 *val)
1567{
1569 (hw, addr, reg, val), IXGBE_NOT_IMPLEMENTED);
1570}
1571
1582s32 ixgbe_write_i2c_byte(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr,
1583 u8 data)
1584{
1585 return ixgbe_call_func(hw, hw->phy.ops.write_i2c_byte, (hw, byte_offset,
1586 dev_addr, data), IXGBE_NOT_IMPLEMENTED);
1587}
1588
1600 u8 dev_addr, u8 data)
1601{
1603 (hw, byte_offset, dev_addr, data),
1605}
1606
1616s32 ixgbe_write_link(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 val)
1617{
1618 return ixgbe_call_func(hw, hw->link.ops.write_link,
1619 (hw, addr, reg, val), IXGBE_NOT_IMPLEMENTED);
1620}
1621
1631s32 ixgbe_write_link_unlocked(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 val)
1632{
1634 (hw, addr, reg, val), IXGBE_NOT_IMPLEMENTED);
1635}
1636
1646 u8 byte_offset, u8 eeprom_data)
1647{
1648 return ixgbe_call_func(hw, hw->phy.ops.write_i2c_eeprom,
1649 (hw, byte_offset, eeprom_data),
1651}
1652
1661s32 ixgbe_read_i2c_eeprom(struct ixgbe_hw *hw, u8 byte_offset, u8 *eeprom_data)
1662{
1663 return ixgbe_call_func(hw, hw->phy.ops.read_i2c_eeprom,
1664 (hw, byte_offset, eeprom_data),
1666}
1667
1675{
1678}
1679
1688{
1689 return ixgbe_call_func(hw, hw->mac.ops.enable_rx_dma,
1690 (hw, regval), IXGBE_NOT_IMPLEMENTED);
1691}
1692
1700{
1702 (hw), IXGBE_NOT_IMPLEMENTED);
1703}
1704
1712{
1714 (hw), IXGBE_NOT_IMPLEMENTED);
1715}
1716
1726{
1728 (hw, mask), IXGBE_NOT_IMPLEMENTED);
1729}
1730
1740{
1741 if (hw->mac.ops.release_swfw_sync)
1742 hw->mac.ops.release_swfw_sync(hw, mask);
1743}
1744
1755{
1756 if (hw->mac.ops.init_swfw_sync)
1757 hw->mac.ops.init_swfw_sync(hw);
1758}
1759
1760
1762{
1763 if (hw->mac.ops.disable_rx)
1764 hw->mac.ops.disable_rx(hw);
1765}
1766
1768{
1769 if (hw->mac.ops.enable_rx)
1770 hw->mac.ops.enable_rx(hw);
1771}
1772
1781{
1783 hw->mac.ops.set_rate_select_speed(hw, speed);
1784}
s32 ixgbe_init_ops_82598(struct ixgbe_hw *hw)
Definition: ixgbe_82598.c:120
s32 ixgbe_init_ops_82599(struct ixgbe_hw *hw)
Definition: ixgbe_82599.c:322
s32 ixgbe_check_phy_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up)
Definition: ixgbe_api.c:624
#define IXGBE_EMPTY_PARAM
Definition: ixgbe_api.c:39
s32 ixgbe_get_wwn_prefix(struct ixgbe_hw *hw, u16 *wwnn_prefix, u16 *wwpn_prefix)
Definition: ixgbe_api.c:402
s32 ixgbe_read_i2c_byte(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data)
Definition: ixgbe_api.c:1518
s32 ixgbe_setup_eee(struct ixgbe_hw *hw, bool enable_eee)
Definition: ixgbe_api.c:1252
void ixgbe_mdd_event(struct ixgbe_hw *hw, u32 *vf_bitmap)
Definition: ixgbe_api.c:1344
s32 ixgbe_write_i2c_byte(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 data)
Definition: ixgbe_api.c:1582
s32 ixgbe_write_i2c_byte_unlocked(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 data)
Definition: ixgbe_api.c:1599
static const u32 ixgbe_mvals_X540[IXGBE_MVALS_IDX_LIMIT]
Definition: ixgbe_api.c:45
s32 ixgbe_fc_enable(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1143
s32 ixgbe_write_iosf_sb_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type, u32 phy_data)
Definition: ixgbe_api.c:1309
u32 ixgbe_get_num_rx_addrs(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1017
s32 ixgbe_get_thermal_sensor_data(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1186
s32 ixgbe_set_mac_type(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:139
s32 ixgbe_init_rx_addrs(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1007
s32 ixgbe_write_phy_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type, u16 phy_data)
Definition: ixgbe_api.c:579
s32 ixgbe_bypass_set(struct ixgbe_hw *hw, u32 cmd, u32 event, u32 action)
Definition: ixgbe_api.c:1449
s32 ixgbe_write_i2c_eeprom(struct ixgbe_hw *hw, u8 byte_offset, u8 eeprom_data)
Definition: ixgbe_api.c:1645
bool ixgbe_bypass_valid_rd(struct ixgbe_hw *hw, u32 in_reg, u32 out_reg)
Definition: ixgbe_api.c:1431
s32 ixgbe_disable_mc(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1081
void ixgbe_set_rate_select_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed)
Definition: ixgbe_api.c:1780
s32 ixgbe_setup_link(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
Definition: ixgbe_api.c:722
s32 ixgbe_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *link_up, bool link_up_wait_to_complete)
Definition: ixgbe_api.c:667
static const u32 ixgbe_mvals_X550EM_a[IXGBE_MVALS_IDX_LIMIT]
Definition: ixgbe_api.c:57
s32 ixgbe_dmac_config(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1211
s32 ixgbe_acquire_swfw_semaphore(struct ixgbe_hw *hw, u32 mask)
Definition: ixgbe_api.c:1725
void ixgbe_dcb_get_rtrup2tc(struct ixgbe_hw *hw, u8 *map)
Definition: ixgbe_api.c:68
s32 ixgbe_init_eeprom_params(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:821
s32 ixgbe_set_vlvf(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on, u32 *vfta_delta, u32 vfta, bool vlvf_bypass)
Definition: ixgbe_api.c:1129
s32 ixgbe_read_link_unlocked(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 *val)
Definition: ixgbe_api.c:1566
s32 ixgbe_enable_sec_rx_path(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1711
s32 ixgbe_clear_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
Definition: ixgbe_api.c:993
s32 ixgbe_get_link_capabilities(struct ixgbe_hw *hw, ixgbe_link_speed *speed, bool *autoneg)
Definition: ixgbe_api.c:755
s32 ixgbe_reset_phy(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:520
s32 ixgbe_read_iosf_sb_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type, u32 *phy_data)
Definition: ixgbe_api.c:1293
s32 ixgbe_get_mac_addr(struct ixgbe_hw *hw, u8 *mac_addr)
Definition: ixgbe_api.c:347
s32 ixgbe_write_analog_reg8(struct ixgbe_hw *hw, u32 reg, u8 val)
Definition: ixgbe_api.c:1490
s32 ixgbe_write_eeprom_buffer(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
Definition: ixgbe_api.c:855
s32 ixgbe_get_san_mac_addr(struct ixgbe_hw *hw, u8 *san_mac_addr)
Definition: ixgbe_api.c:361
bool ixgbe_fw_recovery_mode(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1368
s32 ixgbe_dmac_config_tcs(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1236
s32 ixgbe_set_rar(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, u32 enable_addr)
Definition: ixgbe_api.c:943
s32 ixgbe_read_pba_num(struct ixgbe_hw *hw, u32 *pba_num)
Definition: ixgbe_api.c:493
s32 ixgbe_write_link_unlocked(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 val)
Definition: ixgbe_api.c:1631
s32 ixgbe_update_eeprom_checksum(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:911
s32 ixgbe_read_i2c_byte_unlocked(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data)
Definition: ixgbe_api.c:1534
void ixgbe_enable_mdd(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1332
s32 ixgbe_get_fcoe_boot_status(struct ixgbe_hw *hw, u16 *bs)
Definition: ixgbe_api.c:417
s32 ixgbe_read_i2c_eeprom(struct ixgbe_hw *hw, u8 byte_offset, u8 *eeprom_data)
Definition: ixgbe_api.c:1661
s32 ixgbe_blink_led_start(struct ixgbe_hw *hw, u32 index)
Definition: ixgbe_api.c:795
s32 ixgbe_update_uc_addr_list(struct ixgbe_hw *hw, u8 *addr_list, u32 addr_count, ixgbe_mc_addr_itr func)
Definition: ixgbe_api.c:1033
s32 ixgbe_read_eeprom_buffer(struct ixgbe_hw *hw, u16 offset, u16 words, u16 *data)
Definition: ixgbe_api.c:886
s32 ixgbe_read_eeprom(struct ixgbe_hw *hw, u16 offset, u16 *data)
Definition: ixgbe_api.c:871
s32 ixgbe_enable_rx_dma(struct ixgbe_hw *hw, u32 regval)
Definition: ixgbe_api.c:1687
s32 ixgbe_led_off(struct ixgbe_hw *hw, u32 index)
Definition: ixgbe_api.c:782
s32 ixgbe_validate_eeprom_checksum(struct ixgbe_hw *hw, u16 *checksum_val)
Definition: ixgbe_api.c:901
s32 ixgbe_clear_vfta(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1093
s32 ixgbe_get_phy_firmware_version(struct ixgbe_hw *hw, u16 *firmware_version)
Definition: ixgbe_api.c:541
s32 ixgbe_enable_mc(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1069
s32 ixgbe_led_on(struct ixgbe_hw *hw, u32 index)
Definition: ixgbe_api.c:769
s32 ixgbe_set_fw_drv_ver(struct ixgbe_hw *hw, u8 maj, u8 min, u8 build, u8 ver, u16 len, char *driver_ver)
Definition: ixgbe_api.c:1171
s32 ixgbe_disable_sec_rx_path(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1699
s32 ixgbe_bypass_rw(struct ixgbe_hw *hw, u32 cmd, u32 *status)
Definition: ixgbe_api.c:1413
s32 ixgbe_write_eeprom(struct ixgbe_hw *hw, u16 offset, u16 data)
Definition: ixgbe_api.c:838
void ixgbe_init_swfw_semaphore(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1754
void ixgbe_release_swfw_semaphore(struct ixgbe_hw *hw, u32 mask)
Definition: ixgbe_api.c:1739
s32 ixgbe_set_vfta(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on, bool vlvf_bypass)
Definition: ixgbe_api.c:1109
static const u32 ixgbe_mvals_base[IXGBE_MVALS_IDX_LIMIT]
Definition: ixgbe_api.c:41
void ixgbe_set_source_address_pruning(struct ixgbe_hw *hw, bool enable, unsigned int pool)
Definition: ixgbe_api.c:1264
u64 ixgbe_get_supported_physical_layer(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1674
s32 ixgbe_stop_adapter(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:467
s32 ixgbe_init_shared_code(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:86
u32 ixgbe_get_num_of_rx_queues(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:453
s32 ixgbe_setup_mac_link(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
Definition: ixgbe_api.c:739
void ixgbe_flap_tx_laser(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:707
s32 ixgbe_dmac_update_tcs(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1223
void ixgbe_enable_relaxed_ordering(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:306
s32 ixgbe_get_bus_info(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:430
s32 ixgbe_read_pba_string(struct ixgbe_hw *hw, u8 *pba_num, u32 pba_num_size)
Definition: ixgbe_api.c:481
void ixgbe_enable_rx(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1767
s32 ixgbe_set_vmdq_san_mac(struct ixgbe_hw *hw, u32 vmdq)
Definition: ixgbe_api.c:981
s32 ixgbe_start_hw(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:292
s32 ixgbe_setup_internal_phy(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:609
s32 ixgbe_handle_lasi(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1399
s32 ixgbe_clear_rar(struct ixgbe_hw *hw, u32 index)
Definition: ixgbe_api.c:957
s32 ixgbe_read_analog_reg8(struct ixgbe_hw *hw, u32 reg, u8 *val)
Definition: ixgbe_api.c:1476
void ixgbe_restore_mdd_vf(struct ixgbe_hw *hw, u32 vf)
Definition: ixgbe_api.c:1357
s32 ixgbe_get_device_caps(struct ixgbe_hw *hw, u16 *device_caps)
Definition: ixgbe_api.c:387
u32 ixgbe_get_num_of_tx_queues(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:442
static const u32 ixgbe_mvals_X550EM_x[IXGBE_MVALS_IDX_LIMIT]
Definition: ixgbe_api.c:53
s32 ixgbe_reset_hw(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:276
s32 ixgbe_identify_phy(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:504
s32 ixgbe_bypass_rd_eep(struct ixgbe_hw *hw, u32 addr, u8 *value)
Definition: ixgbe_api.c:1462
s32 ixgbe_setup_fc(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1155
s32 ixgbe_init_hw(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:263
s32 ixgbe_setup_phy_link(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:595
s32 ixgbe_blink_led_stop(struct ixgbe_hw *hw, u32 index)
Definition: ixgbe_api.c:808
s32 ixgbe_update_mc_addr_list(struct ixgbe_hw *hw, u8 *mc_addr_list, u32 mc_addr_count, ixgbe_mc_addr_itr func, bool clear)
Definition: ixgbe_api.c:1054
void ixgbe_disable_rx(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1761
s32 ixgbe_set_san_mac_addr(struct ixgbe_hw *hw, u8 *san_mac_addr)
Definition: ixgbe_api.c:374
s32 ixgbe_read_link(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 *val)
Definition: ixgbe_api.c:1551
void ixgbe_disable_mdd(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1321
s32 ixgbe_set_phy_power(struct ixgbe_hw *hw, bool on)
Definition: ixgbe_api.c:652
void ixgbe_set_ethertype_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf)
Definition: ixgbe_api.c:1278
s32 ixgbe_read_phy_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type, u16 *phy_data)
Definition: ixgbe_api.c:560
void ixgbe_disable_tx_laser(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:681
s32 ixgbe_setup_phy_link_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed, bool autoneg_wait_to_complete)
Definition: ixgbe_api.c:639
s32 ixgbe_write_link(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 val)
Definition: ixgbe_api.c:1616
s32 ixgbe_clear_hw_cntrs(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:319
static const u32 ixgbe_mvals_X550[IXGBE_MVALS_IDX_LIMIT]
Definition: ixgbe_api.c:49
s32 ixgbe_enter_lplu(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1382
s32 ixgbe_init_thermal_sensor_thresh(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1198
s32 ixgbe_set_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
Definition: ixgbe_api.c:969
s32 ixgbe_init_uta_tables(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:1503
enum ixgbe_media_type ixgbe_get_media_type(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:331
void ixgbe_enable_tx_laser(struct ixgbe_hw *hw)
Definition: ixgbe_api.c:693
s32 ixgbe_insert_mac_addr(struct ixgbe_hw *hw, u8 *addr, u32 vmdq)
Definition: ixgbe_api.c:926
s32 ixgbe_init_ops_X550(struct ixgbe_hw *hw)
Definition: ixgbe_x550.c:54
s32 ixgbe_init_ops_X550EM_x(struct ixgbe_hw *hw)
Definition: ixgbe_x550.c:851
s32 ixgbe_init_ops_X540(struct ixgbe_hw *hw)
Definition: ixgbe_x540.c:60
s32 ixgbe_init_ops_X550EM_a(struct ixgbe_hw *hw)
Definition: ixgbe_x550.c:793
s32 ixgbe_init_ops_vf(struct ixgbe_hw *hw)
Definition: ixgbe_vf.c:51
s32 ixgbe_read_pba_num_generic(struct ixgbe_hw *hw, u32 *pba_num)
Definition: ixgbe_common.c:753
s32 ixgbe_read_pba_string_generic(struct ixgbe_hw *hw, u8 *pba_num, u32 pba_num_size)
Definition: ixgbe_common.c:643
uint64_t u64
Definition: ixgbe_osdep.h:149
#define IXGBE_INTEL_VENDOR_ID
Definition: ixgbe_osdep.h:122
#define DEBUGOUT2(S, A, B)
Definition: ixgbe_osdep.h:106
uint8_t u8
Definition: ixgbe_osdep.h:143
#define DEBUGFUNC(F)
Definition: ixgbe_osdep.h:76
uint16_t u16
Definition: ixgbe_osdep.h:145
#define ERROR_REPORT2(S, A, B)
Definition: ixgbe_osdep.h:114
@ IXGBE_ERROR_UNSUPPORTED
Definition: ixgbe_osdep.h:65
int32_t s32
Definition: ixgbe_osdep.h:148
uint32_t u32
Definition: ixgbe_osdep.h:147
#define IXGBE_DEV_ID_X540T1
Definition: ixgbe_type.h:133
#define IXGBE_DEV_ID_X550EM_A_VF_HV
Definition: ixgbe_type.h:156
@ ixgbe_mac_X550_vf
Definition: ixgbe_type.h:3682
@ ixgbe_mac_X550
Definition: ixgbe_type.h:3679
@ ixgbe_mac_82599_vf
Definition: ixgbe_type.h:3676
@ ixgbe_mac_82598EB
Definition: ixgbe_type.h:3674
@ ixgbe_mac_X540
Definition: ixgbe_type.h:3677
@ ixgbe_mac_X550EM_a
Definition: ixgbe_type.h:3681
@ ixgbe_mac_X550EM_x_vf
Definition: ixgbe_type.h:3683
@ ixgbe_mac_X540_vf
Definition: ixgbe_type.h:3678
@ ixgbe_mac_X550EM_x
Definition: ixgbe_type.h:3680
@ ixgbe_mac_82599EB
Definition: ixgbe_type.h:3675
@ ixgbe_mac_X550EM_a_vf
Definition: ixgbe_type.h:3684
#define IXGBE_DEV_ID_X550EM_A_VF
Definition: ixgbe_type.h:155
#define IXGBE_DEV_ID_X540_VF
Definition: ixgbe_type.h:130
#define IXGBE_DEV_ID_X550EM_A_SFP
Definition: ixgbe_type.h:144
#define IXGBE_DEV_ID_82598EB_CX4
Definition: ixgbe_type.h:93
#define IXGBE_DEV_ID_82599_XAUI_LOM
Definition: ixgbe_type.h:124
@ IXGBE_MVALS_IDX_LIMIT
Definition: ixgbe_type.h:3651
@ IXGBE_MVALS_INIT
Definition: ixgbe_type.h:3650
#define IXGBE_DEV_ID_X550EM_A_QSFP
Definition: ixgbe_type.h:142
#define IXGBE_DEV_ID_X550EM_A_KR
Definition: ixgbe_type.h:136
#define IXGBE_DEV_ID_X550EM_A_SGMII
Definition: ixgbe_type.h:139
#define IXGBE_DEV_ID_82598_CX4_DUAL_PORT
Definition: ixgbe_type.h:94
#define IXGBE_DEV_ID_82599_BYPASS
Definition: ixgbe_type.h:128
#define IXGBE_DEV_ID_82598EB_SFP_LOM
Definition: ixgbe_type.h:92
#define IXGBE_DEV_ID_82599_T3_LOM
Definition: ixgbe_type.h:125
#define IXGBE_DEV_ID_X550EM_A_1G_T_L
Definition: ixgbe_type.h:146
#define IXGBE_DEV_ID_82599_VF_HV
Definition: ixgbe_type.h:127
#define IXGBE_DEV_ID_X550EM_X_10G_T
Definition: ixgbe_type.h:150
#define IXGBE_PHYSICAL_LAYER_UNKNOWN
Definition: ixgbe_type.h:3459
u32 ixgbe_link_speed
Definition: ixgbe_type.h:3443
#define IXGBE_DEV_ID_82598AF_DUAL_PORT
Definition: ixgbe_type.h:88
#define IXGBE_DEV_ID_X550EM_X_VF_HV
Definition: ixgbe_type.h:158
#define IXGBE_DEV_ID_X540T
Definition: ixgbe_type.h:129
#define IXGBE_DEV_ID_82599_VF
Definition: ixgbe_type.h:126
#define IXGBE_SUCCESS
Definition: ixgbe_type.h:4234
#define IXGBE_DEV_ID_82599_SFP_SF2
Definition: ixgbe_type.h:119
u8 *(* ixgbe_mc_addr_itr)(struct ixgbe_hw *hw, u8 **mc_addr_ptr, u32 *vmdq)
Definition: ixgbe_type.h:3933
#define IXGBE_DEV_ID_X540_BYPASS
Definition: ixgbe_type.h:132
#define IXGBE_DEV_ID_X550EM_A_1G_T
Definition: ixgbe_type.h:145
#define IXGBE_DEV_ID_82599_SFP_FCOE
Definition: ixgbe_type.h:117
@ ixgbe_phy_unknown
Definition: ixgbe_type.h:3689
#define IXGBE_DEV_ID_82598AT2
Definition: ixgbe_type.h:91
#define IXGBE_NOT_IMPLEMENTED
Definition: ixgbe_type.h:4275
#define IXGBE_DEV_ID_X550EM_A_SFP_N
Definition: ixgbe_type.h:138
#define IXGBE_DEV_ID_X550EM_X_SFP
Definition: ixgbe_type.h:149
#define IXGBE_DEV_ID_82599_KX4_MEZZ
Definition: ixgbe_type.h:99
ixgbe_media_type
Definition: ixgbe_type.h:3753
@ ixgbe_media_type_unknown
Definition: ixgbe_type.h:3754
#define IXGBE_DEV_ID_X540_VF_HV
Definition: ixgbe_type.h:131
#define IXGBE_LINK_UP_TIME
Definition: ixgbe_type.h:2265
#define IXGBE_DEV_ID_82598_DA_DUAL_PORT
Definition: ixgbe_type.h:95
#define IXGBE_DEV_ID_X550EM_A_SGMII_L
Definition: ixgbe_type.h:140
#define IXGBE_DEV_ID_X550T
Definition: ixgbe_type.h:134
#define IXGBE_DEV_ID_82598EB_XF_LR
Definition: ixgbe_type.h:97
#define IXGBE_DEV_ID_X550T1
Definition: ixgbe_type.h:135
#define IXGBE_DEV_ID_X550_VF_HV
Definition: ixgbe_type.h:153
#define IXGBE_DEV_ID_82599_BACKPLANE_FCOE
Definition: ixgbe_type.h:116
#define IXGBE_DEV_ID_X550EM_X_KR
Definition: ixgbe_type.h:148
#define IXGBE_DEV_ID_X550_VF
Definition: ixgbe_type.h:154
#define IXGBE_DEV_ID_X550EM_X_KX4
Definition: ixgbe_type.h:147
#define IXGBE_ERR_PHY
Definition: ixgbe_type.h:4237
#define IXGBE_DEV_ID_82599_SFP_EM
Definition: ixgbe_type.h:118
#define IXGBE_DEV_ID_82599_KR
Definition: ixgbe_type.h:100
#define IXGBE_DEV_ID_82598AF_SINGLE_PORT
Definition: ixgbe_type.h:89
#define IXGBE_DEV_ID_X550EM_X_VF
Definition: ixgbe_type.h:157
#define IXGBE_DEV_ID_X550EM_A_KR_L
Definition: ixgbe_type.h:137
#define IXGBE_ERR_DEVICE_NOT_SUPPORTED
Definition: ixgbe_type.h:4245
#define IXGBE_DEV_ID_82599_SFP_SF_QP
Definition: ixgbe_type.h:120
#define IXGBE_DEV_ID_82599EN_SFP
Definition: ixgbe_type.h:122
#define IXGBE_DEV_ID_82599_CX4
Definition: ixgbe_type.h:103
#define IXGBE_DEV_ID_82598AT
Definition: ixgbe_type.h:90
#define IXGBE_DEV_ID_82599_QSFP_SF_QP
Definition: ixgbe_type.h:121
#define IXGBE_DEV_ID_X550EM_A_10G_T
Definition: ixgbe_type.h:141
#define IXGBE_DEV_ID_82599_SFP
Definition: ixgbe_type.h:104
#define ixgbe_call_func(hw, func, params, error)
Definition: ixgbe_type.h:4229
#define IXGBE_DEV_ID_82599_KX4
Definition: ixgbe_type.h:98
#define IXGBE_DEV_ID_82599_COMBO_BACKPLANE
Definition: ixgbe_type.h:101
#define IXGBE_DEV_ID_X550EM_X_1G_T
Definition: ixgbe_type.h:151
#define IXGBE_DEV_ID_X550EM_A_QSFP_N
Definition: ixgbe_type.h:143
#define IXGBE_DEV_ID_82598_BX
Definition: ixgbe_type.h:87
#define IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM
Definition: ixgbe_type.h:96
#define IXGBE_DEV_ID_82598
Definition: ixgbe_type.h:86
#define IXGBE_DEV_ID_X550EM_X_XFI
Definition: ixgbe_type.h:152
struct ixgbe_eeprom_operations ops
Definition: ixgbe_type.h:4103
s32(* read_buffer)(struct ixgbe_hw *, u16, u16, u16 *)
Definition: ixgbe_type.h:3940
s32(* write_buffer)(struct ixgbe_hw *, u16, u16, u16 *)
Definition: ixgbe_type.h:3942
s32(* update_checksum)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3944
s32(* init_params)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3938
s32(* write)(struct ixgbe_hw *, u16, u16)
Definition: ixgbe_type.h:3941
s32(* read)(struct ixgbe_hw *, u16, u16 *)
Definition: ixgbe_type.h:3939
s32(* validate_checksum)(struct ixgbe_hw *, u16 *)
Definition: ixgbe_type.h:3943
struct ixgbe_mac_info mac
Definition: ixgbe_type.h:4207
const u32 * mvals
Definition: ixgbe_type.h:4215
u16 vendor_id
Definition: ixgbe_type.h:4217
struct ixgbe_link_info link
Definition: ixgbe_type.h:4211
u16 device_id
Definition: ixgbe_type.h:4216
struct ixgbe_eeprom_info eeprom
Definition: ixgbe_type.h:4212
struct ixgbe_phy_info phy
Definition: ixgbe_type.h:4210
enum ixgbe_mac_type type
Definition: ixgbe_type.h:4115
struct ixgbe_mac_operations ops
Definition: ixgbe_type.h:4114
s32(* get_wwn_prefix)(struct ixgbe_hw *, u16 *, u16 *)
Definition: ixgbe_type.h:3960
s32(* set_vlvf)(struct ixgbe_hw *, u32, u32, bool, u32 *, u32, bool)
Definition: ixgbe_type.h:4017
s32(* reset_hw)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3950
s32(* init_hw)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3949
s32(* dmac_config_tcs)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4046
s32(* acquire_swfw_sync)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3971
s32(* fc_enable)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4026
s32(* set_fw_drv_ver)(struct ixgbe_hw *, u8, u8, u8, u8, u16, const char *)
Definition: ixgbe_type.h:4031
s32(* led_off)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3994
s32(* get_mac_addr)(struct ixgbe_hw *, u8 *)
Definition: ixgbe_type.h:3956
s32(* init_rx_addrs)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4007
s32(* enable_rx_dma)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3968
s32(* setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool)
Definition: ixgbe_type.h:3982
s32(* set_rar)(struct ixgbe_hw *, u32, u8 *, u32, u32)
Definition: ixgbe_type.h:4000
s32(* disable_mc)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4014
void(* release_swfw_sync)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3972
s32(* read_analog_reg8)(struct ixgbe_hw *, u32, u8 *)
Definition: ixgbe_type.h:3965
s32(* clear_vmdq)(struct ixgbe_hw *, u32, u32)
Definition: ixgbe_type.h:4006
s32(* enable_mc)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4013
s32(* setup_mac_link)(struct ixgbe_hw *, ixgbe_link_speed, bool)
Definition: ixgbe_type.h:3983
void(* set_rate_select_speed)(struct ixgbe_hw *, ixgbe_link_speed)
Definition: ixgbe_type.h:3987
s32(* clear_vfta)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4015
s32(* init_thermal_sensor_thresh)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4034
void(* enable_rx)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4041
s32(* write_iosf_sb_reg)(struct ixgbe_hw *, u32, u32, u32)
Definition: ixgbe_type.h:4050
s32(* set_vmdq)(struct ixgbe_hw *, u32, u32)
Definition: ixgbe_type.h:4004
s32(* check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool)
Definition: ixgbe_type.h:3984
void(* get_rtrup2tc)(struct ixgbe_hw *hw, u8 *map)
Definition: ixgbe_type.h:4039
s32(* get_thermal_sensor_data)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4033
s32(* set_vfta)(struct ixgbe_hw *, u32, u32, bool, bool)
Definition: ixgbe_type.h:4016
s32(* update_uc_addr_list)(struct ixgbe_hw *, u8 *, u32, ixgbe_mc_addr_itr)
Definition: ixgbe_type.h:4008
bool(* fw_recovery_mode)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4055
s32(* disable_sec_rx_path)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3969
s32(* enable_sec_rx_path)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3970
s32(* update_mc_addr_list)(struct ixgbe_hw *, u8 *, u32, ixgbe_mc_addr_itr, bool clear)
Definition: ixgbe_type.h:4010
void(* init_swfw_sync)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3973
s32(* bypass_set)(struct ixgbe_hw *hw, u32 cmd, u32 event, u32 action)
Definition: ixgbe_type.h:4037
void(* enable_mdd)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4052
s32(* get_san_mac_addr)(struct ixgbe_hw *, u8 *)
Definition: ixgbe_type.h:3957
s32(* write_analog_reg8)(struct ixgbe_hw *, u32, u8)
Definition: ixgbe_type.h:3966
s32(* setup_eee)(struct ixgbe_hw *hw, bool enable_eee)
Definition: ixgbe_type.h:4048
void(* disable_rx)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4040
s32(* init_uta_tables)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4019
void(* disable_tx_laser)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3979
s32(* get_device_caps)(struct ixgbe_hw *, u16 *)
Definition: ixgbe_type.h:3959
void(* enable_relaxed_ordering)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3953
s32(* led_on)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3993
s32(* setup_fc)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4027
s32(* dmac_config)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4047
s32(* get_link_capabilities)(struct ixgbe_hw *, ixgbe_link_speed *, bool *)
Definition: ixgbe_type.h:3985
void(* disable_mdd)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4051
s32(* clear_rar)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:4002
s32(* insert_mac_addr)(struct ixgbe_hw *, u8 *, u32)
Definition: ixgbe_type.h:4003
s32(* blink_led_stop)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3996
s32(* clear_hw_cntrs)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3952
s32(* read_iosf_sb_reg)(struct ixgbe_hw *, u32, u32, u32 *)
Definition: ixgbe_type.h:4049
void(* enable_tx_laser)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3980
void(* flap_tx_laser)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3981
enum ixgbe_media_type(* get_media_type)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3954
s32(* set_san_mac_addr)(struct ixgbe_hw *, u8 *)
Definition: ixgbe_type.h:3958
s32(* get_bus_info)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3963
s32(* get_fcoe_boot_status)(struct ixgbe_hw *, u16 *)
Definition: ixgbe_type.h:3961
s32(* blink_led_start)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:3995
void(* set_source_address_pruning)(struct ixgbe_hw *, bool, unsigned int)
Definition: ixgbe_type.h:4042
s32(* start_hw)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3951
s32(* set_vmdq_san_mac)(struct ixgbe_hw *, u32)
Definition: ixgbe_type.h:4005
bool(* bypass_valid_rd)(u32 in_reg, u32 out_reg)
Definition: ixgbe_type.h:4036
void(* set_ethertype_anti_spoofing)(struct ixgbe_hw *, bool, int)
Definition: ixgbe_type.h:4044
s32(* stop_adapter)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3962
s32(* bypass_rd_eep)(struct ixgbe_hw *hw, u32 addr, u8 *value)
Definition: ixgbe_type.h:4038
void(* restore_mdd_vf)(struct ixgbe_hw *hw, u32 vf)
Definition: ixgbe_type.h:4054
void(* mdd_event)(struct ixgbe_hw *hw, u32 *vf_bitmap)
Definition: ixgbe_type.h:4053
u64(* get_supported_physical_layer)(struct ixgbe_hw *)
Definition: ixgbe_type.h:3955
s32(* dmac_update_tcs)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4045
s32(* bypass_rw)(struct ixgbe_hw *hw, u32 cmd, u32 *status)
Definition: ixgbe_type.h:4035
enum ixgbe_phy_type type
Definition: ixgbe_type.h:4152
struct ixgbe_phy_operations ops
Definition: ixgbe_type.h:4151
s32(* read_i2c_byte_unlocked)(struct ixgbe_hw *, u8 offset, u8 addr, u8 *value)
Definition: ixgbe_type.h:4082
s32(* read_i2c_eeprom)(struct ixgbe_hw *, u8, u8 *)
Definition: ixgbe_type.h:4075
s32(* setup_link_speed)(struct ixgbe_hw *, ixgbe_link_speed, bool)
Definition: ixgbe_type.h:4069
s32(* write_i2c_byte)(struct ixgbe_hw *, u8, u8, u8)
Definition: ixgbe_type.h:4073
s32(* read_i2c_byte)(struct ixgbe_hw *, u8, u8, u8 *)
Definition: ixgbe_type.h:4072
s32(* write_i2c_byte_unlocked)(struct ixgbe_hw *, u8 offset, u8 addr, u8 value)
Definition: ixgbe_type.h:4084
s32(* get_firmware_version)(struct ixgbe_hw *, u16 *)
Definition: ixgbe_type.h:4071
s32(* handle_lasi)(struct ixgbe_hw *hw)
Definition: ixgbe_type.h:4081
s32(* reset)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4062
s32(* identify)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4059
s32(* check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *)
Definition: ixgbe_type.h:4070
s32(* set_phy_power)(struct ixgbe_hw *, bool on)
Definition: ixgbe_type.h:4079
s32(* read_reg)(struct ixgbe_hw *, u32, u32, u16 *)
Definition: ixgbe_type.h:4063
s32(* setup_link)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4067
s32(* enter_lplu)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4080
s32(* setup_internal_link)(struct ixgbe_hw *)
Definition: ixgbe_type.h:4068
s32(* write_i2c_eeprom)(struct ixgbe_hw *, u8, u8)
Definition: ixgbe_type.h:4076
s32(* write_reg)(struct ixgbe_hw *, u32, u32, u16)
Definition: ixgbe_type.h:4064