Contribute
Register

Intel Network adapters on OS X: Small Tree drivers

The Sonnet has a different firmware SUBSYS-ID (16b8:7212). You'd need to mod your card to it in order to use the Sonnet drivers.

I always thought Sonnet's drivers were just licensed derivatives of SmallTree's driver and were often outdated so I always stuck with the SmallTree drivers, but now I could be wrong since it appears Sonnet is supporting Big Sur whereas SmallTree appears not.

Here's some DEV-IDs and SUBSYS-IDs for a the various 10GbE Intel X520 cards out there (I've been through a bunch):

IBM: 8086:10fb, 8086:7a12
Oracle: 8086:10fb, 108e:7b11
Dell: 8086:154d, 8086:7b11
Genuine Intel: 8086:10fb, 8086:0006
SmallTree: 8086:10fb, 8086:000a
Sonnet: 8086:10fb, 16b8:7212 (I verified this from a genuine Sonnet X520 card)

Obviously the IBM, Oracle, Dell, and Intel IDs won't work on a Mac, but you can use ethtool to change them to the SmallTree or Sonnet IDs and then use the respective driver.

I dunno if modding an X540 or X550 to the Sonnet SUBSYS-ID will make those cards work with the Sonnet driver, but it's worth a shot.

It looks like this worked with my X550-AT2 card.
Screen Shot 2021-02-06 at 1.26.33 PM.png

Thanks!
 
Hmm. To be honest, I'm still of the opinion that the Sonnet driver is just a repurposed (and possibly less refined) version of the SmallTree driver.

It also doesn't seem that Sonnet's 1.7.2 driver had any refinements particular to Big Sur, as it was compiled back when Catalina was just coming out of beta. At best it seems they tested it on Big Sur, found that it worked, said "good enough" and declared it compatible.
 
Can you post the code you did to do this?
I have a X520-DA1 already flashed to use Small Tree, but I want to try it via Sonnet.

Here they are:
Code:
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x240 value 0xb8
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x241 value 0x16
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x242 value 0x12
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x243 value 0x72

sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x240 value 0xb8
sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x241 value 0x16
sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x242 value 0x12
sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x243 value 0x72

Although it was on my X550 so the commands and offsets might be different.
 
Here they are:
Code:
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x240 value 0xb8
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x241 value 0x16
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x242 value 0x12
sudo ethtool -E enp26s0f0 magic 0x15638086 offset 0x243 value 0x72

sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x240 value 0xb8
sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x241 value 0x16
sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x242 value 0x12
sudo ethtool -E enp26s0f1 magic 0x15638086 offset 0x243 value 0x72

Although it was on my X550 so the commands and offsets might be different.
Thanks, I just can't seem to figure it out.
I have this already, SmallTree: 8086:10fb, 8086:000a
because this is what I already ran:

sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32a value 0x0a
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32b value 0x00

This was great up until Big Sur. I've been using this successfully for years.
If you or anyone can help with the proper code, I would appreciate it.
 
The offset addresses for the X540 and X550 are quite different than for the X520.

To use the Sonnet drivers on an IBM/HP/Intel X520, this likely should work (at-your-own-risk disclaimers apply):

Code:
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32a value 0x12
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32b value 0x72
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32c value 0xb8
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32d value 0x16

Let us all know if the Sonnet drivers work any better for you in Big Sur (though to my understanding they're a derivative of the Small Tree drivers anyway).
 
Last edited:
The offset addresses for the X540 and X550 are quite different than for the X520.

To use the Sonnet drivers on an IBM/HP/Intel X520, this likely should work (at-your-own-risk disclaimers apply):

Code:
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32a value 0x12
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32b value 0x72
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32c value 0xb8
sudo ethtool -E enp1s0 magic 0x10fb8086 offset 0x32d value 0x16

Let us all know if the Sonnet drivers work any better for you in Big Sur (though to my understanding they're a derivative of the Small Tree drivers anyway).
Thanks, but unfortunately this didn't work.

At this point I want to get back to square 1 and flash my backed up eeprom.
I originally ran this and saved the file:
ethtool -e enp1s0 raw on > enp1s0.bin

but not sure how to flash it back on.

Using this command didn't work:
ethtool -f|--flash enp1s0 enp1s0.bin
 
Thanks, but unfortunately this didn't work.

To be honest, I've never needed to revert, so I don't know how to flash it back using the backup file. However, what you can do is another backup of the eeprom in its present form, and then use a hex editor to compare it against the original. That'll tell you what bits are different, and thus what you'll need to manually revert back. It's a bit more of a pain, but there shouldn't be much that was changed anyway so it shouldn't be too big of a deal.

Before you do that though, answer me this: Had your card previously worked on Catalina or any prior MacOS, or is Big Sur the first OS you've tried it on?

If the latter, then as a quick sanity check, run this on the card in Linux:

Code:
lspci -nn -vvv | grep Ethernet

Your card should identify as something like this:
01:00.0 Ethernet controller [0200]: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb] (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520 [xxxx:xxxx]

The [xxxx:xxxx] part is what we've been manipulating. However, some cards (particularly Dell) might have a different DEV-ID as well. It's rare, but I've ran into a few. Doesn't hurt to make sure.
 
Last edited:
Back
Top