Contribute
Register

CustoMac Desktop USB Fixes - 10.11+ Reference

So I feel like I'm close to getting everything working... but it's not there yet. I did EHC1 and 2 to EH01 and 02 in Clover config. Did Stork's AppleUSBXHCIPCI patch in Clover to raise the port limit to 30. Have FakePCIID and FakePCIID_XHCIMux in L/E. Also have USBInjectAll there. USB2 and 3 work fine off the back of the board, but none of my internal USB headers work. They have power in Clover, and shortly after OS X starts loading they go dead.

I was hoping to not have to figure out building my own port injector. I will if I have to though. But at this point I'm not sure that will solve the problem if InjectAll doesn't make them show up.

Advice?

No drivers are loading for EH02. Check system.log.

No need for the port limit patch when using FakePCIID_XHCIMux+USBInjectAll.kext. Use -uia_exclude_hs and remove the port limit patch.
 
No drivers are loading for EH02. Check system.log.

No need for the port limit patch when using FakePCIID_XHCIMux+USBInjectAll.kext. Use -uia_exclude_hs and remove the port limit patch.
Yes, forgot to say I am using uia_exclude_hs. Edited my post but you beat me to it. I'll look at the console log and see if I can find anything. Not really sure what I'm looking for if it's not loading. Hard to find a lack of something.

Only thing I saw that might relate was:
Code:
Mar 10 00:01:23 localhost kernel[0]: FakePCIID: [8086:8cb1] XHCIMux::startup: newData for PR2: 0x00000000
Mar 10 00:01:23 localhost kernel[0]: mcache: 8 CPU(s), 64 bytes CPU cache line sizeFakePCIID: [8086:8cb1] XHCIMux::configWrite32 address space(0x0000a000, 0xd0) data: 0x00003fff -> 0x00000000

But that may be totally normal. Anything I should be looking for?

Disabled the port limit patch.
 
Yes, forgot to say I am using uia_exclude_hs.

It is -uia_exclude_hs, not uia_exclude_hs.

And from your ioreg it looks like you're using -uia_exclude_xhc, not -uia_exclude_hs.

Edited my post but you beat me to it. I'll look at the console log and see if I can find anything. Not really sure what I'm looking for if it's not loading. Hard to find a lack of something.

Look for logs related to EHCI or USB.
 
It is -uia_exclude_hs, not uia_exclude_hs.

And from your ioreg it looks like you're using -uia_exclude_xhc, not -uia_exclude_hs.


Look for logs related to EHCI or USB.

I have the correct flag in Clover, just missed the - typing it out. I have used both xhc and hs, no change in behavior. I guess I grabbed that IOreg from an earlier attempt. It's currently using hs. I did not see anything that appeared out of the ordinary looking for USB. I looked for EH2, EH02, and did not see anything, but not EHCI. I'll post my current IOReg and anything I see in system.log that relates to USB and EHCI later.
 
I have the correct flag in Clover, just missed the - typing it out.

Your ioreg indicates otherwise. I can only respond to the data you provide.
 
So there are no entries for EHCI in the logs. (I'm going to Console and searching EHCI in All Messages. If there's another place to look or way to do so please let me know.) Here is everything that was reported after boot when searching USB:
Code:
3/10/16 6:48:10.000 PM kernel[0]: USBInjectAll: -uia_exclude_hs specfies 'HS01,HS02,HS03,HS04,HS05,HS06,HS07,HS08,HS09,HS10,HS11,HS12,HS13,HS14'3/10/16 6:48:10.000 PM kernel[0]: 000000.730201 AppleUSBLegacyRoot@: AppleUSBLegacyRoot::init: enabling legacy matching
3/10/16 6:48:10.000 PM kernel[0]: USBMSC Identifier (non-unique): 4C530303420124123063 0x781 0x556c 0x201, 2
3/10/16 6:48:10.000 PM kernel[0]: **** [IOBluetoothHostControllerUSBTransport][start] -- completed -- result = TRUE -- 0xb000 ****
3/10/16 6:48:10.000 PM kernel[0]: **** [CSRBluetoothHostControllerUSBTransport][start] -- completed -- 0xb000 ****
3/10/16 6:48:11.043 PM com.apple.usbmuxd[76]: log filter changed from 4 to 6
3/10/16 6:48:11.067 PM com.apple.usbmuxd[76]: usbmuxd-364 on Aug  4 2015 at 14:36:18, running 64 bit

Here is the IOreg after that boot.
 

Attachments

  • Robert’s iMac.ioreg
    2.9 MB · Views: 131
So there are no entries for EHCI in the logs. (I'm going to Console and searching EHCI in All Messages. If there's another place to look or way to do so please let me know.) Here is everything that was reported after boot when searching USB:
Code:
3/10/16 6:48:10.000 PM kernel[0]: USBInjectAll: -uia_exclude_hs specfies 'HS01,HS02,HS03,HS04,HS05,HS06,HS07,HS08,HS09,HS10,HS11,HS12,HS13,HS14'3/10/16 6:48:10.000 PM kernel[0]: 000000.730201 AppleUSBLegacyRoot@: AppleUSBLegacyRoot::init: enabling legacy matching
3/10/16 6:48:10.000 PM kernel[0]: USBMSC Identifier (non-unique): 4C530303420124123063 0x781 0x556c 0x201, 2
3/10/16 6:48:10.000 PM kernel[0]: **** [IOBluetoothHostControllerUSBTransport][start] -- completed -- result = TRUE -- 0xb000 ****
3/10/16 6:48:10.000 PM kernel[0]: **** [CSRBluetoothHostControllerUSBTransport][start] -- completed -- 0xb000 ****
3/10/16 6:48:11.043 PM com.apple.usbmuxd[76]: log filter changed from 4 to 6
3/10/16 6:48:11.067 PM com.apple.usbmuxd[76]: usbmuxd-364 on Aug  4 2015 at 14:36:18, running 64 bit

Here is the IOreg after that boot.

This ioreg shows USBInjectAll and -uia_exclude_hs (and not -uia_exclude_xhc, unlike the last one)

But if you look at EH02, there are no drivers loaded. You should check in system.log (All Messages doesn't work correctly all the time).

If you have a malfunctioning EHCI#2 (could be hardware defect), you should not use FakePCIID_XHCIMux and keep everything on XHC... Because some of your USB2 ports on XHC may be routed to EHCI#2 (via XHCIMux) and if it is not working... neither will the ports.
 
This ioreg shows USBInjectAll and -uia_exclude_hs (and not -uia_exclude_xhc, unlike the last one)

But if you look at EH02, there are no drivers loaded. You should check in system.log (All Messages doesn't work correctly all the time).

If you have a malfunctioning EHCI#2 (could be hardware defect), you should not use FakePCIID_XHCIMux and keep everything on XHC... Because some of your USB2 ports on XHC may be routed to EHCI#2 (via XHCIMux) and if it is not working... neither will the ports.
I guess it could be a hardware problem? But it works fine if I don't have FakePCIID installed. Then the USB2 headers all work, but USB3 doesn't, and I have screwy bluetooth problems that I think might be related to USB not being properly sorted. Would an IOreg without FakePCIID be of any use?

I grabbed IOreg after booting with FakePCIID, PakePCIID_XHCIM, USBINjectAll removed, and disabling the EHC renames in Clover. The front panel works, but there is still no EHC2. There is an EHC1, but every USB device that's plugged in is showing up under XHC as you suggested. So what do I have to do to make this work with USB3 then? Am I stuck building a port injector? And if so how can I figure out the right ports without USBInjectAll working? I don't have Windows or any other OS on this computer.
 

Attachments

  • NoFakePCIID.ioreg
    3 MB · Views: 114
So, I think I have achieved success here. After learning that my best bet was to keep things on XHCI I removed FakePCIID, FakePCIID_XHCIM, and USBInjectAll. In Clover I applied EHC to EH0 DSDT patches, as well as _OSI to XOSI patches and placed SSDT-XOSI in Clover/ACPI/patched. I applied the 15 port limit patch to AppleUSBXHCPI in Clover.

USB3 in a USB3 port has proper speed. Shows up as it should in a USB2 port as well. Front panel working and routed through XHC.

Are there any red flags you see in IOReg? Otherwise I'm going to roll with this. Thanks so much for your help as always. You are owed many beers/coffees/whatever your beverage of choice may be.
 

Attachments

  • Working.ioreg
    2.7 MB · Views: 132
So, I think I have achieved success here. After learning that my best bet was to keep things on XHCI I removed FakePCIID, FakePCIID_XHCIM, and USBInjectAll. In Clover I applied EHC to EH0 DSDT patches, as well as _OSI to XOSI patches and placed SSDT-XOSI in Clover/ACPI/patched. I applied the 15 port limit patch to AppleUSBXHCPI in Clover.

USB3 in a USB3 port has proper speed. Shows up as it should in a USB2 port as well. Front panel working and routed through XHC.

Are there any red flags you see in IOReg? Otherwise I'm going to roll with this. Thanks so much for your help as always. You are owed many beers/coffees/whatever your beverage of choice may be.

You can eliminate ports which you don't plan to use or those that are not connected. If you can get the number of active ports on XHC under 15, you can eliminate the port limit patch.
 
Back
Top