Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci ixl: Added support for Intel ethernet X710-T*L
details: https://anonhg.NetBSD.org/src/rev/c2d93b438ce7
branches: trunk
changeset: 363929:c2d93b438ce7
user: yamaguchi <yamaguchi%NetBSD.org@localhost>
date: Wed Mar 16 05:26:37 2022 +0000
description:
ixl: Added support for Intel ethernet X710-T*L
diffstat:
sys/dev/pci/if_ixl.c | 20 ++++++++++++++++----
sys/dev/pci/if_ixlvar.h | 16 +++++++++++++++-
2 files changed, 31 insertions(+), 5 deletions(-)
diffs (128 lines):
diff -r 69bd62900194 -r c2d93b438ce7 sys/dev/pci/if_ixl.c
--- a/sys/dev/pci/if_ixl.c Wed Mar 16 05:23:51 2022 +0000
+++ b/sys/dev/pci/if_ixl.c Wed Mar 16 05:26:37 2022 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ixl.c,v 1.77 2021/06/16 00:21:18 riastradh Exp $ */
+/* $NetBSD: if_ixl.c,v 1.78 2022/03/16 05:26:37 yamaguchi Exp $ */
/*
* Copyright (c) 2013-2015, Intel Corporation
@@ -74,7 +74,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ixl.c,v 1.77 2021/06/16 00:21:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ixl.c,v 1.78 2022/03/16 05:26:37 yamaguchi Exp $");
#ifdef _KERNEL_OPT
#include "opt_net_mpsafe.h"
@@ -899,12 +899,18 @@
{ 1ULL << IXL_PHY_TYPE_25GBASE_LR, IFM_25G_LR },
{ 1ULL << IXL_PHY_TYPE_25GBASE_AOC, IFM_25G_AOC },
{ 1ULL << IXL_PHY_TYPE_25GBASE_ACC, IFM_25G_ACC },
+ { 1ULL << IXL_PHY_TYPE_2500BASE_T_1, IFM_2500_T },
+ { 1ULL << IXL_PHY_TYPE_5000BASE_T_1, IFM_5000_T },
+ { 1ULL << IXL_PHY_TYPE_2500BASE_T_2, IFM_2500_T },
+ { 1ULL << IXL_PHY_TYPE_5000BASE_T_2, IFM_5000_T },
};
static const struct ixl_speed_type ixl_speed_type_map[] = {
{ IXL_AQ_LINK_SPEED_40GB, IF_Gbps(40) },
{ IXL_AQ_LINK_SPEED_25GB, IF_Gbps(25) },
{ IXL_AQ_LINK_SPEED_10GB, IF_Gbps(10) },
+ { IXL_AQ_LINK_SPEED_5000MB, IF_Mbps(5000) },
+ { IXL_AQ_LINK_SPEED_2500MB, IF_Mbps(2500) },
{ IXL_AQ_LINK_SPEED_1000MB, IF_Mbps(1000) },
{ IXL_AQ_LINK_SPEED_100MB, IF_Mbps(100)},
};
@@ -949,7 +955,8 @@
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_XL710_QSFP_A },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_XL710_QSFP_B },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_XL710_QSFP_C },
- { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X710_10G_T },
+ { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X710_10G_T_1 },
+ { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X710_10G_T_2 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_XL710_20G_BP_1 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_XL710_20G_BP_2 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X710_T4_10G },
@@ -961,6 +968,8 @@
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X722_1G_BASET },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X722_10G_BASET },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X722_I_SFP },
+ { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X710_10G_SFP },
+ { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_X710_10G_BP },
/* required last entry */
{0, 0}
};
@@ -1836,12 +1845,15 @@
case PCI_PRODUCT_INTEL_XL710_QSFP_A:
case PCI_PRODUCT_INTEL_XL710_QSFP_B:
case PCI_PRODUCT_INTEL_XL710_QSFP_C:
- case PCI_PRODUCT_INTEL_X710_10G_T:
+ case PCI_PRODUCT_INTEL_X710_10G_T_1:
+ case PCI_PRODUCT_INTEL_X710_10G_T_2:
case PCI_PRODUCT_INTEL_XL710_20G_BP_1:
case PCI_PRODUCT_INTEL_XL710_20G_BP_2:
case PCI_PRODUCT_INTEL_X710_T4_10G:
case PCI_PRODUCT_INTEL_XXV710_25G_BP:
case PCI_PRODUCT_INTEL_XXV710_25G_SFP28:
+ case PCI_PRODUCT_INTEL_X710_10G_SFP:
+ case PCI_PRODUCT_INTEL_X710_10G_BP:
return I40E_MAC_XL710;
case PCI_PRODUCT_INTEL_X722_KX:
diff -r 69bd62900194 -r c2d93b438ce7 sys/dev/pci/if_ixlvar.h
--- a/sys/dev/pci/if_ixlvar.h Wed Mar 16 05:23:51 2022 +0000
+++ b/sys/dev/pci/if_ixlvar.h Wed Mar 16 05:26:37 2022 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ixlvar.h,v 1.7 2020/09/08 10:05:47 yamaguchi Exp $ */
+/* $NetBSD: if_ixlvar.h,v 1.8 2022/03/16 05:26:37 yamaguchi Exp $ */
/*
* Copyright (c) 2019 Internet Initiative Japan, Inc.
@@ -326,12 +326,20 @@
#define IXL_PHY_TYPE_25GBASE_AOC 0x23
#define IXL_PHY_TYPE_25GBASE_ACC 0x24
+#define IXL_PHY_TYPE_2500BASE_T_1 0x26
+#define IXL_PHY_TYPE_5000BASE_T_1 0x27
+
+#define IXL_PHY_TYPE_2500BASE_T_2 0x30
+#define IXL_PHY_TYPE_5000BASE_T_2 0x31
+
+#define IXL_PHY_LINK_SPEED_2500MB (1 << 0)
#define IXL_PHY_LINK_SPEED_100MB (1 << 1)
#define IXL_PHY_LINK_SPEED_1000MB (1 << 2)
#define IXL_PHY_LINK_SPEED_10GB (1 << 3)
#define IXL_PHY_LINK_SPEED_40GB (1 << 4)
#define IXL_PHY_LINK_SPEED_20GB (1 << 5)
#define IXL_PHY_LINK_SPEED_25GB (1 << 6)
+#define IXL_PHY_LINK_SPEED_5000MB (1 << 7)
#define IXL_PHY_ABILITY_PAUSE_TX (1 << 0)
#define IXL_PHY_ABILITY_PAUSE_RX (1 << 1)
@@ -363,6 +371,10 @@
#define IXL_AQ_PHY_TYPE_EXT_25G_CR 0x02
#define IXL_AQ_PHY_TYPE_EXT_25G_SR 0x04
#define IXL_AQ_PHY_TYPE_EXT_25G_LR 0x08
+#define IXL_AQ_PHY_TYPE_EXT_25G_AOC 0x10
+#define IXL_AQ_PHY_TYPE_EXT_25G_ACC 0x20
+#define IXL_AQ_PHY_TYPE_EXT_2500_T 0x40
+#define IXL_AQ_PHY_TYPE_EXT_5000_T 0x80
uint8_t fec_cfg_curr_mod_ext_info;
#define IXL_AQ_ENABLE_FEC_KR 0x01
#define IXL_AQ_ENABLE_FEC_RS 0x02
@@ -669,11 +681,13 @@
#define IXL_AQ_LSE_IS_ENABLED 0x1 /* only set in response */
uint8_t phy_type;
uint8_t link_speed;
+#define IXL_AQ_LINK_SPEED_2500MB (1 << 0)
#define IXL_AQ_LINK_SPEED_100MB (1 << 1)
#define IXL_AQ_LINK_SPEED_1000MB (1 << 2)
#define IXL_AQ_LINK_SPEED_10GB (1 << 3)
#define IXL_AQ_LINK_SPEED_40GB (1 << 4)
#define IXL_AQ_LINK_SPEED_25GB (1 << 6)
+#define IXL_AQ_LINK_SPEED_5000MB (1 << 7)
uint8_t link_info;
#define IXL_AQ_LINK_UP_FUNCTION 0x01
#define IXL_AQ_LINK_FAULT 0x02
Home |
Main Index |
Thread Index |
Old Index