@Jasoncole98
There's a lot of good guides out there already so I won't repeat in full - but a couple of tips I can share, you can learn from my earlier mistakes...
I've just finished re-mapping my ports after a tear down and rebuild to tidy up my cables. I used some different internal headers and on my previous EFI's I shared I didn't have all of the personalities for my USB-C ports correct so they didn't always work if you unplugged a device and happened to plug it back in the other way round. Felt like a good time to go through a re-map.
Im not saying this the only or perfect way to do it but it worked for me so thought it worth sharing.
I needed these things to finish mapping correctly:
- Working SSDT-USB-reset to properly map PXSX devices to XHC2/XHC3 (ASMedia controllers for my front and rear USB-C ports) Or follow @Loloflatsix guides above - but you need these controllers to show up as unique names in the CorpNewt's USBMap tool, when you run it it will tell you if something needs renaming and even offers create the SSDT for you based on devices it finds
- USBInjectAll.kext in my EFI folder and updated in config.plist
- XhciPortLimit True - under kernel quirks in config.plist
- USBMap command line tool
- Once finished I only need SSDT-USB-reset and my custom USBmap.kext created with Corpnewts USBMap tool, that's it - but I am doing the more tried and tested living with the 15 port per controller limit.
If your SSDT created in step 1 has worked it should look something like this:
The Corpnewt docs and Dortania guide are great but there where a few things that I didn't understand like the number of ACPI ports I was seeing under each controller or whether I needed to set type 9 or 10 for my USB-C ports. Heres what I found...
If you are doing it with the USBmap tool you can also see whether the USB-C ports are ACPI type 9 or 10 based on the number of port personalities (ACPI port addresses) shown and the number of actual physical ports.
There should be:
- 1 HS port per physical USB2 port
- 1 HS and 1 SS port per physical USB3 port
- 1 HS and 1 SS per USB-C Type 9 port
- 2 HS and 2 SS per USB-C Type 10 port
I think I saw earlier in the thread someone mention that ASMedia controllers are 2x2 (type 9) ports but I've found on my MSI X299 that one of the ASMedia contollers is a type 9 and the other is a type 10. In the USB map tool when you flip the USB-C device over if it changes address its a type 10
Like this below, notice that although my XHC2 is a single USB-C it is a type 10 and has 4x personalities, XHC3 is a single USB-C but type 9 and has only 2x personalities, and I mention this here because it totally threw me at first, I thought something was broken but it is due to MSI using two different controllers on the same board:
This should create a USBmap.kext with an info.plist that looks something like this, I'm just showing the ASMedia XHC2/3 here not the straightforward XHCI intel section:
(Edit: Typo on the image above - the yellow box should be labelled XHC
3 USB 3.2 Gen2x2 AS Media 3242)
And these correspond to my motherboards ports like so, RED ports would take me over 15 ACPI ports per controller due to needing the internal headers to control my AIO, so I chose not to use these:
Ive attached my SSDT-USB-reset and USBMap.kext - they obviously won't work for your board but thought they might help if you want to have a dig around and compare yours.
Don't forget when you're done you don't need USBInjectAll.kext anymore and XhciPortLimit quirk can be set back to false.
Good luck - hope that helps, its worth taking the time to do.