FreeBSD kernel IXGBE device code
|
Go to the source code of this file.
Functions | |
u32 | ixgbe_get_pcie_msix_count_82598 (struct ixgbe_hw *hw) |
s32 | ixgbe_fc_enable_82598 (struct ixgbe_hw *hw) |
s32 | ixgbe_start_hw_82598 (struct ixgbe_hw *hw) |
void | ixgbe_enable_relaxed_ordering_82598 (struct ixgbe_hw *hw) |
s32 | ixgbe_set_vmdq_82598 (struct ixgbe_hw *hw, u32 rar, u32 vmdq) |
s32 | ixgbe_set_vfta_82598 (struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on, bool vlvf_bypass) |
s32 | ixgbe_read_analog_reg8_82598 (struct ixgbe_hw *hw, u32 reg, u8 *val) |
s32 | ixgbe_write_analog_reg8_82598 (struct ixgbe_hw *hw, u32 reg, u8 val) |
s32 | ixgbe_read_i2c_eeprom_82598 (struct ixgbe_hw *hw, u8 byte_offset, u8 *eeprom_data) |
u64 | ixgbe_get_supported_physical_layer_82598 (struct ixgbe_hw *hw) |
s32 | ixgbe_init_phy_ops_82598 (struct ixgbe_hw *hw) |
void | ixgbe_set_lan_id_multi_port_pcie_82598 (struct ixgbe_hw *hw) |
void | ixgbe_set_pcie_completion_timeout (struct ixgbe_hw *hw) |
s32 | ixgbe_enable_rx_dma_82598 (struct ixgbe_hw *hw, u32 regval) |
void ixgbe_enable_relaxed_ordering_82598 | ( | struct ixgbe_hw * | hw | ) |
ixgbe_enable_relaxed_ordering_82598 - enable relaxed ordering @hw: pointer to hardware structure
Definition at line 1363 of file ixgbe_82598.c.
References DEBUGFUNC, IXGBE_DCA_MAX_QUEUES_82598, IXGBE_DCA_RXCTRL, IXGBE_DCA_RXCTRL_DATA_WRO_EN, IXGBE_DCA_RXCTRL_HEAD_WRO_EN, IXGBE_DCA_TXCTRL, IXGBE_DCA_TXCTRL_DESC_WRO_EN, IXGBE_READ_REG, IXGBE_WRITE_REG, ixgbe_hw::mac, ixgbe_mac_info::max_rx_queues, and ixgbe_mac_info::max_tx_queues.
Referenced by ixgbe_init_ops_82598().
ixgbe_enable_rx_dma_82598 - Enable the Rx DMA unit @hw: pointer to hardware structure @regval: register value to write to RXCTRL
Enables the Rx DMA unit
Definition at line 1435 of file ixgbe_82598.c.
References DEBUGFUNC, IXGBE_RXCTRL, IXGBE_SUCCESS, and IXGBE_WRITE_REG.
Referenced by ixgbe_init_ops_82598().
ixgbe_fc_enable_82598 - Enable flow control @hw: pointer to hardware structure
Enable flow control according to the current settings.
Definition at line 409 of file ixgbe_82598.c.
References ixgbe_mac_operations::check_link, ixgbe_fc_info::current_mode, DEBUGFUNC, DEBUGOUT, ixgbe_hw::fc, ixgbe_fc_info::high_water, IXGBE_DCB_MAX_TRAFFIC_CLASS, IXGBE_ERR_CONFIG, IXGBE_ERR_INVALID_LINK_SETTINGS, ixgbe_fc_autoneg(), ixgbe_fc_full, ixgbe_fc_none, ixgbe_fc_rx_pause, ixgbe_fc_tx_pause, IXGBE_FCRTH, IXGBE_FCRTH_FCEN, IXGBE_FCRTL, IXGBE_FCRTL_XONE, IXGBE_FCRTV, IXGBE_FCTRL, IXGBE_FCTRL_DPF, IXGBE_FCTRL_RFCE, IXGBE_FCTRL_RPFCE, IXGBE_FCTTV, IXGBE_LINK_SPEED_1GB_FULL, IXGBE_READ_REG, IXGBE_RMCS, IXGBE_RMCS_TFCE_802_3X, IXGBE_RMCS_TFCE_PRIORITY, IXGBE_SUCCESS, IXGBE_WRITE_REG, ixgbe_fc_info::low_water, ixgbe_hw::mac, ixgbe_mac_info::ops, ixgbe_fc_info::pause_time, and ixgbe_fc_info::requested_mode.
Referenced by ixgbe_init_ops_82598().
ixgbe_get_supported_physical_layer_82598 - Returns physical layer type @hw: pointer to hardware structure
Determines physical layer capabilities of the current configuration.
Definition at line 1228 of file ixgbe_82598.c.
References DEBUGFUNC, ixgbe_hw::device_id, ixgbe_phy_operations::identify, ixgbe_phy_operations::identify_sfp, IXGBE_AUTOC, IXGBE_AUTOC_10G_CX4, IXGBE_AUTOC_10G_KX4, IXGBE_AUTOC_10G_PMA_PMD_MASK, IXGBE_AUTOC_1G_KX, IXGBE_AUTOC_1G_PMA_PMD_MASK, IXGBE_AUTOC_KX4_SUPP, IXGBE_AUTOC_KX_SUPP, IXGBE_AUTOC_LMS_10G_LINK_NO_AN, IXGBE_AUTOC_LMS_1G_AN, IXGBE_AUTOC_LMS_1G_LINK_NO_AN, IXGBE_AUTOC_LMS_KX4_AN, IXGBE_AUTOC_LMS_KX4_AN_1G_AN, IXGBE_AUTOC_LMS_MASK, IXGBE_DEV_ID_82598_DA_DUAL_PORT, IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM, IXGBE_DEV_ID_82598AF_DUAL_PORT, IXGBE_DEV_ID_82598AF_SINGLE_PORT, IXGBE_DEV_ID_82598EB_XF_LR, 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_nl, 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_KX4, IXGBE_PHYSICAL_LAYER_10GBASE_LR, IXGBE_PHYSICAL_LAYER_10GBASE_SR, IXGBE_PHYSICAL_LAYER_10GBASE_T, IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU, IXGBE_PHYSICAL_LAYER_UNKNOWN, IXGBE_READ_REG, ixgbe_sfp_type_da_cu, ixgbe_sfp_type_lr, ixgbe_sfp_type_sr, ixgbe_phy_info::ops, ixgbe_hw::phy, ixgbe_phy_operations::read_reg, ixgbe_phy_info::sfp_type, and ixgbe_phy_info::type.
Referenced by ixgbe_init_ops_82598().
ixgbe_init_phy_ops_82598 - 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 192 of file ixgbe_82598.c.
References ixgbe_phy_operations::check_link, DEBUGFUNC, ixgbe_phy_operations::get_firmware_version, ixgbe_mac_operations::get_link_capabilities, ixgbe_mac_operations::get_media_type, ixgbe_phy_operations::identify, ixgbe_phy_operations::identify_sfp, ixgbe_check_phy_link_tnx(), IXGBE_ERR_SFP_NOT_SUPPORTED, ixgbe_get_copper_link_capabilities_generic(), ixgbe_get_phy_firmware_version_tnx(), ixgbe_get_sfp_init_sequence_offsets(), ixgbe_media_type_copper, ixgbe_phy_nl, ixgbe_phy_tn, ixgbe_reset_phy_nl(), ixgbe_setup_copper_link_82598(), ixgbe_setup_phy_link_tnx(), ixgbe_sfp_type_unknown, IXGBE_SUCCESS, ixgbe_hw::mac, ixgbe_mac_info::ops, ixgbe_phy_info::ops, ixgbe_hw::phy, ixgbe_phy_operations::reset, ixgbe_phy_operations::setup_link, ixgbe_mac_operations::setup_link, ixgbe_phy_info::sfp_type, and ixgbe_phy_info::type.
Referenced by ixgbe_init_ops_82598().
ixgbe_read_analog_reg8_82598 - Reads 8 bit Atlas analog register @hw: pointer to hardware structure @reg: analog register to read @val: read value
Performs read operation to Atlas analog register specified.
Definition at line 1080 of file ixgbe_82598.c.
References DEBUGFUNC, IXGBE_ATLASCTL, IXGBE_ATLASCTL_WRITE_CMD, IXGBE_READ_REG, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and usec_delay.
Referenced by ixgbe_init_ops_82598().
ixgbe_read_i2c_eeprom_82598 - Reads 8 bit word over I2C interface. @hw: pointer to hardware structure @byte_offset: EEPROM byte offset to read @eeprom_data: value read
Performs 8 byte read operation to SFP module's EEPROM over I2C interface.
Definition at line 1200 of file ixgbe_82598.c.
References IXGBE_I2C_EEPROM_DEV_ADDR, and ixgbe_read_i2c_phy_82598().
Referenced by ixgbe_init_ops_82598().
void ixgbe_set_lan_id_multi_port_pcie_82598 | ( | struct ixgbe_hw * | hw | ) |
ixgbe_set_lan_id_multi_port_pcie_82598 - Set LAN id for PCIe multiple port devices. @hw: pointer to the HW structure
Calls common function and corrects issue with some single port devices that enable LAN1 but not LAN0.
Definition at line 1332 of file ixgbe_82598.c.
References ixgbe_hw::bus, DEBUGFUNC, ixgbe_hw::eeprom, ixgbe_bus_info::func, IXGBE_PCIE_CTRL2, IXGBE_PCIE_CTRL2_DISABLE_SELECT, IXGBE_PCIE_CTRL2_DUMMY_ENABLE, IXGBE_PCIE_CTRL2_LAN_DISABLE, IXGBE_PCIE_GENERAL_PTR, ixgbe_set_lan_id_multi_port_pcie(), ixgbe_eeprom_info::ops, and ixgbe_eeprom_operations::read.
Referenced by ixgbe_init_ops_82598().
void ixgbe_set_pcie_completion_timeout | ( | struct ixgbe_hw * | hw | ) |
ixgbe_set_pcie_completion_timeout - set pci-e completion timeout @hw: pointer to the HW structure
The defaults for 82598 should be in the range of 50us to 50ms, however the hardware default for these parts is 500us to 1ms which is less than the 10ms recommended by the pci-e spec. To address this we need to increase the value to either 10ms to 250ms for capability version 1 config, or 16ms to 55ms for version 2.
Definition at line 81 of file ixgbe_82598.c.
References IXGBE_GCR, IXGBE_GCR_CAP_VER2, IXGBE_GCR_CMPL_TMOUT_10ms, IXGBE_GCR_CMPL_TMOUT_MASK, IXGBE_PCI_DEVICE_CONTROL2, IXGBE_PCI_DEVICE_CONTROL2_16ms, IXGBE_READ_PCIE_WORD, IXGBE_READ_REG, IXGBE_WRITE_PCIE_WORD, and IXGBE_WRITE_REG.
Referenced by ixgbe_start_hw_82598().
s32 ixgbe_set_vfta_82598 | ( | struct ixgbe_hw * | hw, |
u32 | vlan, | ||
u32 | vind, | ||
bool | vlan_on, | ||
bool | vlvf_bypass | ||
) |
ixgbe_set_vfta_82598 - Set VLAN filter table @hw: pointer to hardware structure @vlan: VLAN id to write to VLAN filter @vind: VMDq output index that maps queue to VLAN id in VFTA @vlan_on: boolean flag to turn on/off VLAN in VFTA @vlvf_bypass: boolean flag - unused
Turn on/off specified VLAN in the VLAN filter table.
Definition at line 1005 of file ixgbe_82598.c.
References DEBUGFUNC, IXGBE_ERR_PARAM, IXGBE_READ_REG, IXGBE_SUCCESS, IXGBE_VFTA, IXGBE_VFTAVIND, IXGBE_WRITE_REG, and UNREFERENCED_1PARAMETER.
Referenced by ixgbe_init_ops_82598().
ixgbe_set_vmdq_82598 - Associate a VMDq set index with a rx address @hw: pointer to hardware struct @rar: receive address register index to associate with a VMDq index @vmdq: VMDq set index
Definition at line 947 of file ixgbe_82598.c.
References DEBUGFUNC, DEBUGOUT1, IXGBE_ERR_INVALID_ARGUMENT, IXGBE_RAH, IXGBE_RAH_VIND_MASK, IXGBE_RAH_VIND_SHIFT, IXGBE_READ_REG, IXGBE_SUCCESS, IXGBE_WRITE_REG, ixgbe_hw::mac, and ixgbe_mac_info::num_rar_entries.
Referenced by ixgbe_init_ops_82598().
ixgbe_start_hw_82598 - Prepare hardware for Tx/Rx @hw: pointer to hardware structure
Starts the hardware using the generic start_hw function. Disables relaxed ordering Then set pcie completion timeout
Definition at line 255 of file ixgbe_82598.c.
References DEBUGFUNC, IXGBE_DCA_MAX_QUEUES_82598, IXGBE_DCA_RXCTRL, IXGBE_DCA_RXCTRL_DATA_WRO_EN, IXGBE_DCA_RXCTRL_HEAD_WRO_EN, IXGBE_DCA_TXCTRL, IXGBE_READ_REG, ixgbe_set_pcie_completion_timeout(), ixgbe_start_hw_generic(), IXGBE_SUCCESS, IXGBE_WRITE_REG, ixgbe_hw::mac, ixgbe_mac_info::max_rx_queues, and ixgbe_mac_info::max_tx_queues.
Referenced by ixgbe_init_ops_82598().
ixgbe_write_analog_reg8_82598 - Writes 8 bit Atlas analog register @hw: pointer to hardware structure @reg: atlas register to write @val: value to write
Performs write operation to Atlas analog register specified.
Definition at line 1104 of file ixgbe_82598.c.
References DEBUGFUNC, IXGBE_ATLASCTL, IXGBE_SUCCESS, IXGBE_WRITE_FLUSH, IXGBE_WRITE_REG, and usec_delay.
Referenced by ixgbe_init_ops_82598().