From 45fecbb6db8f52bb7f9e14732128b7cd70229e7f Mon Sep 17 00:00:00 2001 From: Jiri Gaisler Date: Sun, 16 Jun 2013 15:40:03 +0200 Subject: greth: do not advertise 1000M capability if MAC does not support it. --- c/src/libchip/network/greth.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'c/src/libchip/network') diff --git a/c/src/libchip/network/greth.c b/c/src/libchip/network/greth.c index 2663e8d915..cab41b8f2d 100644 --- a/c/src/libchip/network/greth.c +++ b/c/src/libchip/network/greth.c @@ -306,6 +306,17 @@ greth_initialize_hardware (struct greth_softc *sc) write_mii(phyaddr, 0, 0x8000 | phyctrl); while ((read_mii(phyaddr, 0)) & 0x8000) {} + phystatus = read_mii(phyaddr, 1); + + /* Disable Gbit auto-neg advertisement if MAC does not support it */ + + if ((!sc->gbit_mac) && (phystatus & 0x100)) write_mii(phyaddr, 9, 0); + + /* Restart auto-negotiation if available */ + if (phystatus & 0x08) { + write_mii(phyaddr, 0, phyctrl | 0x1200); + phyctrl = read_mii(phyaddr, 0); + } /* Check if PHY is autoneg capable and then determine operating mode, otherwise force it to 10 Mbit halfduplex */ -- cgit v1.2.3