Contribute
Register

Gigabyte Z690 Aero G + i5-12600K + AMD RX 6800 XT

This Screenshot is with BlueToolFixup enabled. Thanks!
View attachment 539467

Here is the equivalent screenshot from my Fenvi BCM94360NG M.2 module installed in AMD B550 Vision D. There are some differences:
  • Mine: kUSBVendorString "Apple", Yours: "Broadcom Corp"
  • Mine: kUSBProductString "Bluetooth USB Host Controller", Yours: "BCM20702A0"
  • Mine: idProduct "0x828d", Yours: "0x22be"
  • Mine: bcmDevice "0x150", Yours: "0x112"
  • Mine: non-removable "yes", Yours: "no"
  • Mine: UsbUserClientEntitlement "com.apple.bluetooth.control", Yours: <missing>
  • Mine: USBPortType "1", Yours: "0"
Screen Shot 2022-01-14 at 4.14.34 PM.png
 
Forgive me for commenting on this ... I do not doubt your test is valid, nor that your work is exemplary ...

But, that's just plain crazy. A code injection (quirk) designed to open up the ports, along with an SSDT that defines 22x ports, limits the number to 15. Whereas, when working properly, the quirk needs to be disabled for that to happen.

I can only conclude that this is a "bug".

If it had a logic to it, I'd understand and say so. But when things work counter-intuitively to the way they are meant to, I wouldn't go that route for fear of other, unseen, effects.

:)
Someone once explained the details, which I'll try to paraphrase:
  • Think of a while loop in C code like this:
C:
int num_usb_ports_found = 0;
int loop_counter = 0;
bool found = false;

while (loop_counter < 15)
{
   found = FindNextUSBPort();
   if (found == true)
      num_usb_ports_found = num_usb_ports_found + 1;
   loop_counter = loop_counter + 1;
}
  • This shows that macOS will search for a maximum of 15 USB ports because the counter only goes up to 15.
  • But what if we patched this code by changing "15" to something larger, like this:
C:
while (loop_counter < 26)
{
   found = FindNextUSBPort();
   if (found == true)
      num_usb_ports_found = num_usb_ports_found + 1;
   loop_counter = loop_counter + 1;
}
  • Now the loop will run up to 26 times and will discover up to 26 USB ports.
  • The XhciPortLimit kernel quirk does something like this. It changes the upper limit of some loop variable or other condition.
So if we have a USB SSDT with up to 15 ports, we don't need to change the loop condition. But if the same USB SSDT defines more than 15 ports, we must change the loop condition.
 

Thanks.
Someone once explained the details, which I'll try to paraphrase:
  • Think of a while loop in C code like this:
C:
int num_usb_ports_found = 0;
int loop_counter = 0;
bool found = false;

while (loop_counter < 15)
{
   found = FindNextUSBPort();
   if (found == true)
      num_usb_ports_found = num_usb_ports_found + 1;
   loop_counter = loop_counter + 1;
}
  • This shows that macOS will search for a maximum of 15 USB ports because the counter only goes up to 15.
  • But what if we patched this code by changing "15" to something larger, like this:
C:
while (loop_counter < 26)
{
   found = FindNextUSBPort();
   if (found == true)
      num_usb_ports_found = num_usb_ports_found + 1;
   loop_counter = loop_counter + 1;
}
  • Now the loop will run up to 26 times and will discover up to 26 USB ports.
  • The XhciPortLimit kernel quirk does something like this. It changes the upper limit of some loop variable or other condition.
So if we have a USB SSDT with up to 15 ports, we don't need to change the loop condition. But if the same USB SSDT defines more than 15 ports, we must change the loop condition.

Good analogy. :thumbup:

What I am not comfortable with is the assumption made about the size of the array. People seem to be suggesting there isn't one, or that it will expand as needed. Given the hardware Apple has used I find this hard to believe. If you add an extra PCIe card with USB controller on it to an old Mac Pro, even with the same chipset as the Intel one, it will treat it separately and not just expand the regular port number. Ergo a new array is set up to accommodate it.

Also, it is worth considering why "15" was chosen. No Mac has that many ports, natively. So is it because it is one less than 16?

@RehabMan covered this way back. Fourth paragraph in. People tend to skip the guide because it is so comprehensive. (Not your good self, I realise :) ).

So while I accept the loop-counting analogy, the potential 'overflow' problem still exists in my view. The fact that XhciPortLimit is broken since Big Sur 11.3 makes me uneasy ...

This is in no way a criticism of your work, and I don't doubt you've had the results you have. If it works, it works. Simple. But so does an open-all-ports setup, with the above caveats. What needs explaining, I feel, is why a port-limit removal patch that does not work for port mapping, does work in this way.

:)
 
Last edited:
** OpenCore 0.7.7 for Gigabyte Z690 Aero G Alder Lake **
Supports Big Sur and Monterey
Please do not quote this post in its entirely. Use a link instead.

Also available from HackinDROM

** NOTE **

Please use OpenCore Configurator 2.56.0.0 and ensure that it's set to
0.7.7 Release Configuration

When using OpenCore Configurator, ensure that only one EFI partition is mounted​

...
Tested this version. System went to sleep but then had instant wake a few seconds after. This is without CommanderProFix.kext installed.

I'll install the kext now. If it doesn't work, I'll do fresh install since I had originally installed and then did a migration from my z170-Deluxe build.
 
Last edited:
Tested this version. System went to sleep but then had instant wake a few seconds after. This is without CommanderPro.kext installed.
Let's see if we can narrow down the sleep issue. First, the basics:
  • What USB devices are connected to the internal USB 2.0 ports?
  • Which WiFi/BT module are you using?
  • If the GC-Maple Ridge card is installed, is it in the middle long slot?
  • And is it connected via 5-pin Thunderbolt header cable instead of 3-pin?
  • Which version of macOS?
  • Are any Thunderbolt devices connected to GC-Maple Ridge?
  • Are there any other PCIe devices installed other than AMD GPU and WiFi/BT card?
  • Is Wake for Network Access turned off in System Preferences --> Energy Saver?
  • What is the output of this command in Terminal: pmset -g assertions
 
Let's see if we can narrow down the sleep issue. First, the basics:
  • What USB devices are connected to the internal USB 2.0 ports?
  • Which WiFi/BT module are you using?
  • If the GC-Maple Ridge card is installed, is it in the middle long slot?
  • And is it connected via 5-pin Thunderbolt header cable instead of 3-pin?
  • Which version of macOS?
  • Are any Thunderbolt devices connected to GC-Maple Ridge?
  • Are there any other PCIe devices installed other than AMD GPU and WiFi/BT card?
  • Is Wake for Network Access turned off in System Preferences --> Energy Saver?
  • What is the output of this command in Terminal: pmset -g assertions
  • What USB devices are connected to the internal USB 2.0 ports? Intel one that shipped with mobo.
  • Which WiFi/BT module are you using? Disabled.
  • If the GC-Maple Ridge card is installed, is it in the middle long slot? Yes
  • And is it connected via 5-pin Thunderbolt header cable instead of 3-pin? Both pins are connected
  • Which version of macOS? 12.1
  • Are any Thunderbolt devices connected to GC-Maple Ridge? None powered on
  • Are there any other PCIe devices installed other than AMD GPU and WiFi/BT card? Nope
  • Is Wake for Network Access turned off in System Preferences --> Energy Saver? Yes
  • What USB devices are connected to the internal USB 2.0 ports?
  • Which WiFi/BT module are you using?
  • If the GC-Maple Ridge card is installed, is it in the middle long slot?
  • And is it connected via 5-pin Thunderbolt header cable instead of 3-pin?
  • Which version of macOS?
  • Are any Thunderbolt devices connected to GC-Maple Ridge?
  • Are there any other PCIe devices installed other than AMD GPU and WiFi/BT card?
  • Is Wake for Network Access turned off in System Preferences --> Energy Saver?
  • What is the output of this command in Terminal: See attachment
 

Attachments

  • Terminal Saved Output.txt
    2 KB · Views: 32
  • What USB devices are connected to the internal USB 2.0 ports? Intel one that shipped with mobo.
  • Which WiFi/BT module are you using? Disabled.
  • If the GC-Maple Ridge card is installed, is it in the middle long slot? Yes
  • And is it connected via 5-pin Thunderbolt header cable instead of 3-pin? Both pins are connected
  • Which version of macOS? 12.1
  • Are any Thunderbolt devices connected to GC-Maple Ridge? None powered on
  • Are there any other PCIe devices installed other than AMD GPU and WiFi/BT card? Nope
  • Is Wake for Network Access turned off in System Preferences --> Energy Saver? Yes
  • What USB devices are connected to the internal USB 2.0 ports?
  • Which WiFi/BT module are you using?
  • If the GC-Maple Ridge card is installed, is it in the middle long slot?
  • And is it connected via 5-pin Thunderbolt header cable instead of 3-pin?
  • Which version of macOS?
  • Are any Thunderbolt devices connected to GC-Maple Ridge?
  • Are there any other PCIe devices installed other than AMD GPU and WiFi/BT card?
  • Is Wake for Network Access turned off in System Preferences --> Energy Saver?
  • What is the output of this command in Terminal: See attachment
Some comments/questions:
  • So there is (a) no Bluetooth and (b) no WiFi enabled at this time?
  • We should disconnect the 3-pin Thunderbolt header cable from GC-Maple Ridge. It's okay to keep the other end connected to motherboard.
  • I'm surprised that no USB ports are listed in pmset -g assertions. Here's the output from my Z690 ProArt. I'll check the Aero G shortly.
Screen Shot 2022-01-15 at 5.57.15 AM.png
 
Some comments/questions:
  • So there is (a) no Bluetooth and (b) no WiFi enabled at this time?
  • We should disconnect the 3-pin Thunderbolt header cable from GC-Maple Ridge. It's okay to keep the other end connected to motherboard.
  • I'm surprised that no USB ports are listed in pmset -g assertions. Here's the output from my Z690 ProArt. I'll check the Aero G shortly.
View attachment 539514
I everything pretty much unchanged from your last EFI except I added some standard ACPI rename patches and the Thunderbolt SSDT with the _PTS rename patch. I used the USB SSDT that's the default selected one in your last EFI as well. USB legacy is disabled in BIOS as well. That actually made the front USB 3.0 functional to boot macOS from a USB drive where as it would time out before. This BIOS is super wonky.

I do have the Intel WIFI enabled/working. Bluetooth is not loading.

I'll try disconnecting the 3 pin header.

I also cannot load Windows 11 anymore at the picker menu. It hangs. It used to work at one point.
 
I everything pretty much unchanged from your last EFI except I added some standard ACPI rename patches and the Thunderbolt SSDT with the _PTS rename patch. I used the USB SSDT that's the default selected one in your last EFI as well. USB legacy is disabled in BIOS as well. That actually made the front USB 3.0 functional to boot macOS from a USB drive where as it would time out before. This BIOS is super wonky.

I do have the Intel WIFI enabled/working. Bluetooth is not loading.

I'll try disconnecting the 3 pin header.

I also cannot load Windows 11 anymore at the picker menu. It hangs. It used to work at one point.
Because Intel Bluetooth driver does not work in Monterey (12.1), we should disable all 4 of these:

Screen Shot 2022-01-15 at 6.26.13 AM.png

As promised, here's pmset -g assertions from the Z690 Aero G:
Screen Shot 2022-01-15 at 6.41.55 AM.png
 
Last edited:
@CaseySJ I got two issues for opencore 0.7.7 version:
1. When I powered on the machine this morning, my main monitor powered on without any issue, but the extended monitor shows no signal, and then went to sleep. Main monitor connected to RX560 via DP cable. Extened monitor connected to RX560 via HDMI. It worked great in 0.7.6 version;
2. My monitor has a speaker, I have volume control and can adjust the output volume in 0.7.6, but in 0.7.7 I cannot adjust the volume. I tried to connect two bluetooth speakers, if I play music on one of them, I can adjust the volume, but If I connected to the group (Using Audio Midi SETUP APP), I cannot adjust the volume again.
Do you have any suggestions on fixing these?
 
Back
Top