Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Joined
Dec 7, 2014
Messages
21
Motherboard
Gigabyte AORUS ULTRA Z390
CPU
I9-9900k
Graphics
ASUS Radeon RX Vega 64
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
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?
 
Joined
Dec 7, 2014
Messages
21
Motherboard
Gigabyte AORUS ULTRA Z390
CPU
I9-9900k
Graphics
ASUS Radeon RX Vega 64
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
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!
 
Joined
Jan 21, 2012
Messages
117
Motherboard
Acer Swift SF314-57
CPU
I5-1035G1
Graphics
UHD 630, 1920x1080
Mac
  1. MacBook Pro
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.
 
Joined
Apr 21, 2021
Messages
1
Motherboard
Asus Sabertooth Z77
CPU
Intel 3770K
Graphics
Geforce 780GTX
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.
 
Top