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.
175 lines
6.3 KiB
175 lines
6.3 KiB
6 years ago
|
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
|
||
|
|