[PATCH] mii-tool: make the 'No MII transceiver present!' message more clear

Antony Pavlov antonynpavlov at gmail.com
Tue Jul 1 14:04:25 PDT 2014


Suppose you have two network controllers.
The first one is ENC28J60 (it is in low power mode
after start) the second one is always-enabled eth1.

As ENC28J60 is in low power mode before enc28j60_eth_open()
is called. ENC28J60's mii traceiver is in low power mode too
so the mii traceiver's register are inaccessable.

Here is a sample log just after barebox start:

  barebox:/ miitool
  miibus0: registered phy as /dev/phy0
    No MII transceiver present!.
  miibus1: registered phy as /dev/phy1
  phy1: eth1: negotiated 100baseTx-FD, link ok
  barebox:/ miitool
    No MII transceiver present!.
  phy1: eth1: negotiated 100baseTx-FD, link ok

The 'No MII transceiver present!.' message is confusing here.

This patch fixes the problem so the miitool output
looks like this:

  barebox:/ miitool
  phy0: spieth0:  No MII transceiver present!.
  phy1: eth1: negotiated 100baseTx-FD, link ok

Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
---
 commands/miitool.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/commands/miitool.c b/commands/miitool.c
index 40e34e9..c62e758 100644
--- a/commands/miitool.c
+++ b/commands/miitool.c
@@ -115,14 +115,14 @@ static int show_basic_mii(struct mii_bus *mii, struct phy_device *phydev,
 	for (i = 0; i < 32; i++)
 		mii_val[i] = mii->read(mii, phydev->addr, i);
 
+	printf("%s: %s%d: ", phydev->cdev.name,
+		mii->parent->name, mii->parent->id);
+
 	if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) {
 		fprintf(stderr, "  No MII transceiver present!.\n");
 		return -1;
 	}
 
-	printf("%s: %s%d: ", phydev->cdev.name,
-		mii->parent->name, mii->parent->id);
-
 	/* Descriptive rename. */
 	bmcr = mii_val[MII_BMCR];
 	bmsr = mii_val[MII_BMSR];
-- 
2.0.1




More information about the barebox mailing list