From owner-freebsd-current@FreeBSD.ORG Sun Jun 13 20:13:37 2010 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42EC71065672 for ; Sun, 13 Jun 2010 20:13:37 +0000 (UTC) (envelope-from kristof@sigsegv.be) Received: from juliette.telenet-ops.be (juliette.telenet-ops.be [195.130.137.74]) by mx1.freebsd.org (Postfix) with ESMTP id 5F0778FC08 for ; Sun, 13 Jun 2010 20:13:35 +0000 (UTC) Received: from triton.sigsegv.be ([213.119.97.224]) by juliette.telenet-ops.be with bizsmtp id VYDa1e00A4qUA0t06YDa2j; Sun, 13 Jun 2010 22:13:34 +0200 Received: from nereid (nereid.neptune.sigsegv.be [IPv6:2001:470:c8f4:0:200:ff:fe00:8]) by triton.sigsegv.be (Postfix) with SMTP id 2A8BF1D910; Sun, 13 Jun 2010 22:13:33 +0200 (CEST) Received: by nereid (sSMTP sendmail emulation); Sun, 13 Jun 2010 22:13:33 +0200 Date: Sun, 13 Jun 2010 22:13:31 +0200 From: Kristof Provost To: Norikatsu Shigemura Message-ID: <20100613201331.GA19653@nereid> References: <20100613233723.ed2c3a30.nork@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="HlL+5n6rz5pIUxbD" Content-Disposition: inline In-Reply-To: <20100613233723.ed2c3a30.nork@FreeBSD.org> X-PGP-Fingerprint: 6B6E 5EED 8ECF FAE7 1F61 7458 5046 7D0E 11B0 0EE8 User-Agent: Mutt/1.5.20 (2009-06-14) Cc: freebsd-arm@FreeBSD.org, freebsd-current@FreeBSD.org, yongari@FreeBSD.org Subject: Re: [OpenRD Ultimate] e1000phy(88E1149/88E1121) has a initialize issue X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jun 2010 20:13:37 -0000 --HlL+5n6rz5pIUxbD Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On 2010-06-13 23:37:23 (+0900), Norikatsu Shigemura wrote: > Hi yongari! > > I have a OpenRD Ultimate, which has two GbE ports - if_mge(4). But > I couldn't use mge1 like following. So I tried to investigate. > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > Jun 13 05:02:14 sidearms kernel: mge1: watchdog timeout > Jun 13 05:02:14 sidearms kernel: mge1: Timeout on link-up > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > I believe the mge(4) driver incorrectly configures the PHY address for the second interface. Can you give the attached patch a try? I'm not familiar with the PHY code so I won't comment on those changes. Regards, Kristof --HlL+5n6rz5pIUxbD Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="if_mge_openrd.patch" Index: sys/dev/mge/if_mge.c =================================================================== --- sys/dev/mge/if_mge.c (revision 208113) +++ sys/dev/mge/if_mge.c (working copy) @@ -606,7 +606,6 @@ mge_attach(device_t dev) { struct mge_softc *sc; - struct mii_softc *miisc; struct ifnet *ifp; uint8_t hwaddr[ETHER_ADDR_LEN]; int i, error ; @@ -690,9 +689,9 @@ } sc->mii = device_get_softc(sc->miibus); - /* Tell the MAC where to find the PHY so autoneg works */ - miisc = LIST_FIRST(&sc->mii->mii_phys); - MGE_WRITE(sc, MGE_REG_PHYDEV, miisc->mii_phy); + /* Tell the MAC where to find the PHY so autoneg works + * We assume a static mapping (see mge_miibus_readreg) */ + MGE_WRITE(sc, MGE_REG_PHYDEV, device_get_unit(dev) + MII_ADDR_BASE); /* Attach interrupt handlers */ for (i = 0; i < 2; ++i) { --HlL+5n6rz5pIUxbD--