Suggestion: Add "Fix PCI bus enumeration" kernel patches
Congrats to your very interesting project and Happy New Year. I've tested it on 3 differen systems so far and I am impressed how well this works (almost) out of the box (will report about my experiencs in the "Discussion" section later).
Anyway, I've noticed is that there is room for improvement. For macOS Ventura and newer, you could add the following Kernel Patches from the OCLP config by CaseySJ:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel</key>
<dict>
<key>Patch</key>
<array>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>Base</key>
<string>__ZN17IOPCIConfigurator18IOPCIIsHotplugPortEP16IOPCIConfigEntry</string>
<key>Comment</key>
<string>Fix PCI bus enumeration (Ventura)</string>
<key>Count</key>
<integer>1</integer>
<key>Enabled</key>
<false/>
<key>Find</key>
<data>hNt1S0GLVzg=</data>
<key>Identifier</key>
<string>com.apple.iokit.IOPCIFamily</string>
<key>Limit</key>
<integer>0</integer>
<key>Mask</key>
<data></data>
<key>MaxKernel</key>
<string>22.99.99</string>
<key>MinKernel</key>
<string>22.0.0</string>
<key>Replace</key>
<data>hNvrS0GLVzg=</data>
<key>ReplaceMask</key>
<data></data>
<key>Skip</key>
<integer>0</integer>
</dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>Base</key>
<string>__ZN17IOPCIConfigurator18IOPCIIsHotplugPortEP16IOPCIConfigEntry</string>
<key>Comment</key>
<string>Fix PCI bus enumeration (Sonoma)</string>
<key>Count</key>
<integer>1</integer>
<key>Enabled</key>
<false/>
<key>Find</key>
<data>RYTkdUs=</data>
<key>Identifier</key>
<string>com.apple.iokit.IOPCIFamily</string>
<key>Limit</key>
<integer>0</integer>
<key>Mask</key>
<data></data>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string>23.0.0</string>
<key>Replace</key>
<data>RYTk60s=</data>
<key>ReplaceMask</key>
<data></data>
<key>Skip</key>
<integer>0</integer>
</dict>
</array>
</dict>
</dict>
</plist>
This removes the menubar entry for ejecting/disabling PCI devices (even though they are not removable):

It's purely cosmetic, and I don't have any concrete indication of which devices specifically might be affected. Adding it wouldn't be difficult for me, but I'm trying to minimize cosmetic patches to avoid excessive nitpicking from others.
There's an additional patch for AM5 motherboards: https://github.com/AMD-OSX/AMD_Vanilla/blob/master/patches.plist#L549C4-L578C11
There's an additional patch for AM5 motherboards: https://github.com/AMD-OSX/AMD_Vanilla/blob/master/patches.plist#L549C4-L578C11
Hi and thanks for your scrips they seems very interesting to help people to build a proper EFI This patch you are quoting is mandatory for AM5 system and in my case it is disabled when your script produces a "working" EFI for my build How to help you to improve AM5 part of your applications?
@lzhoang2801 if you are interested to see that for AM5 is not a cosmetic problem have that patch disabled you could read here the job done to understand and then to create that patch: https://forum.amd-osx.com/threads/ryzen-7000-testing.3318/post-27578
@fabiosun I've updated it (https://github.com/lzhoang2801/OpCore-Simplify/commit/ca3d86c069d288cb53f40b3b7d97937b2858666b). Thank you. However, OpCore Simplify still doesn't fully support the AM5 series. This is limited by the Hardware Sniffer's ability to collect MMIO devirt information. Hopefully, someone who understands the logic OpenCore Debug uses to obtain these values can help.
@fabiosun I've followed up on insanelymac and there are a couple of points you raised that I'll clarify.
- OpCore Simplify currently doesn't support Aquantia ethernet hardware, so it assumes no ethernet hardware exists and generates a NullEthernet to ensure iServices function correctly.
- Regarding IntelMKLFixup, it's definitely useful. See https://github.com/Carnations-Botanica/IntelMKLFixup
@fabiosun To add support for Aquantia ethernet hardware, I need the device IDs of the working devices and instructions on how to activate them. Please ensure the solution is as flexible as possible to maintain the project's goal of simplification. Information like that provided in this issue will be very helpful: https://github.com/lzhoang2801/OpCore-Simplify/issues/65
- OpCore Simplify currently doesn't support Aquantia ethernet hardware, so it assumes no ethernet hardware exists and generates a NullEthernet to ensure iServices function correctly.
About point 1) I have two ethernet cards I226 Aquantia i226 has support with a different kexts (AppleIGC.kext) Aquantia has support adding a quirk and a set of kernel patches which works for AMD and intel system Patches link: https://github.com/CaseySJ/Aquantia-macOS-Patches
About point 2) I know well and i helped original people to debug this problem before the kext you proposed was created ( no polemics but read the credits of that github (Tomnic and macos86.it and their job on AMDFriend script which i prefer to use if i need it ;)
OpCore Simplify still doesn't fully support the AM5 series.
you did a wonderful job, and it would be interesting if you could improve also reading MMIO part inside an opencore log in a future wishlist to build an EFI if it could be possible read json file as your app does and also a debug log to extrapolate usefull mmio in creating a "working" EFI
then if you like i could help in pthers area to have it fully working for AM5/Am4 platform however thank you and great job ;)
@fabiosun 1. AppleIGC should be added, please send me the Report.json file. 2. Collecting MMIO Devirt values is problematic because the OpenCore Debug log file is difficult to parse. Hardware Sniffer can read this information from Windows, but I'm unsure which values should be discarded and which should be retained. I've tried comparing across multiple machines, but haven't found a solution yet.