Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/ixl/if_ixl.c
Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | |||||
#ifdef PCI_IOV | #ifdef PCI_IOV | ||||
#include "ixl_pf_iov.h" | #include "ixl_pf_iov.h" | ||||
#endif | #endif | ||||
/********************************************************************* | /********************************************************************* | ||||
* Driver version | * Driver version | ||||
*********************************************************************/ | *********************************************************************/ | ||||
#define IXL_DRIVER_VERSION_MAJOR 2 | #define IXL_DRIVER_VERSION_MAJOR 2 | ||||
#define IXL_DRIVER_VERSION_MINOR 2 | #define IXL_DRIVER_VERSION_MINOR 3 | ||||
#define IXL_DRIVER_VERSION_BUILD 0 | #define IXL_DRIVER_VERSION_BUILD 0 | ||||
#define IXL_DRIVER_VERSION_STRING \ | #define IXL_DRIVER_VERSION_STRING \ | ||||
__XSTRING(IXL_DRIVER_VERSION_MAJOR) "." \ | __XSTRING(IXL_DRIVER_VERSION_MAJOR) "." \ | ||||
__XSTRING(IXL_DRIVER_VERSION_MINOR) "." \ | __XSTRING(IXL_DRIVER_VERSION_MINOR) "." \ | ||||
__XSTRING(IXL_DRIVER_VERSION_BUILD) "-k" | __XSTRING(IXL_DRIVER_VERSION_BUILD) "-k" | ||||
/********************************************************************* | /********************************************************************* | ||||
Show All 17 Lines | static pci_vendor_info_t ixl_vendor_info_array[] = | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_KX_X722, "Intel(R) Ethernet Connection X722 for 10GbE backplane"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_KX_X722, "Intel(R) Ethernet Connection X722 for 10GbE backplane"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_QSFP_X722, "Intel(R) Ethernet Connection X722 for 10GbE QSFP+"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_QSFP_X722, "Intel(R) Ethernet Connection X722 for 10GbE QSFP+"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_SFP_X722, "Intel(R) Ethernet Connection X722 for 10GbE SFP+"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_SFP_X722, "Intel(R) Ethernet Connection X722 for 10GbE SFP+"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_1G_BASE_T_X722, "Intel(R) Ethernet Connection X722 for 1GbE"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_1G_BASE_T_X722, "Intel(R) Ethernet Connection X722 for 1GbE"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_BASE_T_X722, "Intel(R) Ethernet Connection X722 for 10GBASE-T"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_BASE_T_X722, "Intel(R) Ethernet Connection X722 for 10GBASE-T"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_SFP_I_X722, "Intel(R) Ethernet Connection X722 for 10GbE SFP+"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_SFP_I_X722, "Intel(R) Ethernet Connection X722 for 10GbE SFP+"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_25G_B, "Intel(R) Ethernet Controller XXV710 for 25GbE backplane"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_25G_B, "Intel(R) Ethernet Controller XXV710 for 25GbE backplane"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_25G_SFP28, "Intel(R) Ethernet Controller XXV710 for 25GbE SFP28"), | PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_25G_SFP28, "Intel(R) Ethernet Controller XXV710 for 25GbE SFP28"), | ||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_BASE_T_BC, "Intel(R) Ethernet Controller X710 for 10GBASE-T"), | |||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_SFP, "Intel(R) Ethernet Controller X710 for 10GbE SFP+"), | |||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_B, "Intel(R) Ethernet Controller X710 for 10GbE backplane"), | |||||
PVIDV(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_5G_BASE_T_BC, "Intel(R) Ethernet Controller V710 for 5GBASE-T"), | |||||
/* required last entry */ | /* required last entry */ | ||||
PVID_END | PVID_END | ||||
}; | }; | ||||
/********************************************************************* | /********************************************************************* | ||||
* Function prototypes | * Function prototypes | ||||
*********************************************************************/ | *********************************************************************/ | ||||
/*** IFLIB interface ***/ | /*** IFLIB interface ***/ | ||||
▲ Show 20 Lines • Show All 501 Lines • ▼ Show 20 Lines | ixl_if_attach_pre(if_ctx_t ctx) | ||||
/* Disable LLDP from the firmware for certain NVM versions */ | /* Disable LLDP from the firmware for certain NVM versions */ | ||||
if (((pf->hw.aq.fw_maj_ver == 4) && (pf->hw.aq.fw_min_ver < 3)) || | if (((pf->hw.aq.fw_maj_ver == 4) && (pf->hw.aq.fw_min_ver < 3)) || | ||||
(pf->hw.aq.fw_maj_ver < 4)) { | (pf->hw.aq.fw_maj_ver < 4)) { | ||||
i40e_aq_stop_lldp(hw, true, false, NULL); | i40e_aq_stop_lldp(hw, true, false, NULL); | ||||
pf->state |= IXL_PF_STATE_FW_LLDP_DISABLED; | pf->state |= IXL_PF_STATE_FW_LLDP_DISABLED; | ||||
} | } | ||||
/* Try enabling Energy Efficient Ethernet (EEE) mode */ | |||||
if (i40e_enable_eee(hw, true) == I40E_SUCCESS) | |||||
atomic_set_32(&pf->state, IXL_PF_STATE_EEE_ENABLED); | |||||
else | |||||
atomic_clear_32(&pf->state, IXL_PF_STATE_EEE_ENABLED); | |||||
/* Get MAC addresses from hardware */ | /* Get MAC addresses from hardware */ | ||||
i40e_get_mac_addr(hw, hw->mac.addr); | i40e_get_mac_addr(hw, hw->mac.addr); | ||||
error = i40e_validate_mac_addr(hw->mac.addr); | error = i40e_validate_mac_addr(hw->mac.addr); | ||||
if (error) { | if (error) { | ||||
device_printf(dev, "validate_mac_addr failed: %d\n", error); | device_printf(dev, "validate_mac_addr failed: %d\n", error); | ||||
goto err_mac_hmc; | goto err_mac_hmc; | ||||
} | } | ||||
bcopy(hw->mac.addr, hw->mac.perm_addr, ETHER_ADDR_LEN); | bcopy(hw->mac.addr, hw->mac.perm_addr, ETHER_ADDR_LEN); | ||||
▲ Show 20 Lines • Show All 875 Lines • ▼ Show 20 Lines | switch (hw->phy.link_info.phy_type) { | ||||
case I40E_PHY_TYPE_1000BASE_SX: | case I40E_PHY_TYPE_1000BASE_SX: | ||||
ifmr->ifm_active |= IFM_1000_SX; | ifmr->ifm_active |= IFM_1000_SX; | ||||
break; | break; | ||||
case I40E_PHY_TYPE_1000BASE_LX: | case I40E_PHY_TYPE_1000BASE_LX: | ||||
ifmr->ifm_active |= IFM_1000_LX; | ifmr->ifm_active |= IFM_1000_LX; | ||||
break; | break; | ||||
case I40E_PHY_TYPE_1000BASE_T_OPTICAL: | case I40E_PHY_TYPE_1000BASE_T_OPTICAL: | ||||
ifmr->ifm_active |= IFM_1000_T; | ifmr->ifm_active |= IFM_1000_T; | ||||
break; | |||||
/* 2.5 G */ | |||||
case I40E_PHY_TYPE_2_5GBASE_T: | |||||
ifmr->ifm_active |= IFM_2500_T; | |||||
break; | |||||
/* 5 G */ | |||||
case I40E_PHY_TYPE_5GBASE_T: | |||||
ifmr->ifm_active |= IFM_5000_T; | |||||
break; | break; | ||||
/* 10 G */ | /* 10 G */ | ||||
case I40E_PHY_TYPE_10GBASE_SFPP_CU: | case I40E_PHY_TYPE_10GBASE_SFPP_CU: | ||||
ifmr->ifm_active |= IFM_10G_TWINAX; | ifmr->ifm_active |= IFM_10G_TWINAX; | ||||
break; | break; | ||||
case I40E_PHY_TYPE_10GBASE_SR: | case I40E_PHY_TYPE_10GBASE_SR: | ||||
ifmr->ifm_active |= IFM_10G_SR; | ifmr->ifm_active |= IFM_10G_SR; | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 345 Lines • Show Last 20 Lines |