Contribute
Register

ASUS 100 Series and Later Custom SSDT for XHCI USB Port Control

Joined
Jul 13, 2016
Messages
1,665
Motherboard
Gigabyte Z370 Gaming 5
CPU
I7 8700K
Graphics
Vega 64
Mac
Mac mini, Mac Pro
Mobile Phone
iOS
Currently I'm still working on this technique for Gigabyte motherboards and my own board is not identical to yours.
The Asus SSDT works with an MSI board, I do not currently have a Gigabyte with macOS to test it with but I would guess that it works. I guess what I am saying is that as long as you have the Asus SSDT this guide could handle any board brand.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,679
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
The Asus SSDT works with an MSI board, I do not currently have a Gigabyte with macOS to test it with but I would guess that it works. I guess what I am saying is that as long as you have the Asus SSDT this guide could handle any board brand.
Yep, the guide is very good. Only problems for other manufacturers so far:

1) the 'origin' output files can be named differently for different BIOSes and motherboards.

2) the XML can be formatted in different ways. For a perfect example from Gigabyte, H370 and Z370. On first glance motherboards are identical, just different chipsets. However the H370 has a built-in USB3.1 Gen 2 facility, the Z370 does not. The origin output is quite different.

3) There is a fair bit of work needed to get 'UsbConnector' settings on an individual port basis. This involves added 'if-then-else' structures within the code.

Work is on-going.
 
Joined
Jul 13, 2016
Messages
1,665
Motherboard
Gigabyte Z370 Gaming 5
CPU
I7 8700K
Graphics
Vega 64
Mac
Mac mini, Mac Pro
Mobile Phone
iOS
Yep, the guide is very good. Only problems for other manufacturers so far:

1) the 'origin' output files can be named differently for different BIOSes and motherboards.

2) the XML can be formatted in different ways. For a perfect example from Gigabyte, H370 and Z370. On first glance motherboards are identical, just different chipsets. However the H370 has a built-in USB3.1 Gen 2 facility, the Z370 does not. The origin output is quite different.

3) There is a fair bit of work needed to get 'UsbConnector' settings on an individual port basis. This involves added 'if-then-else' structures within the code.

Work is on-going.
I think you miss understood what I was saying. What I am saying for example is you can use the SSDT from a ASUS board with an MSI board at least in my case. I cloned my Hack on the ASUS recently and put it in the MSI, when I went to configure the ports I realized that It was the ASUS SSDT file but I did it anyways and left it rebooted and such that was a few weeks ago no issues with the system that I can tell.
 

beelzebozo

Super Moderator
Joined
Mar 31, 2010
Messages
3,847
Motherboard
Main Build: ASUS z170-Deluxe
CPU
i7 - 6700K
Graphics
AMD Radeon RX 5700 XT
Mac
iMac
Classic Mac
Power Mac
Mobile Phone
iOS
In case anyone needs an example for the z170-Deluxe.

Screen Shot 2019-08-20 at 7.08.15 PM.png

  • Install USBInjectAll.kext and Remove XHCI USB Port Limit patch from MultiBeast.
  • Run MaciASL and select File > New from ACPI > SSDT-3 (xh_rvp08). For the following you can either do the USB test where you connect USB 2.0 and USB 3.0 devices to each Intel port or read the manual and look at the specs. The internal USB connectors are Intel and

I'm using the front USB ports on my case that connect to the USB3_12 USB header on the motherboard.​

Those ports map to HS01 (USB 2.0)/SS01 (USB 3.0) and HS02 (USB 2.0)/SS02 (USB 3.0).​

Screen Shot 2019-08-20 at 7.12.07 PM.png


The rest of the ports that I've mapped in the Rear I/O connection are:​

Screen Shot 2019-08-20 at 7.15.02 PM.png


HS05 rear port #12. (USB 2.0)
HS06 rear port #11 (USB 3.0/2.0) devices
HS07 Internal Bluetooth​

You can match the description below with the screenshot above to show which ports are ASMedia USB ports. Those are not affected.

Screen Shot 2019-08-20 at 7.29.58 PM.png


  • Add the Change XHC1 to XHC_ patch in ACPI patches in Clover. You have to do it manually as it's not part of the List of Patches:
Find* [HEX] 58484331 Replace [HEX] 5848435F​

  • Remove USBInjectAll.kext from /Library/Extenions and run the following in Terminal:
sudo chmod -v -R 755 /Library/Extensions​
sudo chown -v -R root:wheel /Library/Extensions​
sudo touch /Library/Extensions​
sudo kextcache -i /​

  • Comment out the Remove XHCI USB Port Limit patch from Clover.config (You can select the Disabled check-box) to do that.
  • Restart and you should be good to go.
I've attached my SSDT-3 to show where I modified the PCI USB Method Returns from (GUPC (One)) to Return (GUPC (Zero)) as an example.
 

Attachments

Joined
Mar 3, 2014
Messages
714
Motherboard
Gigabyte Z390 I AORUS PRO WIFI
CPU
i9-9900K
Graphics
RX 580
Mac
MacBook Air
Classic Mac
Power Mac
I found that MacMan's technique worked fine on both my 8th-and 9th-gen Hacks with Z370N-WIFI and Z390 I AORUS mobos respectively. They worked because there were separate SSDTs for USB control in both "F4" Clover dumps. But for my 4th-gen Haswell (H87N-WIFI) computer, the Clover "F4 dump" results in no dedicated SSDT for USB control. Instead, there is a file named "DSDT" which has the USB stuff starting at around line item 8100 or so, and its format is confusing to me. So that computer still uses RehabMan's method.
 

pastrychef

Moderator
Joined
May 29, 2013
Messages
13,390
Motherboard
Gigabyte Z390 M Gaming
CPU
i9-9900K OC'd @ 5.0GHz
Graphics
Radeon VII
Mac
MacBook, Mac Pro
Classic Mac
iBook, Power Mac, PowerBook
Mobile Phone
iOS
I did this kextless method on my Gigabyte Z390. The method is basically the same, although, the syntax of the SSDT may look different.

Find out which ports you want disabled and do the following...

Here's an example. Hypothetically, if you want to disable HS09, you look for the following:
Code:
    If (LGreaterEqual (NHSP, One))
    {
        Scope (\_SB.PCI0.XHC.RHUB.HS09)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (H1TC, Zero))
                {
                    If (LEqual (And (UMAP, One), One))
                    {
                        Return (GUPC (One))
                    }
                    Else
                    {
                        Return (GUPC (Zero))
                    }
                }
                Else
                {
                    Return (\_SB.UBTC.RUCC (H1CR, One))
                }
            }
Then change "Return (GUPC (One))" to "Return (GUPC (Zero))":
Code:
    If (LGreaterEqual (NHSP, One))
    {
        Scope (\_SB.PCI0.XHC.RHUB.HS09)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (H1TC, Zero))
                {
                    If (LEqual (And (UMAP, One), One))
                    {
                        Return (GUPC (Zero))
                    }
                    Else
                    {
                        Return (GUPC (Zero))
                    }
                }
                Else
                {
                    Return (\_SB.UBTC.RUCC (H1CR, One))
                }
            }
 

Attachments

Joined
May 11, 2011
Messages
696
Motherboard
Asrock B365M Phantom Gaming
CPU
i5-9600KF
Graphics
RX 580
Mobile Phone
iOS
If I will have time I'll post the complete method to create a usb SSDT without any kext, the method from this thread is only for the internal usb and usb 2.0 .
 
Joined
Mar 3, 2014
Messages
714
Motherboard
Gigabyte Z390 I AORUS PRO WIFI
CPU
i9-9900K
Graphics
RX 580
Mac
MacBook Air
Classic Mac
Power Mac
... the method from this thread is only for the internal usb and usb 2.0 .
Would you please explain that? I used the kextless method, and below is the result in IORegistry Explorer on my "Monster Mini" Z390 computer. As far as I know the speeds on the USB 3.0 ports are running at spec, although I have not measured them. Is there a "flash drive speed test" available on line for MacOS 10.14.6?

Screen Shot 2019-11-23 at 9.25.01 AM.jpg
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,679
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Yes, this technique does work with USB3.0 ports, and back panel ports too.

However patching ACPI is a tricky business and can give different results if the motherboard is wildly different.

Let us know how you get on. :thumbup:
 
Top