Releases: donatengit/AppleIGB
v5.11.4-mb Memory barriers as assumed by the original driver code
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
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
- 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
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
This release adopts/merges IntelMausi link management and code structure approach.
It should properly handle:
- Cable plug-in/-out (including switching between various link speed partners)
- Enable/disable via macOS Settings
- Enable/disable via
ifconfig enX up/down
- 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
- 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