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@xxxxxxxxx> --- 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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox