Add initial support for Intel(R) E610 Series of network devices. The E610 is based on X550 but adds firmware managed link, enhanced security capabilities and support for updated server manageability.
This patch series adds low level support for the following features and enables link management. Piotr Kwapulinski (7): ixgbe: Add support for E610 FW Admin Command Interface ixgbe: Add support for E610 device capabilities detection ixgbe: Add link management support for E610 device ixgbe: Add support for NVM handling in E610 device ixgbe: Add ixgbe_x540 multiple header inclusion protection ixgbe: Clean up the E610 link management related code ixgbe: Enable link management in E610 device drivers/net/ethernet/intel/ixgbe/Makefile | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe.h | 14 +- .../net/ethernet/intel/ixgbe/ixgbe_82599.c | 3 +- .../net/ethernet/intel/ixgbe/ixgbe_common.c | 25 +- .../net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 3 +- drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c | 2579 +++++++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_e610.h | 76 + .../net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 3 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 437 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 5 +- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 72 +- .../ethernet/intel/ixgbe/ixgbe_type_e610.h | 1067 +++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 12 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.h | 7 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 29 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.h | 20 + 18 files changed, 4318 insertions(+), 48 deletions(-) create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_e610.h create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_x550.h -- V1 -> V2: - fix for no previous prototypes for ixgbe_set_fw_drv_ver_x550, ixgbe_set_ethertype_anti_spoofing_x550 and ixgbe_set_source_address_pruning_x550 - fix variable type mismatch: u16, u32, u64 - fix inaccurate doc for ixgbe_aci_desc - remove extra buffer allocation in ixgbe_aci_send_cmd_execute - replace custom loops with generic fls64 in ixgbe_get_media_type_e610 - add buffer caching and optimization in ixgbe_aci_send_cmd V2 -> V3: - revert ixgbe_set_eee_capable inlining - update copyright date V3 -> V4: - cleanup local variables in ixgbe_get_num_per_func - remove redundant casting in ixgbe_aci_disable_rxen V4 -> V5: - remove unnecessary structure members initialization - remove unnecessary casting - fix comments V5 -> V6: - create dedicated patch for ixgbe_x540 multiple header inclusion protection - extend debug messages - add descriptive constant for Receive Address Registers - remove unrelated changes - create dedicated patch for code cleanup - remove and cleanup of some conditions - spelling fixes V6 -> V7: - rebase to adopt recent Makefile "ixgbe-y" changes V7 -> V8: - implement more clear execution flow in ixgbe_aci_list_caps(), ixgbe_discover_func_caps(), ixgbe_get_link_status(), ixgbe_fc_autoneg_e610(), ixgbe_disable_rx_e610() and ixgbe_setup_phy_link_e610() - make use of FIELD_PREP macro in ixgbe_is_media_cage_present() V8 -> V9: - tune-up auto-negotiation advertised link speeds at driver load - update the method of pending events detection - update the way of discovering device and function capabilities - update the parameter set-up for the firmware-controlled PHYs - fix port down after driver reload 2.43.0