FreeBSD kernel IXGBE device code
|
#include "ixgbe_type.h"
#include "ixgbe_82599.h"
#include "ixgbe_api.h"
#include "ixgbe_common.h"
#include "ixgbe_phy.h"
Go to the source code of this file.
Macros | |
#define | IXGBE_82599_MAX_TX_QUEUES 128 |
#define | IXGBE_82599_MAX_RX_QUEUES 128 |
#define | IXGBE_82599_RAR_ENTRIES 128 |
#define | IXGBE_82599_MC_TBL_SIZE 128 |
#define | IXGBE_82599_VFT_TBL_SIZE 128 |
#define | IXGBE_82599_RX_PB_SIZE 512 |
#define | IXGBE_ATR_COMMON_HASH_KEY (IXGBE_ATR_BUCKET_HASH_KEY & IXGBE_ATR_SIGNATURE_HASH_KEY) |
#define | IXGBE_COMPUTE_SIG_HASH_ITERATION(_n) |
#define | IXGBE_COMPUTE_BKT_HASH_ITERATION(_n) |
#define | IXGBE_STORE_AS_BE32(_value) |
#define | IXGBE_WRITE_REG_BE32(a, reg, value) IXGBE_WRITE_REG((a), (reg), IXGBE_STORE_AS_BE32(IXGBE_NTOHL(value))) |
#define | IXGBE_STORE_AS_BE16(_value) IXGBE_NTOHS(((u16)(_value) >> 8) | ((u16)(_value) << 8)) |
#define IXGBE_82599_MAX_RX_QUEUES 128 |
Definition at line 43 of file ixgbe_82599.c.
#define IXGBE_82599_MAX_TX_QUEUES 128 |
Definition at line 42 of file ixgbe_82599.c.
#define IXGBE_82599_MC_TBL_SIZE 128 |
Definition at line 45 of file ixgbe_82599.c.
#define IXGBE_82599_RAR_ENTRIES 128 |
Definition at line 44 of file ixgbe_82599.c.
#define IXGBE_82599_RX_PB_SIZE 512 |
Definition at line 47 of file ixgbe_82599.c.
#define IXGBE_82599_VFT_TBL_SIZE 128 |
Definition at line 46 of file ixgbe_82599.c.
#define IXGBE_ATR_COMMON_HASH_KEY (IXGBE_ATR_BUCKET_HASH_KEY & IXGBE_ATR_SIGNATURE_HASH_KEY) |
Definition at line 1449 of file ixgbe_82599.c.
#define IXGBE_COMPUTE_BKT_HASH_ITERATION | ( | _n | ) |
Definition at line 1599 of file ixgbe_82599.c.
#define IXGBE_COMPUTE_SIG_HASH_ITERATION | ( | _n | ) |
Definition at line 1451 of file ixgbe_82599.c.
#define IXGBE_STORE_AS_BE16 | ( | _value | ) | IXGBE_NTOHS(((u16)(_value) >> 8) | ((u16)(_value) << 8)) |
Definition at line 1701 of file ixgbe_82599.c.
#define IXGBE_STORE_AS_BE32 | ( | _value | ) |
Definition at line 1694 of file ixgbe_82599.c.
#define IXGBE_WRITE_REG_BE32 | ( | a, | |
reg, | |||
value | |||
) | IXGBE_WRITE_REG((a), (reg), IXGBE_STORE_AS_BE32(IXGBE_NTOHL(value))) |
Definition at line 1698 of file ixgbe_82599.c.
void ixgbe_atr_compute_perfect_hash_82599 | ( | union ixgbe_atr_input * | input, |
union ixgbe_atr_input * | input_mask | ||
) |
ixgbe_atr_compute_perfect_hash_82599 - Compute the perfect filter hash @input: input bitstream to compute the hash on @input_mask: mask for the input bitstream
This function serves two main purposes. First it applies the input_mask to the atr_input resulting in a cleaned up atr_input data stream. Secondly it computes the hash and stores it in the bkt_hash field at the end of the input byte stream. This way it will be available for future use without needing to recompute the hash.
Definition at line 1619 of file ixgbe_82599.c.
References ixgbe_atr_input::bkt_hash, ixgbe_atr_input::dword_stream, ixgbe_atr_input::formatted, IXGBE_COMPUTE_BKT_HASH_ITERATION, and IXGBE_NTOHL.
Referenced by ixgbe_fdir_add_perfect_filter_82599().
u32 ixgbe_atr_compute_sig_hash_82599 | ( | union ixgbe_atr_hash_dword | input, |
union ixgbe_atr_hash_dword | common | ||
) |
ixgbe_atr_compute_sig_hash_82599 - Compute the signature hash @input: input bitstream to compute the hash on @common: compressed common input dword
This function is almost identical to the function above but contains several optimizations such as unwinding all of the loops, letting the compiler work out all of the conditional ifs since the keys are static defines, and computing two keys at once since the hashed dword stream will be the same for both keys.
Definition at line 1479 of file ixgbe_82599.c.
References ixgbe_atr_hash_dword::dword, IXGBE_ATR_HASH_MASK, IXGBE_COMPUTE_SIG_HASH_ITERATION, and IXGBE_NTOHL.
Referenced by ixgbe_fdir_add_signature_filter_82599().
void ixgbe_disable_tx_laser_multispeed_fiber | ( | struct ixgbe_hw * | hw | ) |
ixgbe_disable_tx_laser_multispeed_fiber - Disable Tx laser @hw: pointer to hardware structure
The base drivers may require better control over SFP+ module PHY states. This includes selectively shutting down the Tx laser on the PHY, effectively halting physical link.
Definition at line 685 of file ixgbe_82599.c.
References ixgbe_check_reset_blocked(), IXGBE_ESDP, IXGBE_ESDP_SDP3, IXGBE_READ_REG, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and usec_delay.
Referenced by ixgbe_flap_tx_laser_multispeed_fiber(), and ixgbe_init_mac_link_ops_82599().
ixgbe_enable_rx_dma_82599 - Enable the Rx DMA unit on 82599 @hw: pointer to hardware structure @regval: register value to write to RXCTRL
Enables the Rx DMA unit for 82599
Definition at line 2280 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_mac_operations::disable_sec_rx_path, ixgbe_mac_operations::enable_sec_rx_path, ixgbe_disable_rx(), ixgbe_enable_rx(), IXGBE_RXCTRL_RXEN, IXGBE_SUCCESS, ixgbe_hw::mac, and ixgbe_mac_info::ops.
Referenced by ixgbe_init_ops_82599().
void ixgbe_enable_tx_laser_multispeed_fiber | ( | struct ixgbe_hw * | hw | ) |
ixgbe_enable_tx_laser_multispeed_fiber - Enable Tx laser @hw: pointer to hardware structure
The base drivers may require better control over SFP+ module PHY states. This includes selectively turning on the Tx laser on the PHY, effectively starting physical link.
Definition at line 708 of file ixgbe_82599.c.
References IXGBE_ESDP, IXGBE_READ_REG, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and msec_delay.
Referenced by ixgbe_flap_tx_laser_multispeed_fiber(), and ixgbe_init_mac_link_ops_82599().
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 | ||
) |
ixgbe_fdir_add_perfect_filter_82599 - Adds a perfect filter @hw: pointer to hardware structure @input: input bitstream @input_mask: mask for the input bitstream @soft_id: software index for the filters @queue: queue index to direct traffic to @cloud_mode: unused
Note that the caller to this function must lock before calling, since the hardware writes must be protected from one another.
Definition at line 2019 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, ixgbe_atr_input::dst_port, ixgbe_atr_input::flow_type, ixgbe_atr_input::formatted, ixgbe_atr_compute_perfect_hash_82599(), IXGBE_ATR_FLOW_TYPE_IPV4, IXGBE_ATR_FLOW_TYPE_SCTPV4, IXGBE_ATR_FLOW_TYPE_TCPV4, IXGBE_ATR_FLOW_TYPE_TUNNELED_IPV4, IXGBE_ATR_FLOW_TYPE_TUNNELED_SCTPV4, IXGBE_ATR_FLOW_TYPE_TUNNELED_TCPV4, IXGBE_ATR_FLOW_TYPE_TUNNELED_UDPV4, IXGBE_ATR_FLOW_TYPE_UDPV4, IXGBE_ATR_L4TYPE_IPV6_MASK, IXGBE_ATR_L4TYPE_MASK, IXGBE_ERR_CONFIG, ixgbe_fdir_set_input_mask_82599(), ixgbe_fdir_write_perfect_filter_82599(), ixgbe_atr_input::src_port, and UNREFERENCED_1PARAMETER.
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 | ||
) |
ixgbe_atr_add_signature_filter_82599 - Adds a signature hash filter @hw: pointer to hardware structure @input: unique input dword @common: compressed common input dword @queue: queue index to direct traffic to
Note that the tunnel bit in input must not be set when the hardware tunneling support does not exist.
Definition at line 1545 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, DEBUGOUT2, ixgbe_atr_hash_dword::flow_type, ixgbe_atr_hash_dword::formatted, ixgbe_atr_compute_sig_hash_82599(), IXGBE_ATR_FLOW_TYPE_SCTPV4, IXGBE_ATR_FLOW_TYPE_SCTPV6, IXGBE_ATR_FLOW_TYPE_TCPV4, IXGBE_ATR_FLOW_TYPE_TCPV6, IXGBE_ATR_FLOW_TYPE_UDPV4, IXGBE_ATR_FLOW_TYPE_UDPV6, IXGBE_ATR_L4TYPE_TUNNEL_MASK, IXGBE_FDIRCMD_CMD_ADD_FLOW, IXGBE_FDIRCMD_FILTER_UPDATE, IXGBE_FDIRCMD_FLOW_TYPE_SHIFT, IXGBE_FDIRCMD_LAST, IXGBE_FDIRCMD_QUEUE_EN, IXGBE_FDIRCMD_RX_QUEUE_SHIFT, IXGBE_FDIRCMD_TUNNEL_FILTER, IXGBE_FDIRHASH, and IXGBE_WRITE_REG64.
ixgbe_fdir_check_cmd_complete - poll to check whether FDIRCMD is complete @hw: pointer to hardware structure @fdircmd: current value of FDIRCMD register
Definition at line 1217 of file ixgbe_82599.c.
References IXGBE_ERR_FDIR_CMD_INCOMPLETE, IXGBE_FDIRCMD, IXGBE_FDIRCMD_CMD_MASK, IXGBE_FDIRCMD_CMD_POLL, IXGBE_READ_REG, IXGBE_SUCCESS, and usec_delay.
Referenced by ixgbe_fdir_erase_perfect_filter_82599(), ixgbe_fdir_write_perfect_filter_82599(), and ixgbe_reinit_fdir_tables_82599().
ixgbe_fdir_enable_82599 - Initialize Flow Director control registers @hw: pointer to hardware structure @fdirctrl: value to write to flow director control register
Definition at line 1309 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, IXGBE_ATR_BUCKET_HASH_KEY, IXGBE_ATR_SIGNATURE_HASH_KEY, IXGBE_FDIR_INIT_DONE_POLL, IXGBE_FDIRCTRL, IXGBE_FDIRCTRL_INIT_DONE, IXGBE_FDIRHKEY, IXGBE_FDIRSKEY, IXGBE_READ_REG, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and msec_delay.
Referenced by ixgbe_init_fdir_perfect_82599(), ixgbe_init_fdir_signature_82599(), and ixgbe_set_fdir_drop_queue_82599().
s32 ixgbe_fdir_erase_perfect_filter_82599 | ( | struct ixgbe_hw * | hw, |
union ixgbe_atr_input * | input, | ||
u16 | soft_id | ||
) |
Definition at line 1971 of file ixgbe_82599.c.
References ixgbe_atr_input::bkt_hash, DEBUGOUT, ixgbe_atr_input::formatted, ixgbe_fdir_check_cmd_complete(), IXGBE_FDIRCMD, IXGBE_FDIRCMD_CMD_QUERY_REM_FILT, IXGBE_FDIRCMD_CMD_REMOVE_FLOW, IXGBE_FDIRCMD_FILTER_VALID, IXGBE_FDIRHASH, IXGBE_FDIRHASH_SIG_SW_INDEX_SHIFT, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, and IXGBE_WRITE_REG.
s32 ixgbe_fdir_set_input_mask_82599 | ( | struct ixgbe_hw * | hw, |
union ixgbe_atr_input * | input_mask, | ||
bool | cloud_mode | ||
) |
Definition at line 1704 of file ixgbe_82599.c.
References ixgbe_atr_input::bkt_hash, DEBUGFUNC, DEBUGOUT, ixgbe_atr_input::dst_ip, ixgbe_atr_input::dst_port, ixgbe_atr_input::flex_bytes, ixgbe_atr_input::flow_type, ixgbe_atr_input::formatted, ixgbe_atr_input::inner_mac, IXGBE_ATR_L4TYPE_MASK, IXGBE_ERR_CONFIG, IXGBE_FDIRDIP4M, IXGBE_FDIRIP6M, IXGBE_FDIRIP6M_ALWAYS_MASK, IXGBE_FDIRIP6M_DIPM_SHIFT, IXGBE_FDIRIP6M_INNER_MAC, IXGBE_FDIRIP6M_TNI_VNI, IXGBE_FDIRIP6M_TNI_VNI_24, IXGBE_FDIRIP6M_TUNNEL_TYPE, IXGBE_FDIRM, IXGBE_FDIRM_DIPv6, IXGBE_FDIRM_FLEX, IXGBE_FDIRM_L3P, IXGBE_FDIRM_L4P, IXGBE_FDIRM_POOL, IXGBE_FDIRM_VLANID, IXGBE_FDIRM_VLANP, IXGBE_FDIRSCTPM, IXGBE_FDIRSIP4M, IXGBE_FDIRTCPM, IXGBE_FDIRUDPM, ixgbe_get_fdirtcpm_82599(), ixgbe_mac_X550, ixgbe_mac_X550EM_a, ixgbe_mac_X550EM_x, IXGBE_NTOHS, IXGBE_SUCCESS, IXGBE_WRITE_REG, IXGBE_WRITE_REG_BE32, ixgbe_hw::mac, ixgbe_atr_input::src_ip, ixgbe_atr_input::src_port, ixgbe_atr_input::tni_vni, ixgbe_atr_input::tunnel_type, ixgbe_mac_info::type, UNREFERENCED_1PARAMETER, ixgbe_atr_input::vlan_id, and ixgbe_atr_input::vm_pool.
Referenced by ixgbe_fdir_add_perfect_filter_82599().
s32 ixgbe_fdir_write_perfect_filter_82599 | ( | struct ixgbe_hw * | hw, |
union ixgbe_atr_input * | input, | ||
u16 | soft_id, | ||
u8 | queue, | ||
bool | cloud_mode | ||
) |
Definition at line 1881 of file ixgbe_82599.c.
References ixgbe_atr_input::bkt_hash, DEBUGFUNC, DEBUGOUT, ixgbe_atr_input::dst_ip, ixgbe_atr_input::dst_port, ixgbe_atr_input::flex_bytes, ixgbe_atr_input::flow_type, ixgbe_atr_input::formatted, ixgbe_atr_input::inner_mac, IXGBE_ATR_L4TYPE_TUNNEL_MASK, ixgbe_fdir_check_cmd_complete(), IXGBE_FDIR_DROP_QUEUE, IXGBE_FDIRCMD, IXGBE_FDIRCMD_CMD_ADD_FLOW, IXGBE_FDIRCMD_DROP, IXGBE_FDIRCMD_FILTER_UPDATE, IXGBE_FDIRCMD_FLOW_TYPE_SHIFT, IXGBE_FDIRCMD_LAST, IXGBE_FDIRCMD_QUEUE_EN, IXGBE_FDIRCMD_RX_QUEUE_SHIFT, IXGBE_FDIRCMD_TUNNEL_FILTER, IXGBE_FDIRCMD_VT_POOL_SHIFT, IXGBE_FDIRHASH, IXGBE_FDIRHASH_SIG_SW_INDEX_SHIFT, IXGBE_FDIRIPDA, IXGBE_FDIRIPSA, IXGBE_FDIRPORT, IXGBE_FDIRPORT_DESTINATION_SHIFT, IXGBE_FDIRSIPv6, IXGBE_FDIRVLAN, IXGBE_FDIRVLAN_FLEX_SHIFT, IXGBE_NTOHS, IXGBE_STORE_AS_BE16, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, IXGBE_WRITE_REG_BE32, ixgbe_atr_input::src_ip, ixgbe_atr_input::src_port, ixgbe_atr_input::tni_vni, ixgbe_atr_input::tunnel_type, UNREFERENCED_1PARAMETER, ixgbe_atr_input::vlan_id, and ixgbe_atr_input::vm_pool.
Referenced by ixgbe_fdir_add_perfect_filter_82599().
void ixgbe_flap_tx_laser_multispeed_fiber | ( | struct ixgbe_hw * | hw | ) |
ixgbe_flap_tx_laser_multispeed_fiber - Flap Tx laser @hw: pointer to hardware structure
When the driver changes the link speeds that it can support, it sets autotry_restart to true to indicate that we need to initiate a new autotry session with the link partner. To do so, we set the speed then disable and re-enable the Tx laser, to alert the link partner that it also needs to restart autotry on its end. This is consistent with true clause 37 autoneg, which also involves a loss of signal.
Definition at line 731 of file ixgbe_82599.c.
References ixgbe_mac_info::autotry_restart, DEBUGFUNC, ixgbe_check_reset_blocked(), ixgbe_disable_tx_laser_multispeed_fiber(), ixgbe_enable_tx_laser_multispeed_fiber(), and ixgbe_hw::mac.
Referenced by ixgbe_init_mac_link_ops_82599().
|
static |
ixgbe_get_fdirtcpm_82599 - generate a TCP port from atr_input_masks @input_mask: mask to be bit swapped
The source and destination port masks for flow director are bit swapped in that bit 15 effects bit 0, 14 effects 1, 13, 2 etc. In order to generate a correctly swapped value we need to bit swap the mask and that is what is accomplished by this function.
Definition at line 1676 of file ixgbe_82599.c.
References ixgbe_atr_input::dst_port, ixgbe_atr_input::formatted, IXGBE_FDIRTCPM_DPORTM_SHIFT, IXGBE_NTOHS, and ixgbe_atr_input::src_port.
Referenced by ixgbe_fdir_set_input_mask_82599().
s32 ixgbe_get_link_capabilities_82599 | ( | struct ixgbe_hw * | hw, |
ixgbe_link_speed * | speed, | ||
bool * | autoneg | ||
) |
ixgbe_get_link_capabilities_82599 - Determines link capabilities @hw: pointer to hardware structure @speed: pointer to link speed @autoneg: true when autoneg or autotry is enabled
Determines the link capabilities by reading the AUTOC register.
Definition at line 421 of file ixgbe_82599.c.
References DEBUGFUNC, IXGBE_AUTOC, IXGBE_AUTOC_KR_SUPP, IXGBE_AUTOC_KX4_SUPP, IXGBE_AUTOC_KX_SUPP, IXGBE_AUTOC_LMS_10G_LINK_NO_AN, IXGBE_AUTOC_LMS_10G_SERIAL, IXGBE_AUTOC_LMS_1G_AN, IXGBE_AUTOC_LMS_1G_LINK_NO_AN, IXGBE_AUTOC_LMS_KX4_KX_KR, IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN, IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII, IXGBE_AUTOC_LMS_MASK, IXGBE_AUTOC_LMS_SGMII_1G_100M, IXGBE_ERR_LINK_SETUP, IXGBE_LINK_SPEED_100_FULL, IXGBE_LINK_SPEED_10GB_FULL, IXGBE_LINK_SPEED_1GB_FULL, IXGBE_LINK_SPEED_UNKNOWN, ixgbe_media_type_fiber_qsfp, IXGBE_READ_REG, ixgbe_sfp_type_1g_cu_core0, ixgbe_sfp_type_1g_cu_core1, ixgbe_sfp_type_1g_lx_core0, ixgbe_sfp_type_1g_lx_core1, ixgbe_sfp_type_1g_sx_core0, ixgbe_sfp_type_1g_sx_core1, IXGBE_SUCCESS, ixgbe_hw::mac, ixgbe_phy_info::media_type, ixgbe_phy_info::multispeed_fiber, ixgbe_mac_info::orig_autoc, ixgbe_mac_info::orig_link_settings_stored, ixgbe_hw::phy, and ixgbe_phy_info::sfp_type.
Referenced by ixgbe_init_ops_82599().
enum ixgbe_media_type ixgbe_get_media_type_82599 | ( | struct ixgbe_hw * | hw | ) |
ixgbe_get_media_type_82599 - Get media type @hw: pointer to hardware structure
Returns the media type (fiber, copper, backplane)
Definition at line 531 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_hw::device_id, IXGBE_DEV_ID_82599_BACKPLANE_FCOE, IXGBE_DEV_ID_82599_BYPASS, IXGBE_DEV_ID_82599_COMBO_BACKPLANE, IXGBE_DEV_ID_82599_CX4, IXGBE_DEV_ID_82599_KR, IXGBE_DEV_ID_82599_KX4, IXGBE_DEV_ID_82599_KX4_MEZZ, IXGBE_DEV_ID_82599_QSFP_SF_QP, IXGBE_DEV_ID_82599_SFP, IXGBE_DEV_ID_82599_SFP_EM, IXGBE_DEV_ID_82599_SFP_FCOE, IXGBE_DEV_ID_82599_SFP_SF2, IXGBE_DEV_ID_82599_SFP_SF_QP, IXGBE_DEV_ID_82599_T3_LOM, IXGBE_DEV_ID_82599_XAUI_LOM, IXGBE_DEV_ID_82599EN_SFP, ixgbe_media_type_backplane, ixgbe_media_type_copper, ixgbe_media_type_cx4, ixgbe_media_type_fiber, ixgbe_media_type_fiber_fixed, ixgbe_media_type_fiber_qsfp, ixgbe_media_type_unknown, ixgbe_phy_cu_unknown, ixgbe_phy_tn, ixgbe_phy_info::multispeed_fiber, ixgbe_hw::phy, and ixgbe_phy_info::type.
Referenced by ixgbe_init_ops_82599().
ixgbe_get_supported_physical_layer_82599 - Returns physical layer type @hw: pointer to hardware structure
Determines physical layer capabilities of the current configuration.
Definition at line 2192 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_phy_operations::identify, IXGBE_AUTOC, IXGBE_AUTOC2, IXGBE_AUTOC2_10G_KR, IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK, IXGBE_AUTOC2_10G_SFI, IXGBE_AUTOC_10G_CX4, IXGBE_AUTOC_10G_KX4, IXGBE_AUTOC_10G_PMA_PMD_MASK, IXGBE_AUTOC_10G_XAUI, IXGBE_AUTOC_1G_KX_BX, IXGBE_AUTOC_1G_PMA_PMD_MASK, IXGBE_AUTOC_KR_SUPP, IXGBE_AUTOC_KX4_SUPP, IXGBE_AUTOC_KX_SUPP, IXGBE_AUTOC_LMS_10G_LINK_NO_AN, IXGBE_AUTOC_LMS_10G_SERIAL, IXGBE_AUTOC_LMS_1G_AN, IXGBE_AUTOC_LMS_1G_LINK_NO_AN, IXGBE_AUTOC_LMS_KX4_KX_KR, IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN, IXGBE_AUTOC_LMS_MASK, ixgbe_get_supported_phy_sfp_layer_generic(), IXGBE_MDIO_PHY_1000BASET_ABILITY, IXGBE_MDIO_PHY_100BASETX_ABILITY, IXGBE_MDIO_PHY_10GBASET_ABILITY, IXGBE_MDIO_PHY_EXT_ABILITY, IXGBE_MDIO_PMA_PMD_DEV_TYPE, ixgbe_phy_cu_unknown, ixgbe_phy_tn, IXGBE_PHYSICAL_LAYER_1000BASE_BX, IXGBE_PHYSICAL_LAYER_1000BASE_KX, IXGBE_PHYSICAL_LAYER_1000BASE_T, IXGBE_PHYSICAL_LAYER_100BASE_TX, IXGBE_PHYSICAL_LAYER_10GBASE_CX4, IXGBE_PHYSICAL_LAYER_10GBASE_KR, IXGBE_PHYSICAL_LAYER_10GBASE_KX4, IXGBE_PHYSICAL_LAYER_10GBASE_T, IXGBE_PHYSICAL_LAYER_10GBASE_XAUI, IXGBE_PHYSICAL_LAYER_UNKNOWN, IXGBE_READ_REG, ixgbe_phy_info::ops, ixgbe_hw::phy, ixgbe_phy_operations::read_reg, and ixgbe_phy_info::type.
Referenced by ixgbe_init_ops_82599().
ixgbe_identify_phy_82599 - Get physical layer module @hw: pointer to hardware structure
Determines the physical layer module found on the current adapter. If PHY already detected, maintains current PHY type in hw struct, otherwise executes the PHY detection routine.
Definition at line 2157 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_mac_operations::get_media_type, IXGBE_ERR_SFP_NOT_SUPPORTED, ixgbe_identify_module_generic(), ixgbe_identify_phy_generic(), ixgbe_media_type_copper, ixgbe_phy_none, ixgbe_phy_sfp_unsupported, ixgbe_phy_unknown, IXGBE_SUCCESS, ixgbe_hw::mac, ixgbe_mac_info::ops, ixgbe_hw::phy, and ixgbe_phy_info::type.
Referenced by ixgbe_init_ops_82599().
ixgbe_init_fdir_perfect_82599 - Initialize Flow Director perfect filters @hw: pointer to hardware structure @fdirctrl: value to write to flow director control register, initially contains just the value of the Rx packet buffer allocation @cloud_mode: true - cloud mode, false - other mode
Definition at line 1378 of file ixgbe_82599.c.
References DEBUGFUNC, IXGBE_FDIR_DROP_QUEUE, ixgbe_fdir_enable_82599(), IXGBE_FDIRCTRL_DROP_Q_SHIFT, IXGBE_FDIRCTRL_FILTERMODE_CLOUD, IXGBE_FDIRCTRL_FILTERMODE_SHIFT, IXGBE_FDIRCTRL_FLEX_SHIFT, IXGBE_FDIRCTRL_FULL_THRESH_SHIFT, IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT, IXGBE_FDIRCTRL_PERFECT_MATCH, IXGBE_FDIRCTRL_REPORT_STATUS, IXGBE_SUCCESS, and UNREFERENCED_1PARAMETER.
ixgbe_init_fdir_signature_82599 - Initialize Flow Director signature filters @hw: pointer to hardware structure @fdirctrl: value to write to flow director control register, initially contains just the value of the Rx packet buffer allocation
Definition at line 1351 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_fdir_enable_82599(), IXGBE_FDIRCTRL_FLEX_SHIFT, IXGBE_FDIRCTRL_FULL_THRESH_SHIFT, IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT, and IXGBE_SUCCESS.
void ixgbe_init_mac_link_ops_82599 | ( | struct ixgbe_hw * | hw | ) |
Definition at line 62 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_mac_operations::disable_tx_laser, ixgbe_mac_operations::enable_tx_laser, ixgbe_mac_operations::flap_tx_laser, ixgbe_mac_operations::get_media_type, ixgbe_disable_tx_laser_multispeed_fiber(), ixgbe_enable_tx_laser_multispeed_fiber(), ixgbe_flap_tx_laser_multispeed_fiber(), ixgbe_get_media_type(), ixgbe_media_type_backplane, ixgbe_media_type_fiber, ixgbe_media_type_fiber_fixed, ixgbe_mng_enabled(), ixgbe_set_hard_rate_select_speed(), ixgbe_set_soft_rate_select_speed(), ixgbe_setup_mac_link_82599(), ixgbe_setup_mac_link_multispeed_fiber(), ixgbe_setup_mac_link_smartspeed(), ixgbe_smart_speed_auto, ixgbe_smart_speed_on, ixgbe_verify_lesm_fw_enabled_82599(), ixgbe_hw::mac, ixgbe_phy_info::multispeed_fiber, ixgbe_mac_info::ops, ixgbe_hw::phy, ixgbe_mac_operations::set_rate_select_speed, ixgbe_mac_operations::setup_link, ixgbe_mac_operations::setup_mac_link, and ixgbe_phy_info::smart_speed.
Referenced by ixgbe_init_ops_82599(), ixgbe_init_phy_ops_82599(), and ixgbe_setup_sfp_modules_82599().
ixgbe_init_ops_82599 - Inits func ptrs and MAC type @hw: pointer to hardware structure
Initialize the function pointers and assign the MAC type for 82599. Does not touch the hardware.
Definition at line 322 of file ixgbe_82599.c.
References ixgbe_mac_info::arc_subsystem_valid, ixgbe_mac_operations::bypass_rd_eep, ixgbe_mac_operations::bypass_rw, ixgbe_mac_operations::bypass_set, ixgbe_mac_operations::bypass_valid_rd, ixgbe_mac_operations::check_link, ixgbe_mac_operations::clear_vfta, ixgbe_mac_operations::clear_vmdq, DEBUGFUNC, ixgbe_mac_operations::disable_sec_rx_path, ixgbe_hw::eeprom, ixgbe_mac_operations::enable_relaxed_ordering, ixgbe_mac_operations::enable_rx_dma, ixgbe_mac_operations::enable_sec_rx_path, ixgbe_mac_operations::get_device_caps, ixgbe_mac_operations::get_fcoe_boot_status, ixgbe_mac_operations::get_link_capabilities, ixgbe_mac_operations::get_media_type, ixgbe_mac_operations::get_rtrup2tc, ixgbe_mac_operations::get_san_mac_addr, ixgbe_mac_operations::get_supported_physical_layer, ixgbe_mac_operations::get_thermal_sensor_data, ixgbe_mac_operations::get_wwn_prefix, ixgbe_phy_operations::identify, ixgbe_phy_operations::init, ixgbe_mbx_operations::init_params, ixgbe_mac_operations::init_thermal_sensor_thresh, ixgbe_mac_operations::init_uta_tables, ixgbe_mac_operations::insert_mac_addr, IXGBE_82599_MAX_RX_QUEUES, IXGBE_82599_MAX_TX_QUEUES, IXGBE_82599_MC_TBL_SIZE, IXGBE_82599_RAR_ENTRIES, IXGBE_82599_RX_PB_SIZE, IXGBE_82599_VFT_TBL_SIZE, ixgbe_bypass_rd_eep_generic(), ixgbe_bypass_rw_generic(), ixgbe_bypass_set_generic(), ixgbe_bypass_valid_rd_generic(), ixgbe_check_mac_link_generic(), ixgbe_clear_vfta_generic(), ixgbe_clear_vmdq_generic(), ixgbe_dcb_get_rtrup2tc_generic(), ixgbe_disable_sec_rx_path_generic(), ixgbe_enable_relaxed_ordering_gen2(), ixgbe_enable_rx_dma_82599(), ixgbe_enable_sec_rx_path_generic(), IXGBE_FWSM_BY_MAC, IXGBE_FWSM_MODE_MASK, ixgbe_get_device_caps_generic(), ixgbe_get_fcoe_boot_status_generic(), ixgbe_get_link_capabilities_82599(), ixgbe_get_media_type_82599(), ixgbe_get_pcie_msix_count_generic(), ixgbe_get_san_mac_addr_generic(), ixgbe_get_supported_physical_layer_82599(), ixgbe_get_thermal_sensor_data_generic(), ixgbe_get_wwn_prefix_generic(), ixgbe_identify_phy_82599(), ixgbe_init_mac_link_ops_82599(), ixgbe_init_mbx_params_pf(), ixgbe_init_ops_generic(), ixgbe_init_phy_ops_82599(), ixgbe_init_phy_ops_generic(), ixgbe_init_thermal_sensor_thresh_generic(), ixgbe_init_uta_tables_generic(), ixgbe_insert_mac_addr_generic(), ixgbe_read_analog_reg8_82599(), ixgbe_read_eeprom_82599(), ixgbe_read_eeprom_buffer_82599(), IXGBE_READ_REG, ixgbe_reset_hw_82599(), ixgbe_set_fw_drv_ver_generic(), ixgbe_set_mac_anti_spoofing(), ixgbe_set_rxpba_generic(), ixgbe_set_san_mac_addr_generic(), ixgbe_set_vfta_generic(), ixgbe_set_vlan_anti_spoofing(), ixgbe_set_vlvf_generic(), ixgbe_set_vmdq_generic(), ixgbe_set_vmdq_san_mac_generic(), ixgbe_setup_sfp_modules_82599(), ixgbe_start_hw_82599(), ixgbe_write_analog_reg8_82599(), ixgbe_hw::mac, ixgbe_mac_info::max_msix_vectors, ixgbe_mac_info::max_rx_queues, ixgbe_mac_info::max_tx_queues, ixgbe_hw::mbx, ixgbe_mac_info::mcft_size, ixgbe_mac_info::num_rar_entries, ixgbe_eeprom_info::ops, ixgbe_mac_info::ops, ixgbe_phy_info::ops, ixgbe_mbx_info::ops, ixgbe_hw::phy, ixgbe_mac_operations::prot_autoc_read, prot_autoc_read_82599(), ixgbe_mac_operations::prot_autoc_write, prot_autoc_write_82599(), ixgbe_mac_info::rar_highwater, ixgbe_eeprom_operations::read, ixgbe_mac_operations::read_analog_reg8, ixgbe_eeprom_operations::read_buffer, ixgbe_mac_operations::reset_hw, ixgbe_mac_info::rx_pb_size, ixgbe_mac_operations::set_fw_drv_ver, ixgbe_mac_operations::set_mac_anti_spoofing, ixgbe_mac_operations::set_san_mac_addr, ixgbe_mac_operations::set_vfta, ixgbe_mac_operations::set_vlan_anti_spoofing, ixgbe_mac_operations::set_vlvf, ixgbe_mac_operations::set_vmdq, ixgbe_mac_operations::set_vmdq_san_mac, ixgbe_mac_operations::setup_rxpba, ixgbe_mac_operations::setup_sfp, ixgbe_mac_operations::start_hw, ixgbe_mac_info::vft_size, and ixgbe_mac_operations::write_analog_reg8.
Referenced by ixgbe_init_shared_code().
ixgbe_init_phy_ops_82599 - PHY/SFP specific init @hw: pointer to hardware structure
Initialize any function pointers that were not able to be set during init_shared_code because the PHY/SFP type was not known. Perform the SFP init if necessary.
Definition at line 116 of file ixgbe_82599.c.
References ixgbe_phy_operations::check_link, DEBUGFUNC, ixgbe_hw::device_id, ixgbe_phy_operations::get_firmware_version, ixgbe_mac_operations::get_link_capabilities, ixgbe_mac_operations::get_media_type, ixgbe_phy_operations::identify, ixgbe_check_phy_link_tnx(), IXGBE_DEV_ID_82599_QSFP_SF_QP, IXGBE_ERR_SFP_NOT_SUPPORTED, IXGBE_ESDP, IXGBE_ESDP_SDP0_DIR, ixgbe_get_copper_link_capabilities_generic(), ixgbe_get_phy_firmware_version_tnx(), ixgbe_init_mac_link_ops_82599(), ixgbe_media_type_copper, ixgbe_phy_tn, ixgbe_read_i2c_byte_82599(), IXGBE_READ_REG, ixgbe_setup_copper_link_82599(), ixgbe_setup_phy_link_tnx(), ixgbe_sfp_type_unknown, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, ixgbe_write_i2c_byte_82599(), IXGBE_WRITE_REG, ixgbe_hw::mac, ixgbe_mac_info::ops, ixgbe_phy_info::ops, ixgbe_hw::phy, ixgbe_phy_info::qsfp_shared_i2c_bus, ixgbe_phy_operations::read_i2c_byte, ixgbe_phy_operations::reset, ixgbe_phy_operations::setup_link, ixgbe_mac_operations::setup_link, ixgbe_phy_info::sfp_type, ixgbe_phy_info::type, and ixgbe_phy_operations::write_i2c_byte.
Referenced by ixgbe_init_ops_82599().
ixgbe_read_analog_reg8_82599 - Reads 8 bit Omer analog register @hw: pointer to hardware structure @reg: analog register to read @val: read value
Performs read operation to Omer analog register specified.
Definition at line 2082 of file ixgbe_82599.c.
References DEBUGFUNC, IXGBE_CORECTL, IXGBE_CORECTL_WRITE_CMD, IXGBE_READ_REG, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and usec_delay.
Referenced by ixgbe_init_ops_82599().
ixgbe_read_eeprom_82599 - Read EEPROM word using fastest available method
@hw: pointer to hardware structure @offset: offset of word in the EEPROM to read @data: word read from the EEPROM
Reads a 16 bit word from the EEPROM
Definition at line 2457 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_hw::eeprom, ixgbe_eeprom_spi, IXGBE_EERD_MAX_ADDR, IXGBE_ERR_CONFIG, ixgbe_read_eeprom_bit_bang_generic(), ixgbe_read_eerd_generic(), and ixgbe_eeprom_info::type.
Referenced by ixgbe_init_ops_82599().
|
static |
ixgbe_read_eeprom_buffer_82599 - Read EEPROM word(s) using fastest available method
@hw: pointer to hardware structure @offset: offset of word in EEPROM to read @words: number of words @data: word(s) read from the EEPROM
Retrieves 16 bit word(s) read from EEPROM
Definition at line 2423 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_hw::eeprom, ixgbe_eeprom_spi, IXGBE_EERD_MAX_ADDR, IXGBE_ERR_CONFIG, ixgbe_read_eeprom_buffer_bit_bang_generic(), ixgbe_read_eerd_buffer_generic(), and ixgbe_eeprom_info::type.
Referenced by ixgbe_init_ops_82599().
|
static |
ixgbe_read_i2c_byte_82599 - Reads 8 bit word over I2C @hw: pointer to hardware structure @byte_offset: byte offset to read @dev_addr: address to read from @data: value read
Performs byte read operation to SFP module's EEPROM over I2C interface at a specified device address.
Definition at line 2539 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, IXGBE_ERR_I2C, IXGBE_ESDP, IXGBE_ESDP_SDP0, IXGBE_ESDP_SDP1, ixgbe_read_i2c_byte_generic(), IXGBE_READ_REG, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, msec_delay, ixgbe_hw::phy, and ixgbe_phy_info::qsfp_shared_i2c_bus.
Referenced by ixgbe_init_phy_ops_82599().
ixgbe_reinit_fdir_tables_82599 - Reinitialize Flow Director tables. @hw: pointer to hardware structure
Definition at line 1235 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, IXGBE_ERR_FDIR_REINIT_FAILED, ixgbe_fdir_check_cmd_complete(), IXGBE_FDIR_INIT_DONE_POLL, IXGBE_FDIRCMD, IXGBE_FDIRCMD_CLEARHT, IXGBE_FDIRCTRL, IXGBE_FDIRCTRL_INIT_DONE, IXGBE_FDIRFREE, IXGBE_FDIRFSTAT, IXGBE_FDIRHASH, IXGBE_FDIRLEN, IXGBE_FDIRMATCH, IXGBE_FDIRMISS, IXGBE_FDIRUSTAT, IXGBE_READ_REG, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and msec_delay.
ixgbe_reset_hw_82599 - Perform hardware reset @hw: pointer to hardware structure
Resets the hardware by resetting the transmit and receive units, masks and clears all interrupts, perform a PHY reset, and perform a link (MAC) reset.
Definition at line 1038 of file ixgbe_82599.c.
References ixgbe_mac_operations::check_link, ixgbe_mac_operations::clear_vmdq, DEBUGFUNC, DEBUGOUT, ixgbe_mac_info::flags, ixgbe_hw::force_full_reset, ixgbe_mac_operations::get_mac_addr, ixgbe_mac_operations::get_san_mac_addr, ixgbe_mac_operations::get_wwn_prefix, ixgbe_phy_operations::init, ixgbe_mac_operations::init_rx_addrs, IXGBE_AUTOC, IXGBE_AUTOC2, IXGBE_AUTOC2_LINK_DISABLE_MASK, IXGBE_AUTOC2_UPPER_MASK, IXGBE_AUTOC_LMS_MASK, ixgbe_clear_tx_pending(), IXGBE_CLEAR_VMDQ_ALL, IXGBE_CTRL, IXGBE_CTRL_LNK_RST, IXGBE_CTRL_RST, IXGBE_CTRL_RST_MASK, IXGBE_ERR_RESET_FAILED, IXGBE_ERR_SFP_NOT_SUPPORTED, IXGBE_FLAGS_DOUBLE_RESET_REQUIRED, ixgbe_mng_enabled(), IXGBE_RAH_AV, IXGBE_READ_REG, IXGBE_SUCCESS, ixgbe_validate_mac_addr(), IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, ixgbe_hw::mac, msec_delay, ixgbe_phy_info::multispeed_fiber, ixgbe_mac_info::num_rar_entries, ixgbe_mac_info::ops, ixgbe_phy_info::ops, ixgbe_mac_info::orig_autoc, ixgbe_mac_info::orig_autoc2, ixgbe_mac_info::orig_link_settings_stored, ixgbe_mac_info::perm_addr, ixgbe_hw::phy, ixgbe_mac_operations::prot_autoc_write, ixgbe_phy_operations::reset, ixgbe_phy_info::reset_disable, ixgbe_mac_info::san_addr, ixgbe_mac_info::san_mac_rar_index, ixgbe_mac_operations::set_rar, ixgbe_mac_operations::setup_sfp, ixgbe_phy_info::sfp_setup_needed, ixgbe_mac_operations::stop_adapter, usec_delay, ixgbe_hw::wol_enabled, ixgbe_mac_info::wwnn_prefix, and ixgbe_mac_info::wwpn_prefix.
Referenced by ixgbe_init_ops_82599().
ixgbe_reset_pipeline_82599 - perform pipeline reset
@hw: pointer to hardware structure
Reset pipeline by asserting Restart_AN together with LMS change to ensure full pipeline reset. This function assumes the SW/FW lock is held.
Definition at line 2486 of file ixgbe_82599.c.
References DEBUGOUT, IXGBE_ANLP1, IXGBE_ANLP1_AN_STATE_MASK, IXGBE_AUTOC, IXGBE_AUTOC2, IXGBE_AUTOC2_LINK_DISABLE_MASK, IXGBE_AUTOC_AN_RESTART, IXGBE_AUTOC_LMS_SHIFT, IXGBE_ERR_RESET_FAILED, IXGBE_READ_REG, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and msec_delay.
Referenced by ixgbe_start_mac_link_82599(), and prot_autoc_write_82599().
ixgbe_set_fdir_drop_queue_82599 - Set Flow Director drop queue @hw: pointer to hardware structure @dropqueue: Rx queue index used for the dropped packets
Definition at line 1415 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_fdir_enable_82599(), IXGBE_FDIRCMD, IXGBE_FDIRCMD_CLEARHT, IXGBE_FDIRCTRL, IXGBE_FDIRCTRL_DROP_NO_MATCH, IXGBE_FDIRCTRL_DROP_Q_MASK, IXGBE_FDIRCTRL_DROP_Q_SHIFT, IXGBE_FDIRCTRL_INIT_DONE, ixgbe_mac_X550, ixgbe_mac_X550EM_a, ixgbe_mac_X550EM_x, IXGBE_READ_REG, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, ixgbe_hw::mac, and ixgbe_mac_info::type.
void ixgbe_set_hard_rate_select_speed | ( | struct ixgbe_hw * | hw, |
ixgbe_link_speed | speed | ||
) |
ixgbe_set_hard_rate_select_speed - Set module link speed @hw: pointer to hardware structure @speed: link speed to set
Set module link speed via RS0/RS1 rate select pins.
Definition at line 753 of file ixgbe_82599.c.
References DEBUGOUT, IXGBE_ESDP, IXGBE_ESDP_SDP5, IXGBE_ESDP_SDP5_DIR, IXGBE_LINK_SPEED_10GB_FULL, IXGBE_LINK_SPEED_1GB_FULL, IXGBE_READ_REG, IXGBE_WRITE_FLUSH, and IXGBE_WRITE_REG.
Referenced by ixgbe_init_mac_link_ops_82599().
|
static |
ixgbe_setup_copper_link_82599 - Set the PHY autoneg advertised field @hw: pointer to hardware structure @speed: new link speed @autoneg_wait_to_complete: true if waiting is needed to complete
Restarts link on PHY and MAC based on settings passed in.
Definition at line 1013 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_start_mac_link_82599(), ixgbe_phy_info::ops, ixgbe_hw::phy, and ixgbe_phy_operations::setup_link_speed.
Referenced by ixgbe_init_phy_ops_82599().
s32 ixgbe_setup_mac_link_82599 | ( | struct ixgbe_hw * | hw, |
ixgbe_link_speed | speed, | ||
bool | autoneg_wait_to_complete | ||
) |
ixgbe_setup_mac_link_82599 - Set MAC link speed @hw: pointer to hardware structure @speed: new link speed @autoneg_wait_to_complete: true when waiting for completion is needed
Set the link speed in the AUTOC register and restarts link.
Definition at line 895 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, IXGBE_AUTO_NEG_TIME, IXGBE_AUTOC, IXGBE_AUTOC2, IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK, IXGBE_AUTOC2_10G_SFI, IXGBE_AUTOC_1G_PMA_PMD_MASK, IXGBE_AUTOC_1G_SFI, IXGBE_AUTOC_KR_SUPP, IXGBE_AUTOC_KX4_KX_SUPP_MASK, IXGBE_AUTOC_KX4_SUPP, IXGBE_AUTOC_KX_SUPP, IXGBE_AUTOC_LMS_10G_SERIAL, IXGBE_AUTOC_LMS_1G_AN, IXGBE_AUTOC_LMS_1G_LINK_NO_AN, IXGBE_AUTOC_LMS_KX4_KX_KR, IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN, IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII, IXGBE_AUTOC_LMS_MASK, IXGBE_ERR_AUTONEG_NOT_COMPLETE, IXGBE_ERR_LINK_SETUP, ixgbe_get_link_capabilities(), IXGBE_LINK_SPEED_10GB_FULL, IXGBE_LINK_SPEED_1GB_FULL, IXGBE_LINK_SPEED_UNKNOWN, IXGBE_LINKS, IXGBE_LINKS_KX_AN_COMP, ixgbe_phy_qsfp_intel, IXGBE_READ_REG, IXGBE_SUCCESS, ixgbe_hw::mac, msec_delay, ixgbe_mac_info::ops, ixgbe_mac_info::orig_autoc, ixgbe_mac_info::orig_link_settings_stored, ixgbe_hw::phy, ixgbe_mac_operations::prot_autoc_write, ixgbe_phy_info::smart_speed_active, and ixgbe_phy_info::type.
Referenced by ixgbe_init_mac_link_ops_82599(), and ixgbe_setup_mac_link_smartspeed().
s32 ixgbe_setup_mac_link_smartspeed | ( | struct ixgbe_hw * | hw, |
ixgbe_link_speed | speed, | ||
bool | autoneg_wait_to_complete | ||
) |
ixgbe_setup_mac_link_smartspeed - Set MAC link speed using SmartSpeed @hw: pointer to hardware structure @speed: new link speed @autoneg_wait_to_complete: true when waiting for completion is needed
Implements the Intel SmartSpeed algorithm.
Definition at line 783 of file ixgbe_82599.c.
References ixgbe_phy_info::autoneg_advertised, DEBUGFUNC, DEBUGOUT, IXGBE_AUTOC, IXGBE_AUTOC_KR_SUPP, IXGBE_AUTOC_KX4_KX_SUPP_MASK, ixgbe_check_link(), IXGBE_LINK_SPEED_100_FULL, IXGBE_LINK_SPEED_10GB_FULL, IXGBE_LINK_SPEED_1GB_FULL, IXGBE_LINK_SPEED_UNKNOWN, IXGBE_READ_REG, ixgbe_setup_mac_link_82599(), IXGBE_SMARTSPEED_MAX_RETRIES, IXGBE_SUCCESS, msec_delay, ixgbe_hw::phy, and ixgbe_phy_info::smart_speed_active.
Referenced by ixgbe_init_mac_link_ops_82599().
Definition at line 174 of file ixgbe_82599.c.
References ixgbe_mac_operations::acquire_swfw_sync, DEBUGFUNC, DEBUGOUT, ixgbe_hw::eeprom, ERROR_REPORT2, IXGBE_AUTOC_LMS_10G_SERIAL, IXGBE_CORECTL, IXGBE_ERR_PHY, IXGBE_ERR_SFP_SETUP_NOT_COMPLETE, IXGBE_ERR_SWFW_SYNC, IXGBE_ERROR_INVALID_STATE, ixgbe_get_sfp_init_sequence_offsets(), IXGBE_GSSR_MAC_CSR_SM, ixgbe_init_mac_link_ops_82599(), ixgbe_sfp_type_unknown, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, ixgbe_hw::mac, msec_delay, ixgbe_eeprom_info::ops, ixgbe_mac_info::ops, ixgbe_phy_info::ops, ixgbe_mac_info::orig_autoc, ixgbe_hw::phy, ixgbe_mac_operations::prot_autoc_write, ixgbe_eeprom_operations::read, ixgbe_mac_operations::release_swfw_sync, ixgbe_phy_operations::reset, ixgbe_eeprom_info::semaphore_delay, and ixgbe_phy_info::sfp_type.
Referenced by ixgbe_init_ops_82599().
ixgbe_start_hw_82599 - Prepare hardware for Tx/Rx @hw: pointer to hardware structure
Starts the hardware using the generic start_hw function and the generation start_hw function. Then performs revision-specific operations, if any.
Definition at line 2128 of file ixgbe_82599.c.
References ixgbe_mac_info::autotry_restart, DEBUGFUNC, ixgbe_start_hw_gen2(), ixgbe_start_hw_generic(), IXGBE_SUCCESS, ixgbe_verify_fw_version_82599(), and ixgbe_hw::mac.
Referenced by ixgbe_init_ops_82599().
ixgbe_start_mac_link_82599 - Setup MAC link settings @hw: pointer to hardware structure @autoneg_wait_to_complete: true when waiting for completion is needed
Configures link settings based on values in the ixgbe_hw struct. Restarts the link. Performs autonegotiation if needed.
Definition at line 617 of file ixgbe_82599.c.
References ixgbe_mac_operations::acquire_swfw_sync, DEBUGFUNC, DEBUGOUT, IXGBE_AUTO_NEG_TIME, IXGBE_AUTOC, IXGBE_AUTOC_LMS_KX4_KX_KR, IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN, IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII, IXGBE_AUTOC_LMS_MASK, IXGBE_ERR_AUTONEG_NOT_COMPLETE, IXGBE_GSSR_MAC_CSR_SM, IXGBE_LINKS, IXGBE_LINKS_KX_AN_COMP, IXGBE_READ_REG, ixgbe_reset_pipeline_82599(), IXGBE_SUCCESS, ixgbe_verify_lesm_fw_enabled_82599(), ixgbe_hw::mac, msec_delay, ixgbe_mac_info::ops, and ixgbe_mac_operations::release_swfw_sync.
Referenced by ixgbe_setup_copper_link_82599().
void ixgbe_stop_mac_link_on_d3_82599 | ( | struct ixgbe_hw * | hw | ) |
ixgbe_stop_mac_link_on_d3_82599 - Disables link on D3 @hw: pointer to hardware structure
Disables link during D3 power down sequence.
Definition at line 593 of file ixgbe_82599.c.
References DEBUGFUNC, IXGBE_AUTOC2, IXGBE_AUTOC2_LINK_DISABLE_ON_D3_MASK, IXGBE_EEPROM_CCD_BIT, IXGBE_EEPROM_CTRL_2, ixgbe_mng_present(), ixgbe_read_eeprom(), IXGBE_READ_REG, IXGBE_WRITE_REG, and ixgbe_hw::wol_enabled.
Referenced by ixgbe_if_stop().
ixgbe_verify_fw_version_82599 - verify FW version for 82599 @hw: pointer to hardware structure
Verifies that installed the firmware version is 0.6 or higher for SFI devices. All 82599 SFI devices should have version 0.6 or higher.
Returns IXGBE_ERR_EEPROM_VERSION if the FW is not present or if the FW version is not supported.
Definition at line 2314 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_hw::eeprom, ERROR_REPORT2, IXGBE_ERR_EEPROM_VERSION, IXGBE_ERROR_INVALID_STATE, IXGBE_FW_PASSTHROUGH_PATCH_CONFIG_PTR, IXGBE_FW_PATCH_VERSION_4, IXGBE_FW_PTR, ixgbe_media_type_fiber, IXGBE_SUCCESS, ixgbe_phy_info::media_type, ixgbe_eeprom_info::ops, ixgbe_hw::phy, and ixgbe_eeprom_operations::read.
Referenced by ixgbe_start_hw_82599().
ixgbe_verify_lesm_fw_enabled_82599 - Checks LESM FW module state. @hw: pointer to hardware structure
Returns true if the LESM FW module is present and enabled. Otherwise returns false. Smart Speed must be disabled if LESM FW module is enabled.
Definition at line 2375 of file ixgbe_82599.c.
References DEBUGFUNC, ixgbe_hw::eeprom, IXGBE_FW_LESM_PARAMETERS_PTR, IXGBE_FW_LESM_STATE_1, IXGBE_FW_LESM_STATE_ENABLED, IXGBE_FW_PTR, IXGBE_SUCCESS, ixgbe_eeprom_info::ops, and ixgbe_eeprom_operations::read.
Referenced by ixgbe_init_mac_link_ops_82599(), ixgbe_start_mac_link_82599(), prot_autoc_read_82599(), and prot_autoc_write_82599().
ixgbe_write_analog_reg8_82599 - Writes 8 bit Omer analog register @hw: pointer to hardware structure @reg: atlas register to write @val: value to write
Performs write operation to Omer analog register specified.
Definition at line 2106 of file ixgbe_82599.c.
References DEBUGFUNC, IXGBE_CORECTL, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and usec_delay.
Referenced by ixgbe_init_ops_82599().
|
static |
ixgbe_write_i2c_byte_82599 - Writes 8 bit word over I2C @hw: pointer to hardware structure @byte_offset: byte offset to write @dev_addr: address to read from @data: value to write
Performs byte write operation to SFP module's EEPROM over I2C interface at a specified device address.
Definition at line 2597 of file ixgbe_82599.c.
References DEBUGFUNC, DEBUGOUT, IXGBE_ERR_I2C, IXGBE_ESDP, IXGBE_ESDP_SDP0, IXGBE_ESDP_SDP1, IXGBE_READ_REG, IXGBE_WRITE_FLUSH, ixgbe_write_i2c_byte_generic(), IXGBE_WRITE_REG, msec_delay, ixgbe_hw::phy, and ixgbe_phy_info::qsfp_shared_i2c_bus.
Referenced by ixgbe_init_phy_ops_82599().
prot_autoc_read_82599 - Hides MAC differences needed for AUTOC read @hw: pointer to hardware structure @locked: Return the if we locked for this read. @reg_val: Value we read from AUTOC
For this part (82599) we need to wrap read-modify-writes with a possible FW/SW lock. It is assumed this lock will be freed with the next prot_autoc_write_82599().
Definition at line 251 of file ixgbe_82599.c.
References ixgbe_mac_operations::acquire_swfw_sync, IXGBE_AUTOC, IXGBE_ERR_SWFW_SYNC, IXGBE_GSSR_MAC_CSR_SM, IXGBE_READ_REG, IXGBE_SUCCESS, ixgbe_verify_lesm_fw_enabled_82599(), ixgbe_hw::mac, and ixgbe_mac_info::ops.
Referenced by ixgbe_init_ops_82599().
prot_autoc_write_82599 - Hides MAC differences needed for AUTOC write @hw: pointer to hardware structure @autoc: value to write to AUTOC @locked: bool to indicate whether the SW/FW lock was already taken by previous proc_autoc_read_82599.
This part (82599) may need to hold the SW/FW lock around all writes to AUTOC. Likewise after a write we need to do a pipeline reset.
Definition at line 280 of file ixgbe_82599.c.
References ixgbe_mac_operations::acquire_swfw_sync, IXGBE_AUTOC, ixgbe_check_reset_blocked(), IXGBE_ERR_SWFW_SYNC, IXGBE_GSSR_MAC_CSR_SM, ixgbe_reset_pipeline_82599(), IXGBE_SUCCESS, ixgbe_verify_lesm_fw_enabled_82599(), IXGBE_WRITE_REG, ixgbe_hw::mac, ixgbe_mac_info::ops, and ixgbe_mac_operations::release_swfw_sync.
Referenced by ixgbe_init_ops_82599().