FreeBSD kernel IXGBE device code
ixgbe_82598.h File Reference
This graph shows which files directly or indirectly include this file:

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)
 

Function Documentation

◆ ixgbe_enable_relaxed_ordering_82598()

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().

Here is the caller graph for this function:

◆ ixgbe_enable_rx_dma_82598()

s32 ixgbe_enable_rx_dma_82598 ( struct ixgbe_hw hw,
u32  regval 
)

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().

Here is the caller graph for this function:

◆ ixgbe_fc_enable_82598()

◆ ixgbe_get_pcie_msix_count_82598()

u32 ixgbe_get_pcie_msix_count_82598 ( struct ixgbe_hw hw)

◆ ixgbe_get_supported_physical_layer_82598()

u64 ixgbe_get_supported_physical_layer_82598 ( struct ixgbe_hw hw)

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().

Here is the caller graph for this function:

◆ ixgbe_init_phy_ops_82598()

◆ ixgbe_read_analog_reg8_82598()

s32 ixgbe_read_analog_reg8_82598 ( struct ixgbe_hw hw,
u32  reg,
u8 val 
)

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().

Here is the caller graph for this function:

◆ ixgbe_read_i2c_eeprom_82598()

s32 ixgbe_read_i2c_eeprom_82598 ( struct ixgbe_hw hw,
u8  byte_offset,
u8 eeprom_data 
)

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixgbe_set_lan_id_multi_port_pcie_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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixgbe_set_pcie_completion_timeout()

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().

Here is the caller graph for this function:

◆ ixgbe_set_vfta_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().

Here is the caller graph for this function:

◆ ixgbe_set_vmdq_82598()

s32 ixgbe_set_vmdq_82598 ( struct ixgbe_hw hw,
u32  rar,
u32  vmdq 
)

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().

Here is the caller graph for this function:

◆ ixgbe_start_hw_82598()

s32 ixgbe_start_hw_82598 ( struct ixgbe_hw hw)

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ixgbe_write_analog_reg8_82598()

s32 ixgbe_write_analog_reg8_82598 ( struct ixgbe_hw hw,
u32  reg,
u8  val 
)

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().

Here is the caller graph for this function: