- Joined
- Dec 17, 2010
- Messages
- 158
- Motherboard
- ASUS ROG Strix Z390-I Gaming
- CPU
- i7-8700
- Graphics
- HD 630
I am posting this is because I saw threads with people saying that the USB 3.0 ports are working with 2.0 speeds with Z390, and, yes, I know you can block the HSxx port with a boot arg... but a lot of people don't know that and is just to let know other people that they have to make a SSDT in order to have USB 3.0/3.1 in mobos with z370/z390/h370/b360/h310 because, if you only use the USB Port Patch Limit, it works but the patch can't inject all the ports only 15. That's why your USB 3.0/3.1 ports are working in USB 2.0 speeds because the patch inject from HS01 to HS14 and not the SSxx ports. Some people think that is a problem with the mobo chipset or something like that. I will try to make a test with Z270/B250 (with some friends) and check if in this mobos the patch works allowing to inject 26 ports... just testing to give more information to other people...
Here's what I did for USB on my GA-Z97n-wifi motherboard. Before doing the SSDT, various USB ports would stop / start working causing all kinds of frustration. The SSDT solved it. I don't have USB 3.1 on this board, just 2.0 and 3.0. A USB 2.0 port counts as one port. A USB 3.0 port counts as two (one for 2.0 and one for 3.0). I'm not sure if a 3.1 port counts as two or three. From my understanding, you're still capped at 15 ports with Mojave, so you can easily run out of ports.
Below are notes to myself when I created an SSDT for USB ports on my GA-Z97n-wifi motherboard. In addition to the USB ports on the back of the board, I have a USB 3.0 hub attached internal to the motherboard for the front panel (the two ports listed below as "Front") and a remote power/reset switch that has a USB 2.0 hub attached internal to the motherboard (the two ports listed below as "Power Switch"). Early on in my build, I removed the internal wifi/bluetooth card that came with the motherboard. So, that internal USB connection is not included in my SSDT.
I used @RehabMan 's guide. It's very detailed and includes a lot of information. Not all of the information will apply to each Hackintosh. The guide is very comprehensive and it's updated to reflect the methods that work with current OS X, kexts and MultiBeast. I did this a few years ago for another build and the methods, tools and kexts have changed. Go slow, write things down and keep hackintoshing.
Here's what I did. This was done shortly after a clean install of Mojave. Again, my notes are to myself as I created an SSDT for my USB ports.
Creating an SSDT for USB port mapping
RehabMan Guide: https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
RehabMan Download: https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/
During the clean install of Mojave and Post Install with MultiBeast, I used the following for USB:
———————————————————
- Drivers > USB > 7/8/9 Series USB Support
This enables full USB 2.0 and 3.0 support on 7/8/9 Series motherboards. Installs FakePCIID.kext and FakePCIID_XHCIMux.kext to /Library/Extensions.
FakePCIID_XHCIMux moves all HSxx ports to EH01/PR11 and EH02/PR21
USB Port Discovery/Mapping Phase
Available Port Addresses
- Edit config.plist to rename EHC1->EH01 and EHC2->EH02
- Add “Patches” under DSDT (see image below)
- Install USBInjectAll.kext to L/E with KextBeast
- Restart to test and map the installed ports (test needs to be done in batches because of the 15 port limit on the XHC controller)
- For just HS ports, boot with -uia_exclude_ss at clover boot screen
- The HSxx ports never got used since the FakePCIID_XHCIMux moves all the USB 2.0 ports under XHC to the EHC controllers that get renamed to EH01 and EH02 and show up as HPxx ports
- For just SS ports, boot with -uia_exclude_hs at clover boot screen
- Without the HSxx ports, I could see all 6 of the SSxx ports and test them
EH01/PR11/HP11-18
EH02/PR21/HP21-28
XHC/HS01-HS14
XHC/SS01-SS06
Used Ports
Power Switch (black): left-HP21 right-HP22
Front (blue): top-HP12 / * bottom-HP11 / SS01
Rear (black): top-HP23 bottom-HP24
Rear (blue): next to HDMI top-HP14 / SS04 bottom-HP13 / SS03
next to audio top-HP16 / SS06 bottom-HP15 / SS05
*should be SS02, but nothing shows up with USB 3.0, very odd, I’ll code for it anyway… wait, without SS02 I’m at 15… hmmm, I’ll just leave that one as USB 2.0 only to stay at 15
———————————————————
SSDT Creation Phase
———————————————————
- Started with “SSDT-UIAC-ALL template” in MaciASL. This was cut-n-paste from https://github.com/RehabMan/OS-X-USB-Inject-All/raw/master/SSDT-UIAC-ALL.dsl into MaciASL
- Removed all of the entries that didn’t correspond with the used ports above.
- Kept
- Hub1, Ports HP11-HP16
- Hub2, Ports HP21-HP24
- EH01, Port PR11
- EH02, Port PR21
- 8086_8xxx, Ports SS01, SS03-SS06
- Left out SS02 to stay within the 15 port limit
- The device-id for my XHC@14 controller was “b1 8c 00 00”. There was no corresponding “8086_8cb1” section in the template, so “8086_8xxx” was used
- Kept track of the various brackets when cutting out the unused ports and controllers.
- The text that remained was compiled and saved via File/Save As “SSDT-UIAC” in the Format of “ACPI Machine Language Binary”.
Final Install
- Keep USBInjectAll.kext in L/E (if it’s removed, the new SSDT has no effect)
- Place “SSDT-UIAC” in EFI/CLOVER/ACPI/patched
- Restart
- Check with IOReg
@RehabMan , am I correct that we are still limited to 15 available USB ports when we create an SSDT for USB? And its a function of the OS X?
Last edited: