From 9b0c2e47ef551986b7b87b536d49bc866e88a570 Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Wed, 2 Jul 2014 01:04:25 +0400 Subject: mii-tool: make the 'No MII transceiver present!' message more clear 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 Signed-off-by: Sascha Hauer --- commands/miitool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/commands/miitool.c b/commands/miitool.c index b08be9c683..3f205e93ea 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]; -- cgit v1.2.3