You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
6.3 KiB
174 lines
6.3 KiB
From 3ad39b7b490fc130b47ec248de707d3ae481c9ed Mon Sep 17 00:00:00 2001 |
|
From: Scott Branden <scott.branden@broadcom.com> |
|
Date: Tue, 12 Dec 2017 12:20:02 -0800 |
|
Subject: [PATCH 13/14] ethtool-copy.h: sync with net-next |
|
|
|
This covers kernel changes up to: |
|
|
|
commit 40e44a1e669d078946f46853808a60d29e6f0885 |
|
Author: Scott Branden <scott.branden@broadcom.com> |
|
Date: Thu Nov 30 11:35:59 2017 -0800 |
|
|
|
net: ethtool: add support for reset of AP inside NIC interface. |
|
|
|
Add ETH_RESET_AP to reset the application processor(s) inside the NIC |
|
interface. |
|
|
|
Current ETH_RESET_MGMT supports a management processor inside this NIC. |
|
This is typically used for remote NIC management purposes. |
|
|
|
Application processors exist inside some SmartNICs to run various |
|
applications inside the NIC processor - be it a simple algorithm without |
|
an OS to as complex as hosting multiple VMs. |
|
|
|
Signed-off-by: Scott Branden <scott.branden@broadcom.com> |
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch> |
|
Signed-off-by: David S. Miller <davem@davemloft.net> |
|
|
|
Signed-off-by: Scott Branden <scott.branden@broadcom.com> |
|
Signed-off-by: John W. Linville <linville@tuxdriver.com> |
|
(cherry picked from commit 83634baa75b5831ed9bfd135f9747b94aacdd842) |
|
--- |
|
ethtool-copy.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- |
|
1 file changed, 61 insertions(+), 5 deletions(-) |
|
|
|
diff --git a/ethtool-copy.h b/ethtool-copy.h |
|
index 06fc04c..f4e7bb2 100644 |
|
--- a/ethtool-copy.h |
|
+++ b/ethtool-copy.h |
|
@@ -1,3 +1,4 @@ |
|
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
|
/* |
|
* ethtool.h: Defines for Linux ethtool. |
|
* |
|
@@ -1236,6 +1237,47 @@ struct ethtool_per_queue_op { |
|
char data[]; |
|
}; |
|
|
|
+/** |
|
+ * struct ethtool_fecparam - Ethernet forward error correction(fec) parameters |
|
+ * @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM |
|
+ * @active_fec: FEC mode which is active on porte |
|
+ * @fec: Bitmask of supported/configured FEC modes |
|
+ * @rsvd: Reserved for future extensions. i.e FEC bypass feature. |
|
+ * |
|
+ * Drivers should reject a non-zero setting of @autoneg when |
|
+ * autoneogotiation is disabled (or not supported) for the link. |
|
+ * |
|
+ */ |
|
+struct ethtool_fecparam { |
|
+ __u32 cmd; |
|
+ /* bitmask of FEC modes */ |
|
+ __u32 active_fec; |
|
+ __u32 fec; |
|
+ __u32 reserved; |
|
+}; |
|
+ |
|
+/** |
|
+ * enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration |
|
+ * @ETHTOOL_FEC_NONE: FEC mode configuration is not supported |
|
+ * @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver |
|
+ * @ETHTOOL_FEC_OFF: No FEC Mode |
|
+ * @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode |
|
+ * @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode |
|
+ */ |
|
+enum ethtool_fec_config_bits { |
|
+ ETHTOOL_FEC_NONE_BIT, |
|
+ ETHTOOL_FEC_AUTO_BIT, |
|
+ ETHTOOL_FEC_OFF_BIT, |
|
+ ETHTOOL_FEC_RS_BIT, |
|
+ ETHTOOL_FEC_BASER_BIT, |
|
+}; |
|
+ |
|
+#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT) |
|
+#define ETHTOOL_FEC_AUTO (1 << ETHTOOL_FEC_AUTO_BIT) |
|
+#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT) |
|
+#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT) |
|
+#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT) |
|
+ |
|
/* CMDs currently supported */ |
|
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. |
|
* Please use ETHTOOL_GLINKSETTINGS |
|
@@ -1328,6 +1370,8 @@ struct ethtool_per_queue_op { |
|
#define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */ |
|
#define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */ |
|
#define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */ |
|
+#define ETHTOOL_GFECPARAM 0x00000050 /* Get FEC settings */ |
|
+#define ETHTOOL_SFECPARAM 0x00000051 /* Set FEC settings */ |
|
|
|
/* compatibility with older code */ |
|
#define SPARC_ETH_GSET ETHTOOL_GSET |
|
@@ -1382,9 +1426,12 @@ enum ethtool_link_mode_bit_indices { |
|
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, |
|
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, |
|
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, |
|
- ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, |
|
- ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, |
|
+ ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, |
|
+ ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, |
|
|
|
+ ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, |
|
+ ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, |
|
+ ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, |
|
|
|
/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit |
|
* 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* |
|
@@ -1393,7 +1440,7 @@ enum ethtool_link_mode_bit_indices { |
|
*/ |
|
|
|
__ETHTOOL_LINK_MODE_LAST |
|
- = ETHTOOL_LINK_MODE_5000baseT_Full_BIT, |
|
+ = ETHTOOL_LINK_MODE_FEC_BASER_BIT, |
|
}; |
|
|
|
#define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ |
|
@@ -1484,13 +1531,17 @@ enum ethtool_link_mode_bit_indices { |
|
* it was forced up into this mode or autonegotiated. |
|
*/ |
|
|
|
-/* The forced speed, in units of 1Mb. All values 0 to INT_MAX are legal. */ |
|
+/* The forced speed, in units of 1Mb. All values 0 to INT_MAX are legal. |
|
+ * Update drivers/net/phy/phy.c:phy_speed_to_str() and |
|
+ * drivers/net/bonding/bond_3ad.c:__get_link_speed() when adding new values. |
|
+ */ |
|
#define SPEED_10 10 |
|
#define SPEED_100 100 |
|
#define SPEED_1000 1000 |
|
#define SPEED_2500 2500 |
|
#define SPEED_5000 5000 |
|
#define SPEED_10000 10000 |
|
+#define SPEED_14000 14000 |
|
#define SPEED_20000 20000 |
|
#define SPEED_25000 25000 |
|
#define SPEED_40000 40000 |
|
@@ -1633,6 +1684,7 @@ enum ethtool_reset_flags { |
|
ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */ |
|
ETH_RESET_RAM = 1 << 7, /* RAM shared between |
|
* multiple components */ |
|
+ ETH_RESET_AP = 1 << 8, /* Application processor */ |
|
|
|
ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to |
|
* this interface */ |
|
@@ -1701,6 +1753,8 @@ enum ethtool_reset_flags { |
|
* %ethtool_link_mode_bit_indices for the link modes, and other |
|
* link features that the link partner advertised through |
|
* autonegotiation; 0 if unknown or not applicable. Read-only. |
|
+ * @transceiver: Used to distinguish different possible PHY types, |
|
+ * reported consistently by PHYLIB. Read-only. |
|
* |
|
* If autonegotiation is disabled, the speed and @duplex represent the |
|
* fixed link mode and are writable if the driver supports multiple |
|
@@ -1752,7 +1806,9 @@ struct ethtool_link_settings { |
|
__u8 eth_tp_mdix; |
|
__u8 eth_tp_mdix_ctrl; |
|
__s8 link_mode_masks_nwords; |
|
- __u32 reserved[8]; |
|
+ __u8 transceiver; |
|
+ __u8 reserved1[3]; |
|
+ __u32 reserved[7]; |
|
__u32 link_mode_masks[0]; |
|
/* layout of link_mode_masks fields: |
|
* __u32 map_supported[link_mode_masks_nwords]; |
|
-- |
|
1.8.3.1 |
|
|
|
|