Browse Source

[mii] Add mii_dump() to dump all MII registers

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 11 years ago
parent
commit
9d615539f0
1 changed files with 31 additions and 0 deletions
  1. 31
    0
      src/include/ipxe/mii.h

+ 31
- 0
src/include/ipxe/mii.h View File

@@ -78,6 +78,37 @@ mii_write ( struct mii_interface *mii, unsigned int reg, unsigned int data ) {
78 78
 	return mii->op->write ( mii, reg, data );
79 79
 }
80 80
 
81
+/**
82
+ * Dump MII registers (for debugging)
83
+ *
84
+ * @v mii		MII interface
85
+ */
86
+static inline void
87
+mii_dump ( struct mii_interface *mii ) {
88
+	unsigned int i;
89
+	int data;
90
+
91
+	/* Do nothing unless debug output is enabled */
92
+	if ( ! DBG_LOG )
93
+		return;
94
+
95
+	/* Dump basic MII register set */
96
+	for ( i = 0 ; i < 16 ; i++ ) {
97
+		if ( ( i % 8 ) == 0 ) {
98
+			DBGC ( mii, "MII %p registers %02x-%02x:",
99
+			       mii, i, ( i + 7 ) );
100
+		}
101
+		data = mii_read ( mii, i );
102
+		if ( data >= 0 ) {
103
+			DBGC ( mii, " %04x", data );
104
+		} else {
105
+			DBGC ( mii, " XXXX" );
106
+		}
107
+		if ( ( i % 8 ) == 7 )
108
+			DBGC ( mii, "\n" );
109
+	}
110
+}
111
+
81 112
 /** Maximum time to wait for a reset, in milliseconds */
82 113
 #define MII_RESET_MAX_WAIT_MS 500
83 114
 

Loading…
Cancel
Save