DORMANTno replies

[PATCH] ethtool: add support for latest Intel adapters

From: Jesse Brandeburg <hidden>
Date: 2005-05-07 02:15:54

This patch adds register dump and device ID support for the new Intel
PRO/1000 Server Adapters with a PCI-Express bus.  It also took care of a 
little housekeeping of some missing device IDs.

Signed-off-by: Jesse Brandeburg <redacted>

===== e1000.c 1.5 vs edited =====
--- 1.5/e1000.c	2004-04-09 11:44:55 -07:00
+++ edited/e1000.c	2005-04-15 17:15:55 -07:00
@@ -137,10 +137,16 @@
 #define E1000_DEV_ID_82547GI             0x1075
 #define E1000_DEV_ID_82541GI             0x1076
 #define E1000_DEV_ID_82541GI_MOBILE      0x1077
+#define E1000_DEV_ID_82541GI_LF          0x107C
 #define E1000_DEV_ID_82546GB_COPPER      0x1079
 #define E1000_DEV_ID_82546GB_FIBER       0x107A
 #define E1000_DEV_ID_82546GB_SERDES      0x107B
+#define E1000_DEV_ID_82546GB_PCIE        0x108A
 #define E1000_DEV_ID_82547EI             0x1019
+#define E1000_DEV_ID_82573E              0x108B
+#define E1000_DEV_ID_82573E_IAMT         0x108C
+
+#define E1000_DEV_ID_82546GB_QUAD_COPPER 0x1099
 
 #define E1000_82542_2_0_REV_ID 2
 #define E1000_82542_2_1_REV_ID 3
@@ -162,6 +168,7 @@
 	e1000_82541_rev_2,
 	e1000_82547,
 	e1000_82547_rev_2,
+	e1000_82573,
 	e1000_num_macs
 };
 
@@ -217,6 +224,8 @@
 	case E1000_DEV_ID_82546GB_COPPER:
 	case E1000_DEV_ID_82546GB_FIBER:
 	case E1000_DEV_ID_82546GB_SERDES:
+	case E1000_DEV_ID_82546GB_PCIE:
+	case E1000_DEV_ID_82546GB_QUAD_COPPER:
 		mac_type = e1000_82546_rev_3;
 		break;
 	case E1000_DEV_ID_82541EI:
@@ -225,6 +234,7 @@
 		break;
 	case E1000_DEV_ID_82541ER:
 	case E1000_DEV_ID_82541GI:
+	case E1000_DEV_ID_82541GI_LF:
 	case E1000_DEV_ID_82541GI_MOBILE:
 		mac_type = e1000_82541_rev_2;
 		break;
@@ -234,6 +244,10 @@
 	case E1000_DEV_ID_82547GI:
 		mac_type = e1000_82547_rev_2;
 		break;
+	case E1000_DEV_ID_82573E:
+	case E1000_DEV_ID_82573E_IAMT:
+		mac_type = e1000_82573;
+		break;
 	default:
 		/* list of supported devices probably needs updating */
 		mac_type = e1000_82543;
@@ -309,7 +323,23 @@
 		reg,
 		reg & E1000_STATUS_FD      ? "full"        : "half",
 		reg & E1000_STATUS_LU      ? "link config" : "no link config");
-	if(mac_type >= e1000_82543) {
+	if(mac_type >= e1000_82573) {
+	fprintf(stdout,
+		"      TBI mode:                          %s\n"
+		"      Link speed:                        %s\n"
+		"      Bus type:                          %s\n"
+		"      Port number:                       %s\n",
+		reg & E1000_STATUS_TBIMODE ? "enabled"     : "disabled",
+		(reg & E1000_STATUS_SPEED_MASK) == E1000_STATUS_SPEED_10   ?
+		"10Mb/s" :
+		(reg & E1000_STATUS_SPEED_MASK) == E1000_STATUS_SPEED_100  ?
+		"100Mb/s" :
+		(reg & E1000_STATUS_SPEED_MASK) == E1000_STATUS_SPEED_1000 ?
+		"1000Mb/s" : "not used",
+		"PCI-Express",
+		(reg & E1000_STATUS_FUNC_MASK) == 0 ? "0" : "1");
+	}
+	else if(mac_type >= e1000_82543) {
 	fprintf(stdout,
 		"      TBI mode:                          %s\n"
 		"      Link speed:                        %s\n"
@@ -431,7 +461,9 @@
 	/* PHY type */
 	fprintf(stdout,
 		"PHY type:                                %s\n",
-		regs_buff[12] == 0 ? "M88" : "IGP");
+		regs_buff[12] == 0 ? "M88" :
+		regs_buff[12] == 1 ? "IGP" :
+		regs_buff[12] == 2 ? "IGP2" : "unknown" );
 
 	return 0;
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help