summaryrefslogtreecommitdiff
path: root/ethtool-copy.h
diff options
context:
space:
mode:
authorAjit Khaparde <ajitk@serverengines.com>2009-09-03 08:33:08 +0530
committerJeff Garzik <jgarzik@redhat.com>2009-11-25 09:42:47 -0500
commit9efed0a996f30e1f2d2d33611b209fee6faabc2c (patch)
tree6c733c529a510aff40c5648de56c489e7e49857d /ethtool-copy.h
parent0bae92474a3d96070c1235928d0ce821c051583c (diff)
downloadethtool-9efed0a996f30e1f2d2d33611b209fee6faabc2c.tar.gz
ethtool: Add option to flash firmware image from specified file, to a device.
This patch adds a new "-f" option to the ethtool utility to flash a firmware image specified by a file, to a network device. The filename is passed to the network driver which will flash the image on the chip using the request_firmware path. The region "on the chip" to be flashed can be specified by an option. It is up to the device driver to enumerate the region number passed by ethtool, to the region to be flashed. The default behavior is to flash all the regions on the chip. Usage: ethtool -f <interface name> <filename of firmware image> ethtool -f <interface name> <filename of firmware image> [ REGION-NUMBER-TO-FLASH ] Signed-off-by: Ajit Khaparde <ajitk@serverengines.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'ethtool-copy.h')
-rw-r--r--ethtool-copy.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/ethtool-copy.h b/ethtool-copy.h
index d9bb957..dc1c089 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -30,12 +30,13 @@ struct ethtool_cmd {
__u32 maxtxpkt; /* Tx pkts before generating tx int */
__u32 maxrxpkt; /* Rx pkts before generating rx int */
__u16 speed_hi;
- __u16 reserved2;
+ __u8 eth_tp_mdix;
+ __u8 reserved2;
__u32 lp_advertising; /* Features the link partner advertises */
__u32 reserved[2];
};
-static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
+static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
__u32 speed)
{
@@ -43,7 +44,7 @@ static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
ep->speed_hi = (__u16)(speed >> 16);
}
-static __inline__ __u32 ethtool_cmd_speed(struct ethtool_cmd *ep)
+static inline __u32 ethtool_cmd_speed(struct ethtool_cmd *ep)
{
return (ep->speed_hi << 16) | ep->speed;
}
@@ -361,6 +362,18 @@ struct ethtool_rxnfc {
__u32 rule_locs[0];
};
+#define ETHTOOL_FLASH_MAX_FILENAME 128
+enum ethtool_flash_op_type {
+ ETHTOOL_FLASH_ALL_REGIONS = 0,
+};
+
+/* for passing firmware flashing related parameters */
+struct ethtool_flash {
+ __u32 cmd;
+ __u32 region;
+ char data[ETHTOOL_FLASH_MAX_FILENAME];
+};
+
/* CMDs currently supported */
#define ETHTOOL_GSET 0x00000001 /* Get settings. */
@@ -415,6 +428,7 @@ struct ethtool_rxnfc {
#define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */
#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */
#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
+#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */
/* compatibility with older code */
#define SPARC_ETH_GSET ETHTOOL_GSET
@@ -504,6 +518,11 @@ struct ethtool_rxnfc {
#define AUTONEG_DISABLE 0x00
#define AUTONEG_ENABLE 0x01
+/* Mode MDI or MDI-X */
+#define ETH_TP_MDI_INVALID 0x00
+#define ETH_TP_MDI 0x01
+#define ETH_TP_MDI_X 0x02
+
/* Wake-On-Lan options. */
#define WAKE_PHY (1 << 0)
#define WAKE_UCAST (1 << 1)