Contribute
Register

Gigabyte GA-X99-Designare EX USB Ports Don't Work?

Status
Not open for further replies.
I found this info here....
https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/

Specific Recommendations (7-series, 8-series, 9-series, X99)

Do the EHCx->EH0x rename. It is a no-brainer first step.

For 7-series, 8-series, and 9-series, install FakePCIID_XHCIMux.kext (FakePCIID_XHCIMux has no effect without FakePCIID.kext, and is valid only for the Intel chipsets mentioned).

For many boards, assuming _UPC is correct on XHC, that will have everything working.

But two items at this point may cause problems:
  • Your DSDT may be disabling USB3 due to improper Windows emulation. Apply the XOSI fix to address this.
  • Built-in hub port injectors for your SMBIOS may be interfering. Install USBInjectAll.kext and use kernel flag -uia_exclude_xhc. This will enable the USBInjectAll port injectors for EH0x and the associated hubs, overriding the built-in hub port injectors, but keep DSDT control of XHC.

If there are some ports still not working, remove -uia_exclude_xhc kernel flag. If your XHC has more than 15 ports (device-id is 8086:8xxx), you will need the port limit patch, or will need to divide your testing into stages (using -uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp).

Note: For X99 systems, the native Intel XHC drivers do not support 8086:8d31. You need an injector kext to enable it. See USBInjectAll.kext README for details.

Specific Recommendations (7-series, 8-series, 9-series, X99)

Do the EHCx->EH0x rename. It is a no-brainer first step.

For 7-series, 8-series, and 9-series, install FakePCIID_XHCIMux.kext (FakePCIID_XHCIMux has no effect without FakePCIID.kext, and is valid only for the Intel chipsets mentioned).

For many boards, assuming _UPC is correct on XHC, that will have everything working.

But two items at this point may cause problems:
  • Your DSDT may be disabling USB3 due to improper Windows emulation. Apply the XOSI fix to address this.
  • Built-in hub port injectors for your SMBIOS may be interfering. Install USBInjectAll.kext and use kernel flag -uia_exclude_xhc. This will enable the USBInjectAll port injectors for EH0x and the associated hubs, overriding the built-in hub port injectors, but keep DSDT control of XHC.

If there are some ports still not working, remove -uia_exclude_xhc kernel flag. If your XHC has more than 15 ports (device-id is 8086:8xxx), you will need the port limit patch, or will need to divide your testing into stages (using -uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp).

Note: For X99 systems, the native Intel XHC drivers do not support 8086:8d31. You need an injector kext to enable it. See USBInjectAll.kext README for details.

So... solutions employed depend on what conditions are actually happening:
  • BIOS settings for USB2 port routing on XHC ("auto" vs. "smart auto" vs. "enabled")
  • renaming EHCx->EH0x to avoid built-in port injectors
  • FakePCIID_XHCIMux to enforce USB2 port routing on XHC
  • DSDT patches to simulate Windows (various versions) when running Darwin
  • DSDT patches to avoid writes to port routing registers on XHC (nullifying XWAK, ESEL, XSEL)
  • custom port injector kexts to match actual port configuration
  • using USBInjectAll.kext to get things working so the actual ports can be determined

Slowly piecing this SSDT together...maybe RehabMan can check in on this as well
 
Last edited:
Status
Not open for further replies.
Back
Top