Date: Sun, 29 Jan 2012 18:32:17 +0100 From: Marius Strobl <marius@alchemy.franken.de> To: Stefan Bethke <stb@lassitu.de> Cc: FreeBSD Net <freebsd-net@freebsd.org>, Aleksandr Rybalko <ray@ddteam.net>, Adrian Chadd <adrian@freebsd.org>, Warner Losh <imp@bsdimp.com>, FreeBSD-arch <freebsd-arch@freebsd.org> Subject: Re: Ethernet Switch Framework Message-ID: <20120129173217.GF39861@alchemy.franken.de> In-Reply-To: <5785C7EF-B886-459B-911C-870A4594AC4C@lassitu.de> References: <0E31FEC4-963D-4AC8-9AB7-EE6D6D7F86EE@lassitu.de> <CAJ-Vmo=GRKRf%2BYsFqNm9d_T3Tq583uV_pabMV6ozuaytSRLivg@mail.gmail.com> <20120129001251.7e4cfe83.ray@ddteam.net> <CACVs6=-U9rr7cpeJ%2BVUgP3Xq1yRB=Xk1GjuzEOuXiEUoqGFq_Q@mail.gmail.com> <DBAB0C5C-5B2D-4430-8096-9E4DC7233961@bsdimp.com> <81B88904-6894-4AC3-80F3-2866216E494B@lassitu.de> <20120129153159.GA44362@alchemy.franken.de> <3B5A749B-9553-4152-9441-3F343BA219FB@lassitu.de> <20120129161938.GD39861@alchemy.franken.de> <5785C7EF-B886-459B-911C-870A4594AC4C@lassitu.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 29, 2012 at 05:21:52PM +0100, Stefan Bethke wrote: > > Am 29.01.2012 um 17:19 schrieb Marius Strobl: > > >>> We really need > >>> to find a proper way of dealing with the constraints of the embedded- > >>> world rather than to sprinkle hacks all over the place. > >> > >> Why is the above is less of a hack than making the ordering in nexus configurable through a hint? > >> > > > > If it's generally true that driver A must be attached before driver > > B as B has a dependency on A than this should be expressed and > > configured in the drivers themselves and not need an extra hint to > > configure it at the runtime of the kernel. > > Except that it is not generally true, but only in specific configurations. Other boards have other combinations of devices. The Atheros family of switches is available both embedded into certain SoC as well as separate silicon. > It still seems to be true to me that as soon as you have a separate MDIO driver that this one needs to be attached before any Ethernet, switch or whatever driver that needs to talk via the MDIO lines of the former. Similarly, if the switch attaches to an MDIO instance directly, that switch would need to be attached before the Ethernet driver (if there is one) that the switch is the MDIO master for (this isn't exactly the problematic arge-case). Multi-pass is per driver module, so if the switch attaches to a "regular" Ethernet driver providing both the MAC and the MDIO master instead, you can leave the default probe order and attach the switch after the Ethernet driver. So for the problematic arge-case you would attach the MDIO driver first (corresponding to the MDIO of arge1), then the switch to the MDIO driver and both arge0 and arge1 in whatever order last. Allowing that one special case to work properly shouldn't interfere with other device combinations as it basically boils down to the presence of a separate MDIO instance. Actually that should also work just fine when the MDIO master sits on the IIC bus as that again would mean that it needs to be attached before a Ethernet or switch driver can use it. Marius
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120129173217.GF39861>