Hi! Update! On Sun, 27 Apr 2025 at 21:00, Adrian Chadd <adr...@freebsd.org> 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