Contribute
Register

CustoMac Desktop USB Fixes - 10.11+ Reference

FakePCIID_XHCIMux.kext is not required.
And there is no "fixing" required (it is not broken).
It is valid to keep everything on XHC, which is how most Macs (past 7-series) are configured.

Your choice either way.
See guide:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

I have some issues with my an USB Device, the customer suppor5t asked me to send them my system report.
They told me that I should connect it to a USB2 rather than a USB3 port.
That why I am trying to 'fix' it.
 
I have some issues with my an USB Device, the customer suppor5t asked me to send them my system report.
They told me that I should connect it to a USB2 rather than a USB3 port.
That why I am trying to 'fix' it.

Most recent real Macs (including those using similar chipsets as yours) use XHC only, which causes USB2 devices to show under "USB 3.0". I think the person you were talking to is clueless.
 
I am considering adding a USB-C 3.1 Gen 2 pcie card to my rig (additional 2 physical ports). Would this expansion card affect the USB port limit, i.e. would I need to recreate my custom SSDT? I assume it would not as it is not an intel implementation of USB ports, but I wanted to ask to be sure.
 
My motherboard model is GA-Z170N-WIFI, the OS is HS, and it is injected through custom SSDT, now there are 15 USB ports, HS01-HS08/SS01-SS07.

The USB ports of this motherboard are grouped, 01/02 is a group, 03/04 is a group, and 05/06 is a group.

I found a problem: If I plug a wireless mouse with a USB 3.0 USB stick, the wireless mouse will not work; if I plug the wireless mouse with a USB 2.0 USB stick, then they can work together.

The SSDT for USB is:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC", 0x00000000)
{
    Device (_SB.EC)
    {
        Name (_HID, "EC000000")  // _HID: Hardware ID
    }

    Device (_SB.USBX)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (LNot (Arg2))
            {
                Return (Buffer (One)
                {
                     0x03                                         
                })
            }

            Return (Package (0x08)
            {
                "kUSBSleepPortCurrentLimit",
                0x0834,
                "kUSBSleepPowerSupply",
                0x13EC,
                "kUSBWakePortCurrentLimit",
                0x0834,
                "kUSBWakePowerSupply",
                0x13EC
            })
        }
    }

    Device (UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID
        Name (RMCF, Package (0x02)
        {
            "8086_a12f",
            Package (0x04)
            {
                "port-count",
                Buffer (0x04)
                {
                     0x1A, 0x00, 0x00, 0x00                       
                },

                "ports",
                Package (0x1E)
                {
                    "HS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS02",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x02, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS04",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x04, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS05",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x05, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x06, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS07",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x0A,
                        "port",
                        Buffer (0x04)
                        {
                             0x07, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS08",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x02,
                        "port",
                        Buffer (0x04)
                        {
                             0x08, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x11, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS02",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x12, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x13, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS04",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x14, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS05",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x15, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x16, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS07",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x0A,
                        "port",
                        Buffer (0x04)
                        {
                             0x17, 0x00, 0x00, 0x00                       
                        }
                    }
                }
            }
        })
    }
}
 
litgle,

No expert here (RehabMan is the Man), but if it were my SSDT I would change the following and see what happens:
At "HS07" under "UsbConnector" I would change from "0x0A" to "0x03".
At "HS08" under "UsbConnector" I would change from "0x02" to "0x03".
At "SS07" under "UsbConnector" I would change from "0x0A" to "0x03".
At "port-count" under Buffer (0x04) I would change "0x1A" to "0x17" (which is your highest port number, I think).

What do you see in IORegistryExplorer under "XHC@14000000"?

[Edit: In case you are interested, I have attached my disassembled "SSDT-USB-Skylake.dsl" below. I have an H170N-WIFI motherboard which is close to your configuration, I think.]
 

Attachments

  • SSDT-USB-SKYLAKE.dsl
    6.1 KB · Views: 207
Last edited:
litgle,

No expert here (RehabMan is the Man), but if it were my SSDT I would change the following and see what happens:
At "HS07" under "UsbConnector" I would change from "0x0A" to "0x03".
At "HS08" under "UsbConnector" I would change from "0x02" to "0x03".
At "SS07" under "UsbConnector" I would change from "0x0A" to "0x03".
At "port-count" under Buffer (0x04) I would change "0x1A" to "0x17" (which is your highest port number, I think).

What do you see in IORegistryExplorer under "XHC@14000000"?

[Edit: In case you are interested, I have attached my disassembled "SSDT-USB-Skylake.dsl" below. I have an H170N-WIFI motherboard which is close to your configuration, I think.]

Thank you for your reply!
My SSDT file refers to this post:
https://www.tonymacx86.com/threads/guide-el-capitan-on-the-skylake-h170n-wifi.178197/

In mainboard Z170N-WIFI, HS07/SS07 is a type-c USB3.0 port, so I think its UsbConnector should be 0x0A, and I think you disabled type-c USB3.0 port in your SSDT.
 
I change the SSDT like this:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC", 0x00000000)
{
    Device (_SB.EC)
    {
        Name (_HID, "EC000000")  // _HID: Hardware ID
    }

    Device (_SB.USBX)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (LNot (Arg2))
            {
                Return (Buffer (One)
                {
                     0x03                                          
                })
            }

            Return (Package (0x08)
            {
                "kUSBSleepPortCurrentLimit",
                0x0834,
                "kUSBSleepPowerSupply",
                0x13EC,
                "kUSBWakePortCurrentLimit",
                0x0834,
                "kUSBWakePowerSupply",
                0x13EC
            })
        }
    }

    Device (UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID
        Name (RMCF, Package (0x02)
        {
            "8086_a12f",
            Package (0x04)
            {
                "port-count",
                Buffer (0x04)
                {
                     0x17, 0x00, 0x00, 0x00                        
                },

                "ports",
                Package (0x1E)
                {
                    "HS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS02",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x02, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS04",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x04, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS05",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x05, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x06, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS07",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x0A,
                        "port",
                        Buffer (0x04)
                        {
                             0x07, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS08",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x08, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x11, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS02",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x12, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x13, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS04",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x14, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS05",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x15, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x16, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS07",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x0A,
                        "port",
                        Buffer (0x04)
                        {
                             0x17, 0x00, 0x00, 0x00                        
                        }
                    }
                }
            }
        })
    }
}

then reboot PC, XHC@14000000 displays as follow in IORegistryExplorer:
屏幕快照 2018-07-18 下午6.46.50.png


USB3.0 device will still cause Logitech USB wireless mouse&keyboard does not work
 
Thank you for your reply!
My SSDT file refers to this post:
https://www.tonymacx86.com/threads/guide-el-capitan-on-the-skylake-h170n-wifi.178197/

In mainboard Z170N-WIFI, HS07/SS07 is a type-c USB3.0 port, so I think its UsbConnector should be 0x0A, and I think you disabled type-c USB3.0 port in your SSDT.

USB type-C could be 10 (0x0a) or 9. Make sure you test your USB-C adapter in both orientations and read the ACPI spec (_UPC) to understand which UsbConnector value is applicable to your hardware.
 
In mainboard Z170N-WIFI, HS07/SS07 is a type-c USB3.0 port, so I think its UsbConnector should be 0x0A, and I think you disabled type-c USB3.0 port in your SSDT.
Yes, that was deliberate. I have no USB type-c devices and I do not use that port. Again, RehabMan is the expert, and I am a novice "Hacker." The USB connector code for type-c USB 3.0 port must be 0x0A per RehabMan, but nonetheless that is not a port number, and I still think your "port-number" should be 17 (that is hex 17 even though it looks like decimal 17 in the form). That is your highest port number. Look at the attached SSDT(below) from your link (actually RehabMan's link from that thread). See the "port-number?"
 

Attachments

  • SSDT-USB-H170N-WIFI.aml
    775 bytes · Views: 192
Last edited:
Installed Mojave through the App Store with the latest kexts and everything works great including audio ALC892 and video HD4600 except USB3.0 and I think Messages. Only one port works and my WD Elements can be mounted there. I have installed FakePCIID.kext and FakePCIID_XHCIMux.kext with KextBeast. I am not familiar with further actions, what can I do to get the USB3.0 ports to work?

Guide:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
 
Back
Top