Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Joined
Apr 9, 2017
Messages
70
Motherboard
ASUS ROG MAXIMUS VI HERO
CPU
i5-4670K OC 4.5 GHz
Graphics
GTX 780, HD 530
No, it is not explicitly necessary. You don't even have to disable in BIOS. Just only configure the XHC controller by using the correct Device ID in the template.

By the way, questions about @RehabMan 's guide really should be asked of him, not me. He's the expert. Remember, this is only a Beginner's Guide.

:)

Should XHCI mode by set to Smart Auto or Auto?
 

trs96

Moderator
Joined
Jul 31, 2012
Messages
21,317
Motherboard
GA-Z97X-UD3H-BK
CPU
i5-4690K
Graphics
HD4600 / RX 570
Mac
  1. MacBook Pro
  2. Mac mini
Mobile Phone
  1. Android
why? whats the difference?
XHCI Mode = Auto - The on-board USB 3.0 ports function like a 2.0 port before the OS USB 3.0 drivers load. If you reboot the OS, the onboard USB 3.0 port again functions like a 2.0 port during this reboot BIOS phase before the OS USB 3.0 drivers load.
XHCI Mode = Smart Auto - The on-board USB 3.0 ports function like a 2.0 port before OS USB 3.0 drivers load. If you reboot the OS, during this reboot BIOS phase, BIOS is "Smart" enough to avoid downgrading the USB 3.0 port back to 2.0 functionality before the OS USB 3.0 drivers load. So Smart Auto is faster than Auto on 2nd boot onward, but Enabled is fastest once you are sure the OS has the USB 3.0 driver installed, because it avoids the switching.
 
Joined
Apr 9, 2017
Messages
70
Motherboard
ASUS ROG MAXIMUS VI HERO
CPU
i5-4670K OC 4.5 GHz
Graphics
GTX 780, HD 530
so both will work, but Smart Auto is faster because it avoids switching back and forth between 2.0 and 3.0?

there is no stability difference?
 

trs96

Moderator
Joined
Jul 31, 2012
Messages
21,317
Motherboard
GA-Z97X-UD3H-BK
CPU
i5-4690K
Graphics
HD4600 / RX 570
Mac
  1. MacBook Pro
  2. Mac mini
Mobile Phone
  1. Android
so both will work, but Smart Auto is faster because it avoids switching back and forth between 2.0 and 3.0?
there is no stability difference?
You might test it yourself with each setting and see how it goes.
 
Joined
Aug 29, 2012
Messages
56
Motherboard
Gigabyte Z390 Aorus Pro
CPU
i9-9900K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Classic Mac
  1. eMac
  2. Power Mac
I still haven't found the two missing ports. o_O

I have some missing too. None of them are under my chair so I'm thinking they joined up and went for coffee.

So after much reading and thinking, I think I'm really starting to understand this and just how specific one can get with mapping USB ports... finally. Just in case, could someone have a look at this and tell me if it needs any changes? I gotta admit, I didn't realize just how many USB 2.0 ports I have. I might change that now that I think I know how. As it is, I'm using 14 ports.

There is one curious entry at HS12. This is the port that is populated with the "ITE Device (8595)" in IOReg. I decided to keep it in this SSDT and the moment I finished typing it, the directory on the left automatically added "8595" to the UIAC tree. In testing this, I deleted the entry and the directory updated likewise. I added it back in and... there it is. It recognizes it as some kind of a special entry. What's up with this?

Also at entry SS06, I read somewhere that TYPE-C ports need a different number either a 9 or 10 (9= "one way", 10= "either way" which I understand is a really bad definition). 10 seems to be a better choice maybe, yes?

Thanks!

Edit: Whoops! I just noticed my "port-count", Buffer() number should be 0x18 not 0x08.


403199
 
Last edited:

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
7,007
Motherboard
Gigabyte Z490i Aorus Ultra - OC 0.6.8
CPU
i5-10600K
Graphics
RX560
Mac
  1. iMac
  2. Mac mini
Classic Mac
  1. eMac
  2. iBook
Mobile Phone
  1. Android
I have some missing too. None of them are under my chair so I'm thinking they joined up and went for coffee.

So after much reading and thinking, I think I'm really starting to understand this and just how specific one can get with mapping USB ports... finally. Just in case, could someone have a look at this and tell me if it needs any changes? I gotta admit, I didn't realize just how many USB 2.0 ports I have. I might change that now that I think I know how. As it is, I'm using 14 ports.

There is one curious entry at HS12. This is the port that is populated with the "ITE Device (8595)" in IOReg. I decided to keep it in this SSDT and the moment I finished typing it, the directory on the left automatically added "8595" to the UIAC tree. In testing this, I deleted the entry and the directory updated likewise. I added it back in and... there it is. It recognizes it as some kind of a special entry. What's up with this?

Also at entry SS06, I read somewhere that TYPE-C ports need a different number either a 9 or 10 (9= "one way", 10= "either way" which I understand is a really bad definition). 10 seems to be a better choice maybe, yes?

Thanks!

Edit: Whoops! I just noticed my "port-count", Buffer() number should be 0x18 not 0x08.


View attachment 403199

Good work on getting to understand your hardware :thumbup:

I have no direct experience of your ITE 8595 but I guess it is the extra controller for the 8x port USB2 hub your motherboard has. This is a separate entity from the main grouping. May be it is a different technique to the companion controller that was often used on earlier motherboards, to implement extra USB3.1 ports - ASMedia etc.

Yes, USB-C ports can be 'wired' two ways and you are right that there are two UsbConnector types involved depending on which is implemented. To check which yours is you would plug-in a device, make a note of it's position in the IOReg tree and then remove, turn it over and put it back in. If it stays at the same location on the tree or moves to another slot, tells you which way it has been 'wired'.

:)
 
Last edited:
Joined
Mar 21, 2011
Messages
816
Motherboard
GA-Z390-Designare
CPU
i7-9700K
Graphics
RX 590
I have some missing too. None of them are under my chair so I'm thinking they joined up and went for coffee.

So after much reading and thinking, I think I'm really starting to understand this and just how specific one can get with mapping USB ports... finally. Just in case, could someone have a look at this and tell me if it needs any changes? I gotta admit, I didn't realize just how many USB 2.0 ports I have. I might change that now that I think I know how. As it is, I'm using 14 ports.

There is one curious entry at HS12. This is the port that is populated with the "ITE Device (8595)" in IOReg. I decided to keep it in this SSDT and the moment I finished typing it, the directory on the left automatically added "8595" to the UIAC tree. In testing this, I deleted the entry and the directory updated likewise. I added it back in and... there it is. It recognizes it as some kind of a special entry. What's up with this?

Also at entry SS06, I read somewhere that TYPE-C ports need a different number either a 9 or 10 (9= "one way", 10= "either way" which I understand is a really bad definition). 10 seems to be a better choice maybe, yes?

Thanks!

Edit: Whoops! I just noticed my "port-count", Buffer() number should be 0x18 not 0x08.


View attachment 403199
I have the same board.

1) as far as I can tell, the ITE device on HS12 has to do with the RGB LED connector on the motherboard. I won't connect lights so I omitted HS12 from my SSDT.

2) I don't have any USB-C devices so I omitted SS06 from my SSDT.

3) both internal USB2 headers on the motherboard are connected to the hub at HS11. I use one of the headers for the front panel USB2 jacks and the other header for my PCI-e bluetooth card connector.

4) if you were to omit two of the HS ports from your rear panel USB3 jacks (since I don't use USB-C I only needed to omit one HS port so I chose to omit HS07) then you can enable both the SS and HS ports on the internal USB3 30-pin header and have full functionality of your front panel USB3 jacks.

to recap, here are the 15 ports I have enabled:
front panel USB3: SS10, HS10; SS09, HS09
front panel USB2: HS11 (enables both internal USB2 headers)
rear panel USB2 (four jacks): HS13
rear panel USB3/USB3.1: SS03, HS03; SS04, HS04; SS05, HS05; SS07; SS08, HS08

since you are using the USB-C jack, you would probably want to disable another rear panel HS port from a another USB3 jack and then enable SS06.
 
Joined
Aug 29, 2012
Messages
56
Motherboard
Gigabyte Z390 Aorus Pro
CPU
i9-9900K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Classic Mac
  1. eMac
  2. Power Mac
I have the same board.

1) as far as I can tell, the ITE device on HS12 has to do with the RGB LED connector on the motherboard. I won't connect lights so I omitted HS12 from my SSDT.

2) I don't have any USB-C devices so I omitted SS06 from my SSDT.

3) both internal USB2 headers on the motherboard are connected to the hub at HS11. I use one of the headers for the front panel USB2 jacks and the other header for my PCI-e bluetooth card connector.

4) if you were to omit two of the HS ports from your rear panel USB3 jacks (since I don't use USB-C I only needed to omit one HS port so I chose to omit HS07) then you can enable both the SS and HS ports on the internal USB3 30-pin header and have full functionality of your front panel USB3 jacks.

to recap, here are the 15 ports I have enabled:
front panel USB3: SS10, HS10; SS09, HS09
front panel USB2: HS11 (enables both internal USB2 headers)
rear panel USB2 (four jacks): HS13
rear panel USB3/USB3.1: SS03, HS03; SS04, HS04; SS05, HS05; SS07; SS08, HS08

since you are using the USB-C jack, you would probably want to disable another rear panel HS port from a another USB3 jack and then enable SS06.


Thanks faithie999 for that clarification on the ITE. That makes sense. I can stop wondering about it now.

Your USB config is actually what I was leaning towards. I've now disabled a bunch of HSxx ports, disabled USB-C (SS06) (since I don't have anything to test with right now... or ever), reenabled the USB 3.0 header and kept ITE (HS12) for the time being. 12 ports total. I could go lower but... whatever. I'll redo things if I need too, because I can. :headbang:

Thanks!
Cheers

Edit: Whoops! Spoke too soon. HS09 and HS10 should be SS09 and SS10. Duh.


403325
 
Last edited:
Top