Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Joined
Dec 1, 2018
Messages
38
Motherboard
ASUS ROG STRIX Z370F
CPU
i7-8700K
Graphics
UHD630
Mac
iMac, MacBook Pro
Mobile Phone
Android, iOS
Hello, thank you for the guide!

My motherboard asus z370-F has additional usb controller (1 x type-c, 1 x 3.1) called ASM2142. Should I do some renaming stuff for this device? Or I have to disable 4 HS/SS ports in order to not pass the limit? I tried to remove all PRT* ports and export the patch, but they still appears after reboot and refresh the ports list. If I don't remove them my machine wakes up immediately after falling asleep.

mb: z370f
cpu: 8700k
igpu: uhd 630 / DP / 4k
bt: BCM943602CS
os: Mojave 10.14.16 latest public beta

Also, should BT's devices wake machine? I am unable to do that with my magic trackpad and logitech BT keyboard.

EFI: https://www.dropbox.com/s/5gx862fg6ygrac4/EFI.zip?dl=0
 
Joined
Mar 7, 2017
Messages
34
I am going through discovery process and there is something I don't understand: I boot with HS ports only, 14 in total on my MB, but for one USB port when I insert a USB stick, neither IORegistryExplorer nor USBMap python tool show me the activated port despite macOS 10.13.6 being able to mount the stick.

Another peculiar thing is that two other ports don't react at all on insertion of the stick.
 
Joined
Apr 5, 2016
Messages
888
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
iOS
I am going through discovery process and there is something I don't understand: I boot with HS ports only, 14 in total on my MB, but for one USB port when I insert a USB stick, neither IORegistryExplorer nor USBMap python tool show me the activated port despite macOS 10.13.6 being able to mount the stick.

Another peculiar thing is that two other ports don't react at all on insertion of the stick.
If macOS 10.13.6 can mount the stick then the stick is in the ioregistry. Use the following commands, then examine the text files created:
Code:
ioreg -filw0 > ioreg.txt
diskutil list > diskutillist.txt
system_profiler SPUSBDataType > systemprofilerusb.txt
Possibly, the port you connected the stick to is not part of the chipset XHC and is therefore not part of the discovery.

Do the two ports that don't react work in Windows? Use Device Manager in Windows, View by Connection.
 
Joined
Mar 7, 2017
Messages
34
Possibly, the port you connected the stick to is not part of the chipset XHC and is therefore not part of the discovery.

Do the two ports that don't react work in Windows? Use Device Manager in Windows, View by Connection.
Thanks for your reply.

Indeed, one of the port was not a part of the chipset XHC.

One of the non-reacting ports started working only after I disabled all but a few HSxx ports, so I managed to figure out which number was it.

I ignored the second non-reacting port on the front. IIRC due to the limited space and cable management I did not bother connecting it to the MB.
 
Joined
Nov 19, 2015
Messages
7
Motherboard
asus z97a
CPU
i7-4790
Graphics
GTX 780, RX 580
Mac
iMac, Mac mini, Mac Pro
Classic Mac
Quadra
Mobile Phone
Android
Great post about usb 3, but this is way too crazy for me to get in to....
 
Joined
Jun 1, 2010
Messages
59
Motherboard
Gigabyte Designare Z390
CPU
I9-9900K
Graphics
RX 580
Dear all,

Would it be possible to disable a specific port of an internal MB USB2.0 hub?
I'm trying to disable port with location ID = 0x14930000 under HS13 (H150i because it breakes sleep) - see ioreg attached, while still using the other ones (e.g. BRCM20702).
One option would be to simply disconnect the cable to the cooler but I still want to use it in Windows...

Thanks!
Is this possible?
 
Joined
May 25, 2018
Messages
11
Motherboard
MSI Z87-GD65
CPU
i5-4690K
Graphics
RX 580
Mac
iMac, MacBook Air
Mobile Phone
iOS
Code:
//
// Disabling EHCI #1
//
    External(_SB.PCI0, DeviceObj)
    External(_SB.PCI0.LPCB, DeviceObj)
    External(_SB.PCI0.EH01, DeviceObj)
    Scope(_SB.PCI0)
    {
        // registers needed for disabling EHC#1
        Scope(EH01)
        {
            OperationRegion(PSTS, PCI_Config, 0x54, 2)
            Field(PSTS, WordAcc, NoLock, Preserve)
            {
                PSTE, 2  // bits 2:0 are power state
            }
        }
        Scope(LPCB)
        {
            OperationRegion(RMLP, PCI_Config, 0xF0, 4)
            Field(RMLP, DWordAcc, NoLock, Preserve)
            {
                RCB1, 32, // Root Complex Base Address
            }
            // address is in bits 31:14
            OperationRegion(FDM1, SystemMemory, Add(And(RCB1,Not(Subtract(ShiftLeft(1,14),1))),0x3418), 4)
            Field(FDM1, DWordAcc, NoLock, Preserve)
            {
                ,15,    // skip first 15 bits
                FDE1,1, // should be bit 15 (0-based) (FD EHCI#1)
            }
        }
        Device(RMD1)
        {
            //Name(_ADR, 0)
            Name(_HID, "RMD10000")
            Method(_INI)
            {
                // disable EHCI#1
                // put EHCI#1 in D3hot (sleep mode)
                Store(3, ^^EH01.PSTE)
                // disable EHCI#1 PCI space
                Store(1, ^^LPCB.FDE1)
            }
        }
    }
}
//EOF
I have a Z87 using iMac15,1. It has both EH01 and EH02 but there are no used ports so I removed EH01/02/HUB1/2 from my UIAC.dsl and configured the XHCI ports.

Since no ports are in use on EH01/02/HUB1/2 the system sleeps fine however, I was wondering if it would be better to remove the EHCI as you have and if so, how would I modify this to also disable EH02?
 
Joined
Oct 30, 2018
Messages
260
Motherboard
GIGABYTE Z370 AORUS Gaming 7
CPU
i7-8700K
Graphics
RX 580
Mac
iMac, MacBook, MacBook Pro, Mac mini, Mac Pro
Classic Mac
eMac, iMac, Performa
Mobile Phone
Android, iOS
ASUS TUF Z390 PRO GAMING.

Trying to set up SSDT following the guide. After several attempts, I realize that I am missing something important somewhere. But, cannot find what it is.

Can anyone spot my error(s) or point me in the right direction?
Solved by referring to the guide posted by @UtterDisbelief - covers recent developments.
 
Last edited:
Joined
Sep 22, 2011
Messages
699
Motherboard
HP EliteDesk 800 G4 Mini
CPU
I7-8700T
Graphics
UHD 630
Mac
Mac mini
Mobile Phone
iOS
IORegistryExplorer indicates that the portType for Port 5 of my EHC1 Hub (EH01.PR11.HP15) is 0x00. According to Rehabman's USBInjectAll guide for creating a custom UIAC-SSDT, portType 0 is "a normal external USB2 port" even though this port is used by an internal Bluetooth device. I'd like to set this port to internal (portType=2) to see if it resolves the sleep issue on my Dell Latitude E6410. Is it possible to set the port type of USB ports on the EHCx hubs? My custom SSDT-UIAC.dsl is also attached.

Thank you.
 

Attachments

Top