Contribute
Register

USB - New Raise Port Limit Patch for macOS 10.12 Sierra

Status
Not open for further replies.
Thanks man, will give it a try :)
 
Hi,
I have a Asus H87M-PLUS but the Black USB ports works half and the USB3.0 only with USB stick but not with a SATA to USB connection.
I see that the USB2.0 don't work stable.
Is there a solution for the problem?
Tx!
Tim
 
Did anyone paid attention to this guide by Pike R. Alpha: Simple SKYLAKE USB Fix ?
I did and now my USB-Fix SSDT looks like this:
Code:
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20160422-64(RM)
* Copyright (c) 2000 - 2016 Intel Corporation
*
* Disassembling to non-symbolic legacy ASL operators
*
* Disassembly of iASLPB9959.aml, Thu Dec 29 01:39:49 2016
*
* Original Table Header:
*     Signature        "SSDT"
*     Length           0x00000F8E (3982)
*     Revision         0x02
*     Checksum         0x78
*     OEM ID           "INTEL"
*     OEM Table ID     "usb_fix"
*     OEM Revision     0x00000000 (0)
*     Compiler ID      "INTL"
*     Compiler Version 0x20160422 (538313762)
*/
DefinitionBlock ("", "SSDT", 2, "INTEL", "usb_fix", 0x00000000)
{
    External (_SB_.PCI0.XHC_.RHUB, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS01, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS02, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS03, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS04, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS05, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS06, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS07, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS08, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS09, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS10, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS11, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS12, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS13, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS14, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS01, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS02, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS03, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS04, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS05, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS06, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS07, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS08, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS09, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS10, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.USR1, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.USR2, DeviceObj)    // (from opcode)
    External (HUBC, UnknownObj)    // (from opcode)
    External (PCHV, UnknownObj)    // (from opcode)
    External (SPTH, UnknownObj)    // (from opcode)
    External (UMAP, UnknownObj)    // (from opcode)

    Scope (\_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("Method _SB._INI Called", Debug)
            Store (0xFCC8, \HUBC)
            Store (0x37, \UMAP)
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB)
    {
        Method (GPLD, 2, Serialized)
        {
            Name (PCKG, Package (0x01)
            {
                Buffer (0x10) {}
            })
            CreateField (DerefOf (Index (PCKG, Zero)), Zero, 0x07, REV)
            Store (One, REV)
            CreateField (DerefOf (Index (PCKG, Zero)), 0x40, One, VISI)
            Store (Arg0, VISI)
            CreateField (DerefOf (Index (PCKG, Zero)), 0x57, 0x08, GPOS)
            Store (Arg1, GPOS)
            Return (PCKG)
        }

        Method (GUPC, 2, Serialized)
        {
            Name (PCKG, Package (0x04)
            {
                Zero,
                0xFF,
                Zero,
                Zero
            })
            Store (Arg0, Index (PCKG, Zero))
            Return (PCKG)
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS01)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, One), One))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, One), One))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, One))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS02)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x02), 0x02))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x02), 0x02))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x02))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS03)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x04), 0x04))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x04), 0x04))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x03))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS04)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x08), 0x08))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x08), 0x08))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x04))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS05)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x10), 0x10))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x10), 0x10))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x05))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS06)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x20), 0x20))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x20), 0x20))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x06))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS07)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x40), 0x40))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x40), 0x40))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x07))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS08)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x80), 0x80))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x80), 0x80))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x08))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS09)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x0100), 0x0100))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x0100), 0x0100))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x09))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS10)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x0200), 0x0200))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x0200), 0x0200))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x0A))
            }
        }
    }

    If (LEqual (PCHV, SPTH))
    {
        Scope (\_SB.PCI0.XHC.RHUB.HS11)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x0400), 0x0400))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x0400), 0x0400))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0B))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.HS12)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x0800), 0x0800))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x0800), 0x0800))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0C))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.HS13)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x1000), 0x1000))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x1000), 0x1000))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0D))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.HS14)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x2000), 0x2000))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x2000), 0x2000))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0E))
                }
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.USR1)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero, 0xFF))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.USR2)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero, 0xFF))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS01)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, One), One))
            {
                If (LEqual (And (HUBC, One), One))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, One), One))
            {
                If (LEqual (And (HUBC, One), One))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, One))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS02)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x02), 0x02))
            {
                If (LEqual (And (HUBC, 0x02), 0x02))
                {
                    Return (GUPC (Zero, 0x03))
                }
                Else
                {
                    Return (GUPC (One, 0x03))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x02), 0x02))
            {
                If (LEqual (And (HUBC, 0x02), 0x02))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (One, 0x02))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS03)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x04), 0x04))
            {
                If (LEqual (And (HUBC, 0x04), 0x04))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x04), 0x04))
            {
                If (LEqual (And (HUBC, 0x04), 0x04))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x03))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS04)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x08), 0x08))
            {
                If (LEqual (And (HUBC, 0x08), 0x08))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x08), 0x08))
            {
                If (LEqual (And (HUBC, 0x08), 0x08))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x04))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS05)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x10), 0x10))
            {
                If (LEqual (And (HUBC, 0x10), 0x10))
                {
                    Return (GUPC (Zero, 0x03))
                }
                Else
                {
                    Return (GUPC (One, 0x03))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x10), 0x10))
            {
                If (LEqual (And (HUBC, 0x10), 0x10))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (One, 0x05))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS06)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x20), 0x20))
            {
                If (LEqual (And (HUBC, 0x20), 0x20))
                {
                    Return (GUPC (Zero, 0x03))
                }
                Else
                {
                    Return (GUPC (One, 0x03))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x20), 0x20))
            {
                If (LEqual (And (HUBC, 0x20), 0x20))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (One, 0x06))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    If (LEqual (PCHV, SPTH))
    {
        Scope (\_SB.PCI0.XHC.RHUB.SS07)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x40), 0x40))
                {
                    If (LEqual (And (HUBC, 0x40), 0x40))
                    {
                        Return (GUPC (Zero, 0xFF))
                    }
                    Else
                    {
                        Return (GUPC (One, 0xFF))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x40), 0x40))
                {
                    If (LEqual (And (HUBC, 0x40), 0x40))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (Zero, 0x07))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.SS08)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x80), 0x80))
                {
                    If (LEqual (And (HUBC, 0x80), 0x80))
                    {
                        Return (GUPC (Zero, 0xFF))
                    }
                    Else
                    {
                        Return (GUPC (One, 0xFF))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x80), 0x80))
                {
                    If (LEqual (And (HUBC, 0x80), 0x80))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (Zero, 0x08))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.SS09)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x0100), 0x0100))
                {
                    If (LEqual (And (HUBC, 0x0100), 0x0100))
                    {
                        Return (GUPC (Zero, 0x03))
                    }
                    Else
                    {
                        Return (GUPC (One, 0x03))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0x03))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x0100), 0x0100))
                {
                    If (LEqual (And (HUBC, 0x0100), 0x0100))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (One, 0x09))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.SS10)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x0200), 0x0200))
                {
                    If (LEqual (And (HUBC, 0x0200), 0x0200))
                    {
                        Return (GUPC (Zero, 0x03))
                    }
                    Else
                    {
                        Return (GUPC (One, 0x03))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0x03))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x0200), 0x0200))
                {
                    If (LEqual (And (HUBC, 0x0200), 0x0200))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (One, 0x0A))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }
    }
}
And by changing the values of just these two lines, i am able to activate or deactivate any HSx or SSx port w/o the use of either "USBInjectAll.kext" or any CLOVER portlimit patch:

Store (0xFCC8, \HUBC)
Store (0x37, \UMAP)

And for example my XHCI-IOReg now looks like this:

Bildschirmfoto_2016_12_29_um_01_44_27.png

Give it a try. Wasn't easy to understand, but makes life easier. You have to read the comments between Pike and "cnrd" to get things more clear. Also check CNRDs github channel: https://github.com/cnrd/OSX-USB-SSDT - there you will find a shellscript to get your own USB-SSDT (maybe a few changes needed as for my ASUS ROG MAXIMUS VIII Extreme).
 
Last edited:
Did anyone paid attention to this guide by Pike R. Alpha: Simple SKYLAKE USB Fix ?
I did and now my USB-Fix SSDT looks like this:
Code:
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20160422-64(RM)
* Copyright (c) 2000 - 2016 Intel Corporation
*
* Disassembling to non-symbolic legacy ASL operators
*
* Disassembly of iASLPB9959.aml, Thu Dec 29 01:39:49 2016
*
* Original Table Header:
*     Signature        "SSDT"
*     Length           0x00000F8E (3982)
*     Revision         0x02
*     Checksum         0x78
*     OEM ID           "INTEL"
*     OEM Table ID     "usb_fix"
*     OEM Revision     0x00000000 (0)
*     Compiler ID      "INTL"
*     Compiler Version 0x20160422 (538313762)
*/
DefinitionBlock ("", "SSDT", 2, "INTEL", "usb_fix", 0x00000000)
{
    External (_SB_.PCI0.XHC_.RHUB, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS01, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS02, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS03, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS04, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS05, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS06, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS07, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS08, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS09, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS10, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS11, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS12, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS13, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.HS14, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS01, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS02, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS03, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS04, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS05, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS06, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS07, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS08, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS09, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.SS10, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.USR1, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_.RHUB.USR2, DeviceObj)    // (from opcode)
    External (HUBC, UnknownObj)    // (from opcode)
    External (PCHV, UnknownObj)    // (from opcode)
    External (SPTH, UnknownObj)    // (from opcode)
    External (UMAP, UnknownObj)    // (from opcode)

    Scope (\_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("Method _SB._INI Called", Debug)
            Store (0xFCC8, \HUBC)
            Store (0x37, \UMAP)
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB)
    {
        Method (GPLD, 2, Serialized)
        {
            Name (PCKG, Package (0x01)
            {
                Buffer (0x10) {}
            })
            CreateField (DerefOf (Index (PCKG, Zero)), Zero, 0x07, REV)
            Store (One, REV)
            CreateField (DerefOf (Index (PCKG, Zero)), 0x40, One, VISI)
            Store (Arg0, VISI)
            CreateField (DerefOf (Index (PCKG, Zero)), 0x57, 0x08, GPOS)
            Store (Arg1, GPOS)
            Return (PCKG)
        }

        Method (GUPC, 2, Serialized)
        {
            Name (PCKG, Package (0x04)
            {
                Zero,
                0xFF,
                Zero,
                Zero
            })
            Store (Arg0, Index (PCKG, Zero))
            Return (PCKG)
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS01)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, One), One))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, One), One))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, One))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS02)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x02), 0x02))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x02), 0x02))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x02))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS03)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x04), 0x04))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x04), 0x04))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x03))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS04)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x08), 0x08))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x08), 0x08))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x04))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS05)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x10), 0x10))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x10), 0x10))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x05))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS06)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x20), 0x20))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x20), 0x20))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x06))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS07)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x40), 0x40))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x40), 0x40))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x07))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS08)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x80), 0x80))
            {
                Return (GUPC (Zero, 0xFF))
            }
            Else
            {
                Return (GUPC (One, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x80), 0x80))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (Zero, 0x08))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS09)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x0100), 0x0100))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x0100), 0x0100))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x09))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS10)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (HUBC, 0x0200), 0x0200))
            {
                Return (GUPC (Zero, 0x03))
            }
            Else
            {
                Return (GUPC (One, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (HUBC, 0x0200), 0x0200))
            {
                Return (GPLD (Zero, Zero))
            }
            Else
            {
                Return (GPLD (One, 0x0A))
            }
        }
    }

    If (LEqual (PCHV, SPTH))
    {
        Scope (\_SB.PCI0.XHC.RHUB.HS11)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x0400), 0x0400))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x0400), 0x0400))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0B))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.HS12)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x0800), 0x0800))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x0800), 0x0800))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0C))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.HS13)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x1000), 0x1000))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x1000), 0x1000))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0D))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.HS14)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (HUBC, 0x2000), 0x2000))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (HUBC, 0x2000), 0x2000))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x0E))
                }
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.USR1)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero, 0xFF))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.USR2)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero, 0xFF))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS01)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, One), One))
            {
                If (LEqual (And (HUBC, One), One))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, One), One))
            {
                If (LEqual (And (HUBC, One), One))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, One))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS02)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x02), 0x02))
            {
                If (LEqual (And (HUBC, 0x02), 0x02))
                {
                    Return (GUPC (Zero, 0x03))
                }
                Else
                {
                    Return (GUPC (One, 0x03))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x02), 0x02))
            {
                If (LEqual (And (HUBC, 0x02), 0x02))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (One, 0x02))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS03)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x04), 0x04))
            {
                If (LEqual (And (HUBC, 0x04), 0x04))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x04), 0x04))
            {
                If (LEqual (And (HUBC, 0x04), 0x04))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x03))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS04)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x08), 0x08))
            {
                If (LEqual (And (HUBC, 0x08), 0x08))
                {
                    Return (GUPC (Zero, 0xFF))
                }
                Else
                {
                    Return (GUPC (One, 0xFF))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0xFF))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x08), 0x08))
            {
                If (LEqual (And (HUBC, 0x08), 0x08))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (Zero, 0x04))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS05)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x10), 0x10))
            {
                If (LEqual (And (HUBC, 0x10), 0x10))
                {
                    Return (GUPC (Zero, 0x03))
                }
                Else
                {
                    Return (GUPC (One, 0x03))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x10), 0x10))
            {
                If (LEqual (And (HUBC, 0x10), 0x10))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (One, 0x05))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS06)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            If (LEqual (And (UMAP, 0x20), 0x20))
            {
                If (LEqual (And (HUBC, 0x20), 0x20))
                {
                    Return (GUPC (Zero, 0x03))
                }
                Else
                {
                    Return (GUPC (One, 0x03))
                }
            }
            Else
            {
                Return (GUPC (Zero, 0x03))
            }
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            If (LEqual (And (UMAP, 0x20), 0x20))
            {
                If (LEqual (And (HUBC, 0x20), 0x20))
                {
                    Return (GPLD (Zero, Zero))
                }
                Else
                {
                    Return (GPLD (One, 0x06))
                }
            }
            Else
            {
                Return (GPLD (Zero, Zero))
            }
        }
    }

    If (LEqual (PCHV, SPTH))
    {
        Scope (\_SB.PCI0.XHC.RHUB.SS07)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x40), 0x40))
                {
                    If (LEqual (And (HUBC, 0x40), 0x40))
                    {
                        Return (GUPC (Zero, 0xFF))
                    }
                    Else
                    {
                        Return (GUPC (One, 0xFF))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x40), 0x40))
                {
                    If (LEqual (And (HUBC, 0x40), 0x40))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (Zero, 0x07))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.SS08)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x80), 0x80))
                {
                    If (LEqual (And (HUBC, 0x80), 0x80))
                    {
                        Return (GUPC (Zero, 0xFF))
                    }
                    Else
                    {
                        Return (GUPC (One, 0xFF))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0xFF))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x80), 0x80))
                {
                    If (LEqual (And (HUBC, 0x80), 0x80))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (Zero, 0x08))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.SS09)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x0100), 0x0100))
                {
                    If (LEqual (And (HUBC, 0x0100), 0x0100))
                    {
                        Return (GUPC (Zero, 0x03))
                    }
                    Else
                    {
                        Return (GUPC (One, 0x03))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0x03))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x0100), 0x0100))
                {
                    If (LEqual (And (HUBC, 0x0100), 0x0100))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (One, 0x09))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }

        Scope (\_SB.PCI0.XHC.RHUB.SS10)
        {
            Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
            {
                If (LEqual (And (UMAP, 0x0200), 0x0200))
                {
                    If (LEqual (And (HUBC, 0x0200), 0x0200))
                    {
                        Return (GUPC (Zero, 0x03))
                    }
                    Else
                    {
                        Return (GUPC (One, 0x03))
                    }
                }
                Else
                {
                    Return (GUPC (Zero, 0x03))
                }
            }

            Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
            {
                If (LEqual (And (UMAP, 0x0200), 0x0200))
                {
                    If (LEqual (And (HUBC, 0x0200), 0x0200))
                    {
                        Return (GPLD (Zero, Zero))
                    }
                    Else
                    {
                        Return (GPLD (One, 0x0A))
                    }
                }
                Else
                {
                    Return (GPLD (Zero, Zero))
                }
            }
        }
    }
}
And by changing the values of just these two lines, i am able to activate or deactivate any HSx or SSx port w/o the use of either "USBInjectAll.kext" or any CLOVER portlimit patch:

Store (0xFCC8, \HUBC)
Store (0x37, \UMAP)

And for example my XHCI-IOReg now looks like this:

Bildschirmfoto_2016_12_29_um_01_44_27.png

Give it a try. Wasn't easy to understand, but makes life easier.

I saw it, but I think USBInjectAll.kext and custom SSDT is a better/simpler way.
Also USBInjectAll.kext + SSDT is universal, whereas the proposed "solution" on Pike's blog is not.
 
Last edited:
I saw it, but I think USBInjectAll.kext and custom SSDT is a better/simpler way.
Also USBInjectAll.kext + SSDT is universal, whereas the proposed "solution" on Pike's blog is not.
Yeah, for NEWBIES and to get a new setup work as quickly as possible your suggestion is the better/easier way.
But i find this solution way cool - even, if it took me two days to understand, what the two guys are talking about :crazy:
 
Yeah, for NEWBIES and to get a new setup work as quickly as possible your suggestion is the better/easier way.

Even experts like to use a simple/direct method.
Note that Apple uses the same mechanism as USBInjectAll.kext (eg. Apple engineers agreed with simple/direct).

But i find this solution way cool - even, if it took me two days to understand, what the two guys are talking about :crazy:

Basic stuff: DSDT is broken.... Fix DSDT. But it is easier/more understandable with USBInjectAll.kext and SSDT.
 
I do not recognize the USB 3.0 GA-P67A-UD7-b3 with Os Sierra, install the Rehabman Kexts, and activate them on the bios
 
So, Rehabman, thanks for your posts. They are extremely helpful. I have two hacks, an X99 board and Z170 board. I'm asking about the Z170X board:

Steps:
1. Enter the following in KernelAndKextPatches/KextsToPatch:

<dict>
<key>Comment</key>
<string>change 15 port limit to 26 in XHCI kext (100-series)</string>
<key>MatchOS</key>
<string>10.11.x</string>
<key>Name</key>
<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
<key>Find</key>
<data>g72M/v//EA==</data>
<key>Replace</key>
<data>g72M/v//Gw==</data>
</dict>

2. Assure USBInjectAll is installed and loaded in Clover

3. Eventually, create a custom SSDT based on my motherboard and testing of the USB ports

Have I got that right?
 
So, Rehabman, thanks for your posts. They are extremely helpful. I have two hacks, an X99 board and Z170 board. I'm asking about the Z170X board:

Steps:
1. Enter the following in KernelAndKextPatches/KextsToPatch:

<dict>
<key>Comment</key>
<string>change 15 port limit to 26 in XHCI kext (100-series)</string>
<key>MatchOS</key>
<string>10.11.x</string>
<key>Name</key>
<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
<key>Find</key>
<data>g72M/v//EA==</data>
<key>Replace</key>
<data>g72M/v//Gw==</data>
</dict>

2. Assure USBInjectAll is installed and loaded in Clover

3. Eventually, create a custom SSDT based on my motherboard and testing of the USB ports

Have I got that right?

Yes... and then

4. remove port limit patch from config.plist.

See ammulder's Skylake Starter guide.
 
Yes... and then

4. remove port limit patch from config.plist.

See ammulder's Skylake Starter guide.


So, based on your detailed explanation posted elsewhere, (https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/ - Post #1) "...There is no EHCI controller in 100-series, so several of the solutions (and problems) for 7/8/9-series don't apply to 100-series....", because I have a series 100 motherboard, can I safely assume I do not need the following in my config.plist? (And of course, thanks for all the great work you do for the community!).

<key>ACPI</key>
<dict>
<key>DSDT</key>
<dict>
<key>Patches</key>
<array>
<dict>
<key>Comment</key>
<string>change _OSI to XOSI</string>
<key>Find</key>
<data>X09TSQ==</data>
<key>Replace</key>
<data>WE9TSQ==</data>
</dict>
<dict>
<key>Comment</key>
<string>change EHC1 to EH01</string>
<key>Find</key>
<data>RUhDMQ==</data>
<key>Replace</key>
<data>RUgwMQ==</data>
</dict>
<dict>
<key>Comment</key>
<string>change EHC2 to EH02</string>
<key>Find</key>
<data>RUhDMg==</data>
<key>Replace</key>
<data>RUgwMg==</data>
</dict>
</array>
</dict>
 
Last edited:
Status
Not open for further replies.
Back
Top