Re: ixgbe, mdio, and marvell ethernet switches

Adrian Chadd <[email protected]>
Newsgroups gmane.os.freebsd.devel.net
Message-ID <CAJ-VmokBQ0HmX8fRWf_1+MRGF4C7DrDPD+3Z6LUMw6gC8t-L1g@mail.gmail.com>
Hi! Update!

On Sun, 27 Apr 2025 at 21:00, Adrian Chadd <[email protected]> wrote:

> A few weeks ago I started poking at some netgate hardware to use as
> freebsd wifi test boxes in my little test lab here. The two I'm using are
> ADI (now Silicom) boxes that needed some fun deep dives into BIOS versions,
> interrupt storms and compatible mini-PCIe cards (some just don't actually
> get probed!)
>
> [snip]


>
> Anyway, on the etherswitch side I did a bunch of cleanup to support
> etherswitch/miiproxy/e6000sw as modules, and fix a bunch of e6000sw bugs,
> and they're in -HEAD:
>
> * https://reviews.freebsd.org/D50024 to https://reviews.freebsd.org/D50031
> are all cleanups
> * https://reviews.freebsd.org/D50044 adds the 88E6190X support
>

Those are in -HEAD now!

>
> But then the next fun problem - none of the ports came up. Well, I lie.
> Only one of them came up. I went digging into the PHY registers and found
> that the marvell gige PHY code didn't actually power up the PHY if it was
> powered down, so I fixed that too:
>
> * https://reviews.freebsd.org/D50045
>

This is in -HEAD now!


>
> Then with some hints, I could see and use all of the switch ports on the
> AT&T ATT-150 CPE device:
>
> hint.mdio.0.at="ix0"
> hint.e6000sw.0.addr="0x10"
> hint.e6000sw.0.port0disabled="1"
> hint.e6000sw.0.is6190x=1
> hint.e6000sw.0.port9cpu=1
> hint.e6000sw.0.port10cpu=1
> hint.e6000sw.0.port9speed=2500
> hint.e6000sw.0.port10speed=2500
>
> Then, I also acquired a wireguard M270 box, as it also apprently has a
> marvell switch attached to an X553 backplane, and none of the ethernet
> ports work at all out of the box.
> The above hints worked on that too - with addr set to "0x0" instead of
> "0x10".
>
> So, now i have two Atom C3558 boxes w/ X553 2.5gbit backplane ports hooked
> into an 8 port marvell gige switch working on -HEAD (save the ixgbe mdio
> diff that I attached; I'll sort that out soon). All it took was like $250
> in hardware, staring at intel documentation and linux/dpdk driver code, and
> three evenings thinking to myself "surely this can't be THAT hard.
>

https://reviews.freebsd.org/D50127 adds MDIO/MII support for the x553 bits
if there's an external PHY for some reason, and
https://reviews.freebsd.org/D50128 adds the if_ix MDIO bus. It's all
preliminary, but it works, and if for some reason I forget to land it / get
distracted by real life, all of the moving pieces are now available and
public.

I'm hoping to clean up D50128 enough next week to get it into -HEAD (with
the intel maintainers blessings of course) and then add some wiki
documentation for the two switch platforms I have that use it. I hear
there's some netgate boxes that also use this switch but I don't have the
hardware to play with.

-adrian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.