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):