From owner-freebsd-arch@FreeBSD.ORG Fri Jan 6 12:57:08 2012 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62F69106566B for ; Fri, 6 Jan 2012 12:57:08 +0000 (UTC) (envelope-from stb@lassitu.de) Received: from gilb.zs64.net (gilb.zs64.net [IPv6:2001:470:1f0b:105e::1ea]) by mx1.freebsd.org (Postfix) with ESMTP id 209818FC13 for ; Fri, 6 Jan 2012 12:57:08 +0000 (UTC) Received: by gilb.zs64.net (Postfix, from stb@lassitu.de) id C31CA118C93; Fri, 6 Jan 2012 12:57:06 +0000 (UTC) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Stefan Bethke In-Reply-To: <47ABA638-7E08-4350-A03C-3D4A23BF2D7E@lassitu.de> Date: Fri, 6 Jan 2012 13:57:06 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <1763C3FF-1EA0-4DC0-891D-63816EBF4A04@lassitu.de> References: <8D025847-4BE4-4B2C-87D7-97E72CC9D325@lassitu.de> <20120104215930.GM90831@alchemy.franken.de> <47ABA638-7E08-4350-A03C-3D4A23BF2D7E@lassitu.de> To: Marius Strobl X-Mailer: Apple Mail (2.1084) Cc: freebsd-arch@freebsd.org Subject: Re: Extending sys/dev/mii X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jan 2012 12:57:08 -0000 Am 05.01.2012 um 21:52 schrieb Stefan Bethke: > The problem with this is that the miibus instance might not be a = (transitive) child of the ethernet driver that has the MII that needs to = be adjusted to the new PHY settings. And since the method does not = provide any parameters about which phy or miibus did issue the method, = or which ifp it applies to, bubbling it up won't work (that the scenario = where the PHY for arge0 is connected to the switch's MDIO, which is = attached to arge1's MDIO). >=20 >>> Since the parent will now be the mdiobus, miibus needs effectively = two attachments, one to the provider of the MDIO access, the other for = the ethernet interface. I propose to associate the ethernet interface = by a modified mii_attach() function that takes a device_t (of the = ethernet driver) instead of the two callback function pointers. >>=20 >> Please elaborate on why these changes are technically necessary >> to implement what you are trying do. Otherwise I prefer to avoid >> them given the rototilling they'd cause. >=20 > Necessary is a strong word. Right now, I'm trying to understand how a = sensible change would even look like, and which combination of glue code = and miibus changes make the most sense. >=20 > Let me see if I can come up with a prototype patch the next couple of = days, so we don't have to theorize about the changes that might or might = not be necessary. Here's a patch that causes zero rototilling, if I'm not mistaken. The patch implements the split between the MDIO access and notifications = posted to the ethernet interface device that has the MII that needs to = be adjusted in accordance with the PHY autonegotiation results. I've = added a field to the ivars struct and not the softc, because the softc = is included by many network drivers, while the ivars are private to = mii.c For this reason, I believe this change is API and ABI compatible, = and likely can be MFCed. (I believe MFCing is not high on the priority = list because many other parts in sys/mips would need to be MFCed first = for all the Atheros platforms to become fully usable, but Adrian can = correct me.) A second patch will implement a separate MDIO bus driver, but I haven't = finished that yet. It s completely independent of the above change. Stefan --=20 Stefan Bethke Fon +49 151 14070811