Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Hey @cramletram,

I've been using Opencore with Catalina and Big Sur and made some modifications on my initial USB config.
Attached the Opencore 0.67 EFI folder, without both SMBIOS (Generic item info) and Resources folders.

In this setup, I use USBMap.kext to config my USB ports, but you can use a SSDT with same results. The important part is understand which ports to enable/disable.

If you open the USBMap.kext/Contents/Info.plist/IOKitPersonalities/iMac19,1-XHC/IOProviderMergeProperties/Ports you should notice all the ports that are enabled on my setup, as well their types.

For keeping inside the 15 port limit, I disabled port HS06 (USB 2.0 port on the USB Type-C back connector) and enabled port HS13 (USB 2.0 port on the internal USB 3.0 header), due to a Wifi Card 94360 USB sleep issue, but if you don't use that card you can disable HS13 and enable HS06. Choose the best setup, you only need to edit the USBMap.kext (No USBInjectAll.kext dependency).

Notes:
- Using Z390 Aorus Ultra BIOS version 10h.
- My graphics card is Radeon RX 5600 XT, so you should config your Vega 64 on the config.plist, specially "boot-args".
- Pay attention to the rest of Opencore files, you should be good with that EFI folder if your MOBO is the same of mine.
- If you plan to use a SSDT, use the excellent USBMap-master tool to build yours. More information on the Dortania's Opencore Post-Install Guide.
Hey @cramletram,

I've been using Opencore with Catalina and Big Sur and made some modifications on my initial USB config.
Attached the Opencore 0.67 EFI folder, without both SMBIOS (Generic item info) and Resources folders.

In this setup, I use USBMap.kext to config my USB ports, but you can use a SSDT with same results. The important part is understand which ports to enable/disable.

If you open the USBMap.kext/Contents/Info.plist/IOKitPersonalities/iMac19,1-XHC/IOProviderMergeProperties/Ports you should notice all the ports that are enabled on my setup, as well their types.

For keeping inside the 15 port limit, I disabled port HS06 (USB 2.0 port on the USB Type-C back connector) and enabled port HS13 (USB 2.0 port on the internal USB 3.0 header), due to a Wifi Card 94360 USB sleep issue, but if you don't use that card you can disable HS13 and enable HS06. Choose the best setup, you only need to edit the USBMap.kext (No USBInjectAll.kext dependency).

Notes:
- Using Z390 Aorus Ultra BIOS version 10h.
- My graphics card is Radeon RX 5600 XT, so you should config your Vega 64 on the config.plist, specially "boot-args".
- Pay attention to the rest of Opencore files, you should be good with that EFI folder if your MOBO is the same of mine.
- If you plan to use a SSDT, use the excellent USBMap-master tool to build yours. More information on the Dortania's Opencore

Awesome! I'll try your USBMap.kext. Actually your chosen ports are almost exactly like what I'm trying to do. One question though: I noticed that your Quirks:XhciPortLimit is set to TRUE. It was my understanding that this whole process was about not relying on that Quirk. Or did I misunderstand?
 
Awesome! I'll try your USBMap.kext. Actually your chosen ports are almost exactly like what I'm trying to do. One question though: I noticed that your Quirks:XhciPortLimit is set to TRUE. It was my understanding that this whole process was about not relying on that Quirk. Or did I misunderstand?
Well, after a month+ of tooling around with USB mapping, I finally got it working. Turns out I had too many kexts and one (or more of them) was interfering with the process. Huzzah!
 
Awesome! I'll try your USBMap.kext. Actually your chosen ports are almost exactly like what I'm trying to do. One question though: I noticed that your Quirks:XhciPortLimit is set to TRUE. It was my understanding that this whole process was about not relying on that Quirk. Or did I misunderstand?
I'm preety sure XhciPortLimit quirk is only used on the discovering process of USB ports. After getting your 15 (or less) ports configured, it has no effect anymore.
 
Thanks very much.
Worked on a Asus Sabertooth Z77 with the Intel USB3 ports.
There is another USB3 controller (not Intel) that's not working, but I know that's unsupported.
Nice work.
 
Back
Top