Hmm, does the boot arg provide any advantages over the kernel patch except that it won't break after OS updates?
Update: If Thunderbolt is enabled, we must provide a SSDT that defines NHI0
Last edited:
Hmm, does the boot arg provide any advantages over the kernel patch except that it won't break after OS updates?
This may be a good challenge to take up next. The experience we gained from compiling and patching IOPCIFamily could be applied here. We know that I225-V works in Monterey if we use IOPCIFamily from Big Sur. So that is the motivation for finding a patch.I currently have Monterey 12.5 with AQC107 built-in ethernet not working right now. Any instruction you provide, I can assist in testing and ultimately get it working. (When your priority comes to that)
My findings and trials so far:
1. The longest lasting config was:
- No Aquantia patch via kernel/patches
- ForceAquantiaEthernet = true
- DisableIOMapper = false
- BIOS - SVM Mode OFF, IOMMU Mode Auto (BIOS Default)
However this leads to the Ethernet interface to go into Self Assigned IP mode, and sometimes lead to KP and reboot.
2. Any combination of kernel patches immediately leads to kernel panic along with ForceAquantiaEthernet = true, followed by reboot
3. Leaving ForceAquantiaEthernet = false renders any kernel patches useless (V1, V2, V3)
4. While leaving ForceAquantiaEthernet = false, Tried DisableIOMapper = false and enabled every possible BIOS option that can help enable CPU Virtualization didn’t make AppleVTD to appear.
Yes that is another benefit of the boot argument. It will work with any version of macOS and also any mode (release mode, debug mode, development mode).Hi @CaseySJ
this boot arg seems it could be used also without negative side effects also in systems which does not need of it
if it works also on x570 (MSI) and on some TRX40 board could be very interesting for those users
Thanks again for all your investigation and great results in this field
But doesn't it disable both ETFs even if one doesn't break anything?Yes that is another benefit of the boot argument. It will work with any version of macOS and also any mode (release mode, debug mode, development mode).
Because we have source code for macOS, it gave us a huge gigantic advantage in figuring this out…What's interesting is that MSI boards were able to run Monterey without any of this stuff before the AGESA update that added support for Zen 3 CPUs, maybe we could somehow fix the problem directly from the firmware without modifying macOS, might be a better solution if possible.
Exactly my concern as well. I don’t know what the two custom ETFs are responsible for, hence I’ll try patch 3, which is to disable the inner if-condition only, without sacrificing extendedDeviceCaps2.But doesn't it disable both ETFs even if one doesn't break anything?
…
That would be very welcome — MMIO is still a new topic for me.Now that this problem is solved, I'll try making a good MmioWhitelist guide and PRing it to Dortania, to make it easily available to users.
if you have some time...That would be very welcome — MMIO is still a new topic for me.
Awesome — will take a look.if you have some time...
and this one from @iGPULet talk about...Devirtualise MMIO quirk and MMIO Whitelist!
In this thread we will try to explain the function of this very interesting quirk and above all of the related section of MMIO Whitelist which is even more fundamental for different systems. The topic has been recently documented in a more exhaustive way in the OpenCore configuration pdf, but now...www.macos86.it
[Discussion] - TRX40 Bare Metal - Vanilla Patches
www.macos86.it
and this from opencore devs done some years ago!
OpenCore General Discussion
www.insanelymac.com
What exactly do you mean by "it will cause user interface to crawl until Ethernet cable is removed"?** KernelDevice Property:Patchfor Intel I225-V in Monterey **
IGNORE EVERYTHING BELOW THE LINE
To enable I225-V in Monterey, we just need to insert device-id F3158680 and no kernel patch
There are no issues (yet) with this method
This is being posted from vanilla Monterey on AM5 (Ryzen 7 7700X) with WiFi disabled and I225-V connected, to prove that all I/O is occurring through the wired Ethernet port
- device-id F3158680
- This property causes AppleIntelI210Ethernet driver to attach instead of the newer DriverKit
Warning:
Just found an issue with this patch -- if any network device is turned off and then turned on,
it will cause user interface to crawl until Ethernet cable is removed
Purpose:
On AMD Ryzen systems running Monterey, the native Intel I225-V driver causes the system to crash when an Ethernet cable is connectedThis patch solves that problem, but it requires a Device Property to be injectedTherefore, there are two parts to this solution
Apply the kernel patch belowApply the device property below
Kernel Patch:
Arch: x86_64Identifier: com.apple.iokit.IOPCIFamilyComment: CaseySJ - Fix EthernetFind: 488B4060 81782C00 000200Replace: 488B4060 81782CCC CC0C00Min Kernel: 21.0.0Max Kernel: 21.99.99Count: 1Enabled: True
I performed these steps with the kernel patch:What exactly do you mean by "it will cause user interface to crawl until Ethernet cable is removed"?
The KEXT got removed in Ventura, that's probably why it doesn't work, it has to be injected with OpenCore. Try without any DeviceProperties but e1000=0 and the KEXT should attach just fine.I performed these steps with the kernel patch:
But without the kernel patch (i.e. with device property only), everything works fine.
- WiFi enabled by default on system boot
- Ethernet cable disconnected on system boot
- When system fully booted, I inserted Ethernet cable
- After a few seconds, Ethernet port connected and received valid IP address from DHCP
- I disabled WiFi to make sure Ethernet port was working
- WiFi was disabled with no issue
- Ethernet port worked properly
- Then I re-enabled WiFi
- At this point it seemed as if the system hanged because the mouse pointer would not appear to move -- but it moved once every 5 seconds
- Hence, "user interface crawled"
- Without rebooting the system, I just removed the Ethernet cable
- Immediately the system came back to normal operation
However, this device property method does not work in Ventura. So I'm trying some experiments there.
Native device ID is 0x15F3...
Also, try spoofing device-id to F3150000, 8086 is the vendor-id and shouldn't be in the device-id. But AFAIK the KEXT already supports the native device-id (F215), so you should be able to just add e1000=0 to boot-args to disable the DEXT.
Did you inject AppleIntelI210Ethernet?Native device ID is 0x15F3
Monterey:
Ventura:
- device-id 53150000 causes system to hang in the final stage of boot
- e1000=0 works the same as device-id F3158680, and I agree that boot argument is preferred over Device Property
- Device Property requires the specific PCI path of each board's i225-V controller
- boot argument works the same for everyone
View attachment 8244
- e1000=0 (and no device properties) causes System Information to report:
- Let me see what the kernel patch does in Ventura...
Wow, 10b ETF support directly toggle-able in BIOS!!@CaseySJ
I just updated my BIOS and was re-doing my settings when I came across this value (see attached image). Could you see if Ventura boots with this set to Enabled and without any patch/boot arg? (if you can find that option, of course, it was until AMD CBS for me)