Contribute
Register

[SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580

Hello @Azimuth1,

Please have a look at the USB SSDT and then feel free to ask any questions.
thanks for the reply.

Yes, USB SSDT is this one in the attach (directly from your OC 0.6.5's EFI) and, even if it's in compiled form, I can see that HS01, HS02, HS08, HS13 and HS14 are all missing for staying under the 15 ports' limit. That's why I've been asking you the complete .dsl file, I'd like to make different choices according to my BT and my case.
 

Attachments

  • SSDT-UIAC-DESIGNARE-Z390-V7.aml
    846 bytes · Views: 43
But we are hoping that that is 'YET' and 6000 series will be supported soon.

Also, if you dual boot with Windows you can enable Resizable Bar and gain any benefits it offers in Windows and not have to change your BIOS config whenever you switch between macOS and Windows/Linux.
Agreed. If Big Sur 11.3 supports RX 6000 series, then enabling the Resizable BAR could help gaming when booted into Windows. That a said, I'm curious what the downside is of disabling Above 4G Encoding?
 
I have a 1080 Ti graphics card which still relies on the web-drivers from NVIDIA. Has anyone here had success using High Sierra as the OS for this hack as opposed to Mojave or Catalina?
Hello @BadApples,

Welcome to the forum. High Sierra has been installed successfully on this build. While I have not done so myself, others may be able to help you if you encounter problems.
 
thanks for the reply.

Yes, USB SSDT is this one in the attach (directly from your OC 0.6.5's EFI) and, even if it's in compiled form, I can see that HS01, HS02, HS08, HS13 and HS14 are all missing for staying under the 15 ports' limit. That's why I've been asking you the complete .dsl file, I'd like to make different choices according to my BT and my case.
Those ports are very easy to add. Let me show you how to add HS02, and you can add the rest by yourself. First let's have a look at the first two ports:
Code:
                "ports",
                Package (0x1E)
                {
                    "HS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                           // ....
                        }
                    },

                    "HS04",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x04, 0x00, 0x00, 0x00                           // ....
                        }
                    },
Here we can see that HS03 has a "UsbConnector" of 0x03, which means that the physical port is a Blue, Red, or Yellow USB 3.0 port even though HS03 itself is a USB 2.0 protocol.

Then we see that there's a Buffer of 4 bytes: 0x03, 0x00, 0x00, 0x00. The first byte 0x03 is the address of this port. Look through all of the ports and you'll see that this is just a serial number that increments by one.

Now look at the Package statement above, which is "Package (0x1E)". This means that inside those curly braces "{ }" there are 0x1E (decimal 30) entries. Each port entry consists of a name such as HS03 and a description block "Package (0x04)". The name is counted as 1 item. The description block (Package) is also counted as 1 item. So each USB port has two items.

Because there are 30 total items in the outermost "Package" statement (0x1E = 30), it means there are 15 ports defined (30 divided by 2 items per port). This is the 15 port limit.

With this little introduction, we can add HS02 easily, like this:
Code:
                    "HS02",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x02, 0x00, 0x00, 0x00                           // ....
                        }
                    },
Notice that UsbConnector is still 0x03 because this is also a physical USB 3.0 port even though HS02 is a USB 2.0 protocol. In the Buffer section its address is 0x02 because it comes immediately before HS03 (HS03 has an address of 0x03, so subtract 1).

We will therefore insert HS02 before HS03 as follows:
Code:
                "ports",
                Package (0x20)
                {
                    "HS02",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x02, 0x00, 0x00, 0x00                           // ....
                        }
                    },

                    "HS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                           // ....
                        }
                    },

                    "HS04",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x04, 0x00, 0x00, 0x00                           // ....
                        }
                    },
But notice that we had to change Package (0x1E) to Package (0x20) because we added 2 more items to the package. But 0x20 is decimal 32. Divide 32 by 2 and we get 16 USB ports. We have just exceeded the port limit by 1, so we will need to delete one USB port. Then we can go back to Package (0x1E).

After making your own custom SSDT feel free to post it here if you'd like us to verify it. For HS08 and HS13 the "UsbConnector" should be 0x09 because those are USB Type C ports.
 
I have a 1080 Ti graphics card which still relies on the web-drivers from NVIDIA. Has anyone here had success using High Sierra as the OS for this hack as opposed to Mojave or Catalina?

I ran High Sierra on this build for a long, long time - due to the same reason as you, I was using an Nvidia 1080 at the time (and have since swapped that card out which is why I upgraded the OS). I didn't encounter any real issues (aside from the USB issue, which seems to have been resolved in Big Sur). That may or may not affect you. If it does, we did discover using an external USB card (instead of onboard) cured the issue. There are details somewhere in here, but if they aren't applicable, you probably won't have to worry about it.
 
Agreed. If Big Sur 11.3 supports RX 6000 series, then enabling the Resizable BAR could help gaming when booted into Windows. That a said, I'm curious what the downside is of disabling Above 4G Encoding?
Isn’t Above 4G Encoding needed for Thunderbolt?
 
Last edited:
I have a 1080 Ti graphics card which still relies on the web-drivers from NVIDIA. Has anyone here had success using High Sierra as the OS for this hack as opposed to Mojave or Catalina?
My main system which uses the same motherboard, an i7 9700KF and a Sapphire RX 580 Pulse Lite is running MacOS Sierra 10.12.6 (Yes, even Sierra can work.) / High Sierra 10.13.6 / Mojave 10.14.6 / Catalina 10.15.7 with no problems. The motherboard uses the F7 BIOS.

I run VMware Fusion 11.0.3 in Sierra and 11.5.3 in High Sierra to run Windows virtual machines from Windows 98 SE to Windows 10 1809 LTSC.
 
Last edited:
@CaseySJ

thanks! at the moment I've just made minor adjustments as I'ven't yet get the motherboard: I've had comment out HS05 as I'll probably not need it, and added HS14 (of course I have to drop the SSDT-DESIGNARE-Z390-NO-CNVW.aml too!) as I wanna try the Intel Wi-FI+BT to see how they work:

Code:
                   "HS10",
                    Package (0x04)
                    {
                        "UsbConnector",
                        Zero,
                        "port",
                        Buffer (0x04)
                        {
                             0x0A, 0x00, 0x00, 0x00                         
                        }
                    },

                    "HS11",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF, // <--- it should be 0x00 as it's an USB2 internal Header?
                        "port",
                        Buffer (0x04)
                        {
                             0x0B, 0x00, 0x00, 0x00                         
                        }
                    },

                    "HS12",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF, // <--- it should be 0x00 as it's an USB2 internal Header?
                        "port",
                        Buffer (0x04)
                        {
                             0x0C, 0x00, 0x00, 0x00                         
                        }
                    },

                    // To enable Intel CNVi BT
                    "HS14",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF, // this is to stop the BT device waking PC from sleep unnecessarily.
                        "port",
                        Buffer (0x04)
                        {
                             0x0E, 0x00, 0x00, 0x00       // hopefully the count is correct!                  
                        }
                    },

I put some comments to better understand and, regarding HS11 and HS12, shouldn't the connector type be 0 (decimal) because of its port's type? Then I've added the HS14 and I hope it's correct! What do you think?
 

Attachments

  • SSDT-UIAC-DESIGNARE-Z390-V7_MOD.aml
    846 bytes · Views: 38
@CaseySJ

thanks! at the moment I've just made minor adjustments as I'ven't yet get the motherboard: I've had comment out HS05 as I'll probably not need it, and added HS14 (of course I have to drop the SSDT-DESIGNARE-Z390-NO-CNVW.aml too!) as I wanna try the Intel Wi-FI+BT to see how they work:

...

I put some comments to better understand and, regarding HS11 and HS12, shouldn't the connector type be 0 (decimal) because of its port's type? Then I've added the HS14 and I hope it's correct! What do you think?
If a USB port will connect non-ejectable USB 2.0 devices then we set UsbConnector to 0xFF (decimal 255). This designates the port as "internal" so that macOS does not try to eject those devices during sleep. If we mistakenly set UsbConnector to type 0, macOS will attempt to eject and/or put those devices to sleep, but will fail in doing so. Hence, the system will not sleep.

Examples of non-ejectable or internal devices:
  • All-in-one liquid coolers with USB 2 connectors. These devices are never ejected during system operation.
  • Intel CNVi Bluetooth connected to HS14 is also internal. It is not a device that the user ejects during system operation.
  • Broadcom WiFi/BT module connected to either HS11 or HS12. This module is also not meant to be ejected during system operation.
  • Smart power supplies and RGB lighting controllers with USB 2 connectors. Again, these devices are not meant to be ejected during system operation.
Some people will connect HS11 or HS12 to a USB 2 port on the front of the PC. In this case, we will need to set the port to type 0 because it will be used to connect ejectable devices.

Your SSDT looks good. Setting both HS11 and HS12 to type 0xFF means that they cannot be connected to USB ports on the front of the PC case. This is normally a good thing because modern PC cases only have USB 3 and USB-C ports.
 
Alas I am out of ideas, but feel free to go through the process of elimination. For example, remove the Nvidia GPU and see what happens.

If anyone has any suggestions for fixing this HEVC problem, please let us know.
I managed to get the Nvidia out, but this is still the result:
1611696844661.png


Is it the right connector though?
Maybe something is wrong in the framebuffer or...?
 
Back
Top