GUIDE TO CREATE EDIT MODIFY YOUR OWN USB.kext FOR YOUR X299 MOTHERBOARD
On a previous post #396
I explained my new approach for USB.kext
The Goal is to have in one kext all ports properties and counts for each USB Pci Device you have and use according with IOReg.
Here I will explain more :
01 / Prerequisite you have your SSDT-X299-XHC configured and loaded :
On my ASUS X299 Prime deluxe :
02 / Prerequisite you have your SSDT-X299-XHCI configured and loaded :
03 / You have one of the kexts from the post
#396 according to your SMBIOS iMacPro1,1 or MacPro 7,1
04 / We will see how this kext is made :
Navigate, find the right kext , right click show package content / content / open info.plist with Xcode :
You can see after click on IOKITPersonnalities :
The different sections :
- XHC3
- XHC4
- XHC5
- XHCi
05 / We will configure ports for your own kext under XHCI :
05-1
- You need one of the new kext approaches see 03 /
Navigate, find the right kext , right click show package content / content / open info.plist with Xcode
Reserve it on the right side of your screen
05-2
- your original kext matching with your system ( full or truncated 15 ports)
Do the same as above and reserve it on the left side of your screen
Now on the original kext you must select / right click copy the ports section :
05-3
After on the new kext your reserved on right section of your screen :
Select ports section , select right click CUT ports section and now PAST ports section you selected by copy on the original kext just under the line port-count :
Done you must see that :
Save it on Xcode
06 / We will add/modify/ let XHC3 section :
ASMedia ASM3142 #2 2x USB 3.1 Type-A External
In this XHC3 section we set all properties :
06-1
IOPCIPrimaryMatch : 0x21421b21 ( to be verify )
IOProviderClass : AppleUSBXHCIPCI
06-2
After under IOProviderMergeProperties :
- kUSBSleepPortCurrentLimit : 2100
- kUSBSleepPowerSupply : 5100
- kUSBWakePortCurrentLimit : 2100
- kUSBWakePowerSupply : 5100
06-3
Now the ports :
In the XHC3 section you need to check what port type is and the count.
Generaly for USB 3.0 they are four paired :
- HS01 / HS02 for USB2
- SS01/ SS02 For USB3
HS01 paired with SS01 and HS02 paired with SS02
So we set the HS01/HS02 USB2 ports with 0 under usb-connector
And we set the SS01/SS02 USB3 ports with 3 under usb-connector
Done we have :
07 / We will add/modify/ let XHC4 section :
ASMedia ASM3142 #3 1x USB 3.1 Type-A / ASM1543 1x USB 3.1 Type-C External
As above :
07-1
IOPCIPrimaryMatch : 0x21421b21 ( to be verify)
IOProviderClass : AppleUSBXHCIPCI
07-2
After under IOProviderMergeProperties :
- kUSBSleepPortCurrentLimit : 2100
- kUSBSleepPowerSupply : 5100
- kUSBWakePortCurrentLimit : 2100
- kUSBWakePowerSupply : 5100
07-3
Now the ports :
They are four paired :
HS01 paired with SS01 and HS02 paired with SS02
Those settings are different :
HS01 USB C with 10 under usb-connector
HS02 USB 3.1 with 3 under usb-connector
SS01 USB C with 10 under usb-connector
SS02 USB 3.1 with 3 under usb-connector
Now we have :
08 / We will add/modify/ let XHC5 section :
NOTE : For GC Titan Ridge with SSDT-X299-TB3TTR ( or similar ) loaded with XHC5 under DBS2 :
08-1
IOPCIPrimaryMatch : 0x15ec8086 ( to be verify)
IOProviderClass : AppleUSBXHCITR
08-2
After under IOProviderMergeProperties :
- kUSBSleepPortCurrentLimit : 2100
- kUSBSleepPowerSupply : 5100
- kUSBWakePortCurrentLimit : 2100
- kUSBWakePowerSupply : 5100
08-3
Now the ports :
They are two USBC thunderbolt ports :
HS01 USB C with 10 under usb-connector
HS02 USB C with 10 under usb-connector
Now we have :
Save this.
Now under each section you must verify you have under model :
- MacPro7,1
or
- iMacPro1,1
According to your SMBIOS
Results :
For each device you configured in kext , you can verify on IOREg :
For exemple under XHC3 as on picture below click under ports and see if you have the right port count : if it's ok you're done :
All sections such as XCH1, XHC2, XHC3, XHC4, XHC5 should be renamed in concordance to your own SSDT-X299-XHC and SSDT -X299-TB3TTR
For a particular configuration, we will see how to set them correctly.
Enjoy