Skip to content

Latest commit

 

History

History
90 lines (64 loc) · 8.59 KB

I225_stock_vs_cstmfw.md

File metadata and controls

90 lines (64 loc) · 8.59 KB

Conditions for Intel I225-V and 3rd party WiFi/LAN cards to work

I noticed that some users have issues with getting both 3rd party WiFi and Ethernet cards to work if they dropped the DMAR table and replaced it with a modified one without reserved memory regions. The DMAR table of the Z490 Vision G contains 2 reserved memory regions – one of theme is for the XHCI Controller which handles USB.

I've read in a support thread for the Aquantia 10 Gigabit Ethernet Card that it worked when the memory region for the XHCI controller (PCI Path: 14,00) remained in the DMAR table. OpenCore 0.8.0 even introduced an extra Quirk called ForceAquantiaEthernet to enable it in macOS.

So I conducted some tests with 3 variants of the DMAR table: one without memory regions and two more with either one or the other memory region removed. It turns out that:

  1. If you've flashed the custom firmware for the Intel I225-V Controller, it doesn't matter if you keep or and replace the stock DMAR table – it will work, as long as Vt-d is enabled and DisableIoMapper is set to false. 3rd Party Wifi/Ethernet cards may still require aforementioned memory regions, so it's best to not drop/replace the DMAR table!
  2. If the stock firmware is used, it's a different story.

Below you find the results of my tests and recommended settings for different scenarios.

Warning: Please use the [Latest Release](https://github.com/5T33Z0/Gigabyte-Z490-Vision-G-Hackintosh-OpenCore/releases) of my EFI folder before reporting any issues.

Enabling the Intel I225-V Ethernet Controller

Instructions:

  • Revert previous Fixes:

    • Disable/Delete SSDT-I225-V.aml(if present)
    • Disable/Delete FakePCIID.kext (if present)
    • Disable/Delete FakePCIID_Intel_I225-V.kext (if present)
    • Disable/Delete AppleIntelI210Ethernet.kext (if preent)
    • Disable Kernel/Patch __Z18e1000_set_mac_typeP8e1000_hw (if present)
  • Add AppleIGC.kext

    • Add AppleIGC.kext to EFI/OC/Kexts and config.plist.
    • Optional: add e1000=0 to boot-args (macOS Monterey+). For Big Sur, use dk.e1000=0. I don't need it on my system.
    • In Kernel/Quirks, turn on DisableIoMapper (might work without it. I need it on my I225-V with custom firmware).
    • Save your config and reboot
    • Run IORegistryExplorer and verify that the kext is servicing the Intel I225-V:
Previous instructions (Obsolete. Click to reveal.)
macOS Procedure
12 and 13 Apply the Controller Fix and then adjust the following settings in the config.plist:
  1. ACPI/Add → Disable DMAR.aml
  2. ACPI/Delete → Disable Drop OEM DMAR Table
  3. DeviceProperties → Disable PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) (put a hash symbol # in front of it)
  4. Kernel/Quirks → Uncheck DisableIOMapper
  5. Kernel/Quirks → Select DisableIoMapperMapping (macOS 13.3+ only, see Notes)
  6. Boot-args → Disable/Delete dk.e1000=0 and/or e1000=0 (put # in front of them)
NOTE: This is the default configuration. If you are using the modded firmware and my config, you don't have to change anything here!
11.4+
  1. DeviceProperties → Disable PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)(put # in front of it)
  2. Boot-args → add dk.e1000=0
  3. Save and reboot
10.15 to 11.3
  1. Enable #PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) (delete #)
  2. Go to Kernel/Patch and enable I225-V Patch.
  3. Delete/disable boot-arg dk.e1000=0
  4. Save and reboot.
10.14 and older Not compatible. You need a 3rd party WiFi/Ethernet Card!

Settings combinations, custom firmware:

macOS Vt-D DisableIoMapper DMAR (OEM) DMAR (dropped/replaced) I225-V / 3rd party LAN/WiFi
11.4 to 13.0 ON OFF YES NO / NO YES / YES
11.4 to 12.5 ON OFF NO YES / YES YES/ NO
11.4 to 12.5 OFF/ON ON NO YES / YES NO / YES
10.15 to 11.3 OFF/ON ON YES NO / NO YES / YES

NOTES:

  • In macOS 12, dropping DMAR table and replacing it by a modified one without Reserved Memory Regions may be required for Intel WiFi cards to work.
  • macOS 13.3+: OpenCore 0.9.2 introduced a new Quirk called DisableIoMapperMapping (works independently of DisableIoMapper). It address compatibility issues with Wi-Fi, Ethernet and Thunderbolt devices when AppleVTD is enabled inroduced by macOS 13.3. So if you had no connectivity issues prior to updating to macOS 13.3 or nwer, you can try this quirk and see if it fixes the issue. If your configuration required dropping and replacinig the DMAR table before it's still required now.

Settings combinations, stock firmware

macOS Vt-D DisableIoMapper DMAR (OEM) DMAR (dropped/replaced) I225-V / 3rd Party party LAN/WiFi
12.5+ (Fix Opt. 1) ON OFF YES NO / NO YES / YES
12.5+ (stock fw) ON OFF YES NO / NO NO / YES
11.4 to 11.6.7 ON ON 1 NO YES / YES YES / YES
10.15 to 11.3 OFF/ON OFF/ON YES NO / NO YES / NO

If you can't access the Internet after applying the settings, remove the following files via Terminal and reboot:

  • sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
  • sudo rm /Library/Preferences/SystemConfiguration/preferences.plist

Intel I225-V and macOS Ventura

In macOS Ventura, AppleIntelI210Ethernet.kext was removed from the IONetworkingFamily.kext located under /S/L/E/ because there are no Apple devices which have a 2.5 Gigabit port. Therefore, boot-args dk.e1000=0 (Big Sur) and e1000=0 (Monterey) which ensured that the I225 Controller could connect to the AppleIntelI210Ethernet.kext will no longer work. But there's a workaround.

Stock Firmware Users

Follow these Instructions to enable the I225-V Controller in macOS Ventura.

Custom firmware users

  • Luckily for us, the .dext version of the AppleIntelI210Ethernet driver is still present under /S/L/DriverExtensions
  • Therefore you need to disable boot-args dk.e1000=0 and e1000=0 so that the I225 can connect to the .dext driver.

This way, Internet is working for macOS Catalina up to Ventura.

NOTES

  • You can leave the Kernel Patch for macOS Catalina enabled since it will only be applied up to Kernel 20.4 so it won't affect Big Sur and newer. But you have to disable the device property PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) since the included Device-ID will spoof the I225-V as I219 which will result in Internet not working on Big Sur 11.4 and newer. So put # in front of the mentioned PCI path to disable it. See this issue report for further details.
  • The provided info about WiFi is based on issue reports discussed here and in the I225-V thread for macOS Monterey since I don't use WiFi. There's also a support thread for I225-V on macOS Ventura
  • Guide for dropping/replacing the DMAR table
  • If you've changed something in the DeviceProperties for testing and revert the settings later, Internet may not work. In this case reset the kernel cache by entering sudo kextcache -i / in Terminal.

Footnotes

  1. Combining Vt-D and DisableIOMapper makes no sense to me in regards to getting the I225-V working in macOS but that's what the user reported as working.