diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6a229b10b..782cde344 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,9 @@
- Applicable to 3802-based GPUs (ie. Intel Ivy Bridge and Haswell iGPUs, Nvidia Kepler dGPUs)
- Remove MacBook4,1 references
- Machine was never properly supported by OCLP
+- Restore support for Aquantia Aqtion 10GBe Ethernet for Pre-VT-d systems on 12.3 and newer
+ - i.e. MacPro5,1 with AQC107 expansion card running macOS Ventura/Monterey 12.6.x
+ - Thanks [@jazzzny](https://github.com/jazzzny)
- Backend Changes:
- device_probe.py:
- Add USB device parsing via `IOUSBDevice` class
diff --git a/README.md b/README.md
index b08e0da66..f95780123 100644
--- a/README.md
+++ b/README.md
@@ -93,6 +93,7 @@ To run the project from source, see here: [Build and run from source](./SOURCE.m
* [FixPCIeLinkrate](https://github.com/joevt/joevtApps)
* [Jazzzny](https://github.com/Jazzzny)
* Research and various contributions to the project
+ * Aquantia Ethernet Patch
* Amazing users who've graciously donate hardware:
* [JohnD](https://forums.macrumors.com/members/johnd.53633/) - 2013 Mac Pro
* [SpiGAndromeda](https://github.com/SpiGAndromeda) - AMD Vega 64
diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist
index 2b2b25c15..e6372dd19 100644
--- a/payloads/Config/config.plist
+++ b/payloads/Config/config.plist
@@ -1581,6 +1581,42 @@
PlistPath
Contents/Info.plist
+
+ Arch
+ x86_64
+ Comment
+ Aquantia Ethernet Patch - Core
+ Enabled
+
+ MaxKernel
+
+ MinKernel
+ 21.4.0
+ BundlePath
+ AppleEthernetAbuantiaAqtion.kext
+ ExecutablePath
+ Contents/MacOS/AppleEthernetAbuantiaAqtion
+ PlistPath
+ Contents/Info.plist
+
+
+ Arch
+ x86_64
+ Comment
+ Aquantia Ethernet Patch - Firmware
+ Enabled
+
+ MaxKernel
+
+ MinKernel
+ 21.4.0
+ BundlePath
+ AppleEthernetAbuantiaAqtionFirmware.kext
+ ExecutablePath
+ Contents/MacOS/AppleEthernetAbuantiaAqtionFirmware
+ PlistPath
+ Contents/Info.plist
+
Block
diff --git a/payloads/Kexts/Ethernet/AppleEthernetAbuantiaAqtion-v1.0.0.zip b/payloads/Kexts/Ethernet/AppleEthernetAbuantiaAqtion-v1.0.0.zip
new file mode 100644
index 000000000..ac2be55da
Binary files /dev/null and b/payloads/Kexts/Ethernet/AppleEthernetAbuantiaAqtion-v1.0.0.zip differ
diff --git a/payloads/Kexts/Ethernet/AppleEthernetAbuantiaAqtionFirmware-v1.0.0.zip b/payloads/Kexts/Ethernet/AppleEthernetAbuantiaAqtionFirmware-v1.0.0.zip
new file mode 100644
index 000000000..5ff7c25ba
Binary files /dev/null and b/payloads/Kexts/Ethernet/AppleEthernetAbuantiaAqtionFirmware-v1.0.0.zip differ
diff --git a/resources/build/networking/wired.py b/resources/build/networking/wired.py
index 63daf0522..8e41b1f2a 100644
--- a/resources/build/networking/wired.py
+++ b/resources/build/networking/wired.py
@@ -63,6 +63,14 @@ class BuildWiredNetworking:
support.BuildSupport(self.model, self.constants, self.config).enable_kext("nForceEthernet.kext", self.constants.nforce_version, self.constants.nforce_path)
elif isinstance(controller, device_probe.Marvell) or isinstance(controller, device_probe.SysKonnect):
support.BuildSupport(self.model, self.constants, self.config).enable_kext("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path)
+
+ # Pre-Ivy Bridge Aquantia Ethernet Patch
+ if isinstance(controller, device_probe.Aquantia) and controller.chipset == device_probe.Aquantia.Chipsets.AppleEthernetAquantiaAqtion:
+ if not self.model in smbios_data.smbios_dictionary:
+ continue
+ if smbios_data.smbios_dictionary[self.model]["CPU Generation"] < cpu_data.CPUGen.ivy_bridge.value:
+ support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleEthernetAbuantiaAqtion.kext", self.constants.aquantia_version, self.constants.aquantia_path)
+ support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleEthernetAbuantiaAqtionFirmware.kext", self.constants.aquantiafirmware_version, self.constants.aquantiafirmware_path)
def _prebuilt_assumption(self) -> None:
diff --git a/resources/constants.py b/resources/constants.py
index 9023e4f0e..6cd3f0a71 100644
--- a/resources/constants.py
+++ b/resources/constants.py
@@ -73,6 +73,10 @@ class Constants:
self.bigsursdxc_version: str = "1.0.0" # BigSurSDXC
self.monterey_ahci_version: str = "1.0.0" # CatalinaAHCI
+ ## Apple - Jazzzny Modified
+ self.aquantia_version: str = "1.0.0" # AppleEthernetAbuantiaAqtion
+ self.aquantiafirmware_version: str = "1.0.0" # AppleEthernetAbuantiaAqtionFirmware
+
## Dortania
## https://github.com/dortania
self.backlight_injector_version: str = "1.1.0" # BacklightInjector
@@ -341,6 +345,14 @@ class Constants:
@property
def bcm570_path(self):
return self.payload_kexts_path / Path(f"Ethernet/CatalinaBCM5701Ethernet-v{self.bcm570_version}.zip")
+
+ @property
+ def aquantia_path(self):
+ return self.payload_kexts_path / Path(f"Ethernet/AppleEthernetAbuantiaAqtion-v{self.aquantia_version}.zip")
+
+ @property
+ def aquantiafirmware_path(self):
+ return self.payload_kexts_path / Path(f"Ethernet/AppleEthernetAbuantiaAqtionFirmware-v{self.aquantiafirmware_version}.zip")
@property
def i210_path(self):