Page MenuHomeFreeBSD

e6000sw: add support for 88E6190X
ClosedPublic

Authored by adrian on Apr 26 2025, 3:49 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Aug 15, 12:41 AM
Unknown Object (File)
Tue, Aug 12, 6:52 AM
Unknown Object (File)
Sat, Aug 2, 10:37 PM
Unknown Object (File)
Sat, Aug 2, 4:06 AM
Unknown Object (File)
Sat, Jul 26, 1:16 AM
Unknown Object (File)
Fri, Jul 25, 1:17 PM
Unknown Object (File)
Fri, Jul 25, 9:27 AM
Unknown Object (File)
Fri, Jul 25, 1:22 AM
Subscribers

Details

Summary

This adds the minimum support required to probe/attach the 88E6190X.

I've tested this against an AT&T ATT-150 OCP device (Silicom i3000)
with local changes to export MDIO via ixge(4).

Hints are required to probe/attach/configure the switch on amd64,
but with the mentioned diffs, it does work.

Thanks to Stas Alekseev <stas@alekseev.us> for the pull request
and Stas / Jason Hensler <omegadraconis@gmail.com> for chasing
down information about the chipset, linux stuff and AT&T OCP
hardware information.

PR: kern/281211
Pull Request: https://github.com/freebsd/freebsd-src/pull/1408

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63746
Build 60630: arc lint + arc unit

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Apr 27 2025, 6:39 PM
This revision was automatically updated to reflect the committed changes.
jrtc27 added inline comments.
sys/dev/etherswitch/e6000sw/e6000sw.c
267–271
sys/dev/etherswitch/e6000sw/e6000swreg.h
60

These lines are too long, though they were a bit over the character limit already so eh...

sys/dev/etherswitch/e6000sw/e6000swreg.h
60

I have some ideas on cleaning this stuff up later, once the ixgbe MDIO stuff is in -head and others can just boot -head and jump in.

One (in this particular instance) is to store the offsets as a per-chipset config during probe/attach and do away with the ternary operator here.
It'll be a bit delicate as the quirk is required /during/ probe/attach to check the correct registers, but I think it'll make everything correct-er.