# Requesting success stories of using Silicom PE2G4BPI80 NICs



## dnb (Mar 20, 2022)

I'm about to set up a router using FreeBSD 13.0. My hardware:

Board: Supermicro X7SPE-HF-D525
Case: CSE-502L-200B
Power supply: PWS-202-1H
The question concerns the choice of a network card. I have the opportunity to purchase very cheap 4-port Silicom PE2G4BPI80 network cards.

I'm afraid of a situation where I can't get them to work even as a gigabit card, not to mention the bypass mode. I've already read on the forum that there have been some kind of failure stories. In particular, the user was unable to set his Silicom device up to work as normal gigabit NICs on version 12 because the driver for the bypass function could not be compiled.

However, I would like to ask those who use exactly these Silicom PE2G4BPI80 with FreeBSD 13.0. Perhaps there are some success stories. Or, on the contrary, please criticize such a choice. So the possible answers may be:

Everything works for me;
Don't tempt fate, just use the i350-t4.
...
Thank you!


----------



## russor (Jun 2, 2022)

Sorry if this isn't super helpful for you (and it's not very timely either), but I've got a different Silicom card, the PEG4BPI-CS, which I made work before, and needed to use again recently.

For me, the issues were a few, but poking around with driver source got things going. My card reported both vendor silicom as well as subsystem vendor silicom; so I couldn't use the e1000 driver as-is, but I had to modify it. The bpmod driver also needed modification to see the card, and even if the bpmod sees the card, bpctl won't work unless there is an ethernet driver attached to it. So if you're in that situation, first modify the e1000 driver, then get bpmod to work.

There's the issue that bpmod won't compile on FreeBSD 13 because it uses the removed timeout/untimeout calls; I've modified their driver (which comes with a GPL license) to use callout(9) calls that seem correct, it compiles at least, but I didn't test any of the functionality that uses timers; it's available https://github.com/russor/freebsd_bp_ctl

They've got drivers for cards with the vendor set to Silicom, but they're really old; and they were just a similar bpmod as well as stock Intel drivers with modified device probing. For my card, I was able to set the EEPROM so it shows up with Intel vendor and device, and the Silicom subvendor/subdevice, which makes everything work easier. It's a bit tricky to do, involving PCI passthrough with device ids changed to a Linux vm, and ethtool in there. It seems like if you can find one marked -SD, you wouldn't need to do that part.


----------

