Ethernet Switch Framework
Marius Strobl
marius at alchemy.franken.de
Sun Jan 29 17:32:23 UTC 2012
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
More information about the freebsd-net
mailing list