Skip to content

Releases: donatengit/AppleIGB

v5.11.4-mb Memory barriers as assumed by the original driver code

05 Oct 19:36
Compare
Choose a tag to compare

There are number of places in the original driver code relying on memory barriers: full (mb macro), read (rmb) and write (wmb), i.e. for example igb_clean_tx_irq(). All of these macros were historically empty. I've just adjusted them to rely on stdatomic's atomic_thread_fence presumably doing what is necessary. Please let me know if this helps on X570

#define wmb() atomic_thread_fence(memory_order_release)
#define rmb() atomic_thread_fence(memory_order_acquire)
#define mb() atomic_thread_fence(memory_order_seq_cst)

5.11.4

27 Aug 16:37
1b8d84f
Compare
Choose a tag to compare
5.11.4 Pre-release
Pre-release

This version adopts Intel's IGB 5.11.4 source code (last merge was with 5.7.2).

It won't, presumably, help those experiencing issues with X570 since nothing crucial is changed by Intel in the base logic as far as I could get. All changes seemed either cosmetic (e.g. "master" -> "main") or for the advanced features not being used by the driver (and OS). I merged code parts with original formatting so some diffs may contain a lot of whitespace changes, apologies, but it supposed to help to diff with the original source code.

Other than that there are a bit more of additional logging and disabled VLAN enabled by default (not sure why it was there in the first place).

UPD 09/25: Attaching a version with functions tracing DEBUG_FUNC, which generates a lot of logs. It's for special testing purposes, you probably don't need it.

5.7.2-im-eee-stall

26 Feb 14:50
Compare
Choose a tag to compare
5.7.2-im-eee-stall Pre-release
Pre-release
  • Explicitly stalling packets when transmit queue is busy (as in IntelMausi) [1]
  • Increased default queue capacity from 256 to 1024
  • Added options to (un)select EEE mode (there are notes that disabling it could fix spontaneous link problems)
  • Ensured software interrupt register in watchdog for rx ring cleaned

[1] This stabilizes output speed around ISP maximum in my setup

v5.7.2-im-eee

22 Feb 19:05
Compare
Choose a tag to compare
v5.7.2-im-eee Pre-release
Pre-release

Debug version for external testing. Stable in my environment

  • Explicitly rejecting packets when transmit queue is busy (before that it was kind of silent)
  • Increased default queue capacity from 256 to 1024
  • Added options to (un)select EEE mode (there are notes that disabling it could fix spontaneous link problems)
  • Ensured software interrupt register in watchdog for rx ring cleaned

5.7.2-im

20 Feb 18:40
Compare
Choose a tag to compare
5.7.2-im Pre-release
Pre-release

This release adopts/merges IntelMausi link management and code structure approach.
It should properly handle:

  1. Cable plug-in/-out (including switching between various link speed partners)
  2. Enable/disable via macOS Settings
  3. Enable/disable via ifconfig enX up/down
  4. Enable after sleep

And, hopefully, potential issues with connection drops (not reproducible on my I211 @ B450).

Tested on 1Gbps ISP cable and 100Mbs router's link both forced and autonegotiated (although on 1Gbps autoneg is always enable per Intel's source).

Note: please give it ~10 seconds to reset/negotiate if your changes of link state are frequent.

P.s. It also contains extended debug across the code, so feel free to sudo dmesg | grep -i igb while testing.

5.7.2

03 Feb 19:17
Compare
Choose a tag to compare
5.7.2 Pre-release
Pre-release
  • Unified & additional logging
  • Some warning fixes
  • Adjustments of enable/disable logic based on hints from IntelMausi source code to fix connections lost after sleep/suspend

Tested heavily on I211 NIC (B450 board) only on MacOS 12.2.

Attached RELEASE version as well