Native support for Intel I225-V on Sonoma

atanvarno

Donator
Donator
AMD OS X Member
Joined
May 2, 2020
Messages
228
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.
 

atanvarno

Donator
Donator
AMD OS X Member
Joined
May 2, 2020
Messages
228
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
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,373
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.
 

leesurone

Donator
Donator
AMD OS X Member
Joined
May 6, 2020
Messages
313
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.
 

atanvarno

Donator
Donator
AMD OS X Member
Joined
May 2, 2020
Messages
228
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.
 

atanvarno

Donator
Donator
AMD OS X Member
Joined
May 2, 2020
Messages
228
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.
 

atanvarno

Donator
Donator
AMD OS X Member
Joined
May 2, 2020
Messages
228
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.
 
Back
Top Bottom
  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.