[rtems commit] greth: do not advertise 1000M capability if MAC does not support it.

Joel Sherrill joel at rtems.org
Wed Jun 19 13:16:02 UTC 2013


Module:    rtems
Branch:    master
Commit:    45fecbb6db8f52bb7f9e14732128b7cd70229e7f
Changeset: http://git.rtems.org/rtems/commit/?id=45fecbb6db8f52bb7f9e14732128b7cd70229e7f

Author:    Jiri Gaisler <jiri at gaisler.se>
Date:      Sun Jun 16 15:40:03 2013 +0200

greth: do not advertise 1000M capability if MAC does not support it.

---

 c/src/libchip/network/greth.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/c/src/libchip/network/greth.c b/c/src/libchip/network/greth.c
index 2663e8d..cab41b8 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 */




More information about the vc mailing list