Native support for Intel I225-V on Sonoma

atanvarno

Donator
Donator
AMD OS X Member
May 2, 2020
230
1
91
28
Serbia
CPU:
5900X
Current Sonoma versions (I have 14.3.1) should support Intel I225-V Ethernet NIC out of the box. I have that working with MacAbe's SSDT + AppleIntelI210Ethernet_i225v.kext + e1000=0 boot-arg but would love to remove all that and use native .dext. (I prefer as simple EFI as possible)

Thus I removed all of that + deleted two .plist files to force macOS to re-enumerate network interfaces on next cold-start.

On first glance, after restart, everything seems fine in SysInfo, Hackintool and IORegExp:

native-I225-sysinfo.png

Interesting to note here is that device-id and other values are exactly the same as SSDT I was using previously.

native-I225-hackintool.png
native-I225-ioreg.png

But turning WiFi off and connecting a cable will get me only self-assigned IP and after some short period of time entire macOS would crash.
I was watching the Details panel in System Settings / Network and driver would correctly negotiate 1Gbps speed which is maximum for the router port.

Not sure what this could be.
 
Here's one crash log, not sure how useful it is

Code:
panic(cpu 0 caller 0xffffff80117dbecb): Invalid queue linkage: elt:0xffffff9043cd1610 {prev:0xffffff9043d3b370, next:0xffffff9043cca6d0, prev->next:0x3061323234363535, next->prev:0xffffff9043cd1610} @mpsc_queue.c:46
NULL bsd_info pointer
Panicked task 0xffffff86aa820008: 1 threads: unknown task
Backtrace (CPU 0), panicked thread: 0xffffff8b76d39598, Frame : Return Address
0xfffffffc004bf5c0 : 0xffffff8011036c41 mach_kernel : _handle_debugger_trap + 0x4b1
0xfffffffc004bf610 : 0xffffff80111955c0 mach_kernel : _kdp_i386_trap + 0x110
0xfffffffc004bf650 : 0xffffff8011184d0c mach_kernel : _kernel_trap + 0x55c
0xfffffffc004bf6d0 : 0xffffff8010fd3971 mach_kernel : _return_from_trap + 0xc1
0xfffffffc004bf6f0 : 0xffffff8011036f2d mach_kernel : _DebuggerTrapWithState + 0x5d
0xfffffffc004bf7e0 : 0xffffff80110365d3 mach_kernel : _panic_trap_to_debugger + 0x1e3
0xfffffffc004bf840 : 0xffffff80117d8d0b mach_kernel : _panic + 0x84
0xfffffffc004bf930 : 0xffffff80117dbecb mach_kernel : ___queue_element_linkage_invalid + 0x2e
0xfffffffc004bf950 : 0xffffff801116663b mach_kernel : _pmap_remove_range + 0xb8b
0xfffffffc004bfa20 : 0xffffff8011166921 mach_kernel : _pmap_remove_options + 0x231
0xfffffffc004bfa70 : 0xffffff80110eda6b mach_kernel : _vm_map_destroy + 0x23bb
0xfffffffc004bfac0 : 0xffffff80110ec879 mach_kernel : _vm_map_destroy + 0x11c9
0xfffffffc004bfc40 : 0xffffff80110f6c97 mach_kernel : _vm_map_terminate + 0xf7
0xfffffffc004bfca0 : 0xffffff80110782a7 mach_kernel : _task_terminate_internal + 0x1a7
0xfffffffc004bfce0 : 0xffffff8011016c3e mach_kernel : _ipc_mqueue_copyin + 0x20e
0xfffffffc004bfd30 : 0xffffff801107d622 mach_kernel : _task_deliver_crash_notification + 0x192
0xfffffffc004bfd80 : 0xffffff801108a082 mach_kernel : _thread_terminate_self + 0x4e2
0xfffffffc004bfe50 : 0xffffff801108e9f5 mach_kernel : _thread_apc_ast + 0xa5
0xfffffffc004bfe80 : 0xffffff801102cac1 mach_kernel : _ast_taken_user + 0x161
0xfffffffc004bfeb0 : 0xffffff8010fd393d mach_kernel : _return_from_trap + 0x8d
NULL bsd_info pointer

Process name corresponding to current thread (0xffffff8b76d39598): Unknown
Boot args: keepsyms=1 agdpmod=pikera alcid=13 itlwm_cc=RS revpatch=auto,sbvmm 

Mac OS version:
23D60
 
Remove the SSDT, kext and the e1000=0 boot argument, then enable VT-D in your BIOS and disable Kernel > Quirks > DisableIoMapper in config.plist.

See if the Ethernet port works with the native dext provided by Apple.
 
Here's one crash log, not sure how useful it is

Code:
panic(cpu 0 caller 0xffffff80117dbecb): Invalid queue linkage: elt:0xffffff9043cd1610 {prev:0xffffff9043d3b370, next:0xffffff9043cca6d0, prev->next:0x3061323234363535, next->prev:0xffffff9043cd1610} @mpsc_queue.c:46
NULL bsd_info pointer
Panicked task 0xffffff86aa820008: 1 threads: unknown task
Backtrace (CPU 0), panicked thread: 0xffffff8b76d39598, Frame : Return Address
0xfffffffc004bf5c0 : 0xffffff8011036c41 mach_kernel : _handle_debugger_trap + 0x4b1
0xfffffffc004bf610 : 0xffffff80111955c0 mach_kernel : _kdp_i386_trap + 0x110
0xfffffffc004bf650 : 0xffffff8011184d0c mach_kernel : _kernel_trap + 0x55c
0xfffffffc004bf6d0 : 0xffffff8010fd3971 mach_kernel : _return_from_trap + 0xc1
0xfffffffc004bf6f0 : 0xffffff8011036f2d mach_kernel : _DebuggerTrapWithState + 0x5d
0xfffffffc004bf7e0 : 0xffffff80110365d3 mach_kernel : _panic_trap_to_debugger + 0x1e3
0xfffffffc004bf840 : 0xffffff80117d8d0b mach_kernel : _panic + 0x84
0xfffffffc004bf930 : 0xffffff80117dbecb mach_kernel : ___queue_element_linkage_invalid + 0x2e
0xfffffffc004bf950 : 0xffffff801116663b mach_kernel : _pmap_remove_range + 0xb8b
0xfffffffc004bfa20 : 0xffffff8011166921 mach_kernel : _pmap_remove_options + 0x231
0xfffffffc004bfa70 : 0xffffff80110eda6b mach_kernel : _vm_map_destroy + 0x23bb
0xfffffffc004bfac0 : 0xffffff80110ec879 mach_kernel : _vm_map_destroy + 0x11c9
0xfffffffc004bfc40 : 0xffffff80110f6c97 mach_kernel : _vm_map_terminate + 0xf7
0xfffffffc004bfca0 : 0xffffff80110782a7 mach_kernel : _task_terminate_internal + 0x1a7
0xfffffffc004bfce0 : 0xffffff8011016c3e mach_kernel : _ipc_mqueue_copyin + 0x20e
0xfffffffc004bfd30 : 0xffffff801107d622 mach_kernel : _task_deliver_crash_notification + 0x192
0xfffffffc004bfd80 : 0xffffff801108a082 mach_kernel : _thread_terminate_self + 0x4e2
0xfffffffc004bfe50 : 0xffffff801108e9f5 mach_kernel : _thread_apc_ast + 0xa5
0xfffffffc004bfe80 : 0xffffff801102cac1 mach_kernel : _ast_taken_user + 0x161
0xfffffffc004bfeb0 : 0xffffff8010fd393d mach_kernel : _return_from_trap + 0x8d
NULL bsd_info pointer

Process name corresponding to current thread (0xffffff8b76d39598): Unknown
Boot args: keepsyms=1 agdpmod=pikera alcid=13 itlwm_cc=RS revpatch=auto,sbvmm

Mac OS version:
23D60
I've never been able to get native support working for the i225v controller on my AMD machine, I'm still using AppleIntelI210Ethernet_i225v.kext with the boot argument e1000=0. AppleIGB.kext does not work for me either, with or without a boot argument, I don't need any SSDT's though.
 
Mildly interesting: there's this oft-linked page explaining how to apply custom firmware to the I225.

It includes a screenshot showing what is changed in the firmware so macOS can recognize it. I assume the non-green area is identical to original firmware they modified.

I used the same eeupdate64e.efi to extract the firmware file from my board (Asus B550I) and when comparing that original and modded one, there's quite a lot of difference. Thus I assume my NIC has different firmware than Gigabyte's Z490 Vision G board where this was taken from.

Screenshot 2024-02-18 at 17.59.39.png

Fun. :)

I doubt I need this at all since Sonoma 14.3.1 recognizes my particular one but it is interesting to note that a lot of different I225's exist out there.
 
Remove the SSDT, kext and the e1000=0 boot argument, then enable VT-D in your BIOS and disable Kernel > Quirks > DisableIoMapper in config.plist.

See if the Ethernet port works with the native dext provided by Apple.
I wrote in the first post I have removed SSDT, boot-arg and kext. Re-checked Device Properties to make sure nothing references Ethernet NIC.

Regarding BIOS, I tried with IOMMU on/off and/or SVM Mode (CPU virtualization) on/off. No difference in behavior.
 
For whatever reason, native .dext driver in macOS Sonoma (currently on 14.3.1) won't work with I225-V on Asus ROG Strix B550I Gaming. I tried pretty much anything and it simply does not work. I'll keep checking in future Sonoma updates as it is likely some bug in the native driver itself; maybe they fix accidentally.

Thus for now — using AppleIGC.kext (version 1.4d1) and added e1000=0 to boot-args to the disable native driver. This works very reliably, including Messages and FaceTime.

Note about BIOS 3402 settings: IOMMU is set to Enabled and SVM Mode is also set to Enabled. First one is equivalent to VT-d on Intel and it is likely crucial settings to enable AppleIGC.kext to work.
 
  • Like
Reactions: Edhawk
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.