Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
Bad idea.
Sacrifice entire USB3 sets (eg. sacrifice HSxx/SSxx pairs, not part of a port).
But all external usable ports are 20 in total, and I use about all with USB2 / USB3 devices, so I have 3 roads: 1) sacrifice partial ports and still be able to use all connectors, 2) sacrifice an entire connector with the need of an external Hub, 3) use ports count fix to override 15 ports limit... or I don't understand if using FakePCIID_XHCIMux let me use all ports without the need of sacrifice

Edit: this is the actual ports state with comments (in preparing for the SSDT):
Code:
"8086_8xxx", Package()
            {
                "port-count", Buffer() { 21, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package() // Front USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package() // Front USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS07", Package() // Internal USB2 Connector (Card reader)
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS08", Package() // Internal USB2 Connector (BlueTooth BRCM20702)
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "HS09", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 9, 0, 0, 0 },
                    },
                    "HS10", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 10, 0, 0, 0 },
                    },
                    "HS11", Package() // Front USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 11, 0, 0, 0 },
                    },
                    "HS12", Package() // Front USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 12, 0, 0, 0 },
                    },
                    "HS13", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 13, 0, 0, 0 },
                    },
                    "HS14", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 14, 0, 0, 0 },
                    },
                    //HS15 is phantom port (port address 15 not used)
                    "SSP1", Package() // Front (HS01)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 16, 0, 0, 0 },
                    },
                    "SSP2", Package() // Front (HS02)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SSP3", Package() // Back (HS03)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SSP4", Package() // Back (HS04)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SSP5", Package() // Back (HS09)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                    "SSP6", Package() // Back (HS10)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 0, 0, 0 },
                    },
                },
 
Last edited:
But all external usable ports are 20 in total, and I use about all with USB2 / USB3 devices, so I have 3 roads: 1) sacrifice partial ports and still be able to use all connectors, 2) sacrifice an entire connector with the need of an external Hub, 3) use ports count fix to override 15 ports limit... or I don't understand if using FakePCIID_XHCIMux let me use all ports without the need of sacrifice

Edit: this is the actual ports state with comments (in preparing for the SSDT):
Code:
"8086_8xxx", Package()
            {
                "port-count", Buffer() { 21, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package() // Front USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package() // Front USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS07", Package() // Internal USB2 Connector (Card reader)
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS08", Package() // Internal USB2 Connector (BlueTooth BRCM20702)
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "HS09", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 9, 0, 0, 0 },
                    },
                    "HS10", Package() // Back USB3 Connector
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 10, 0, 0, 0 },
                    },
                    "HS11", Package() // Front USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 11, 0, 0, 0 },
                    },
                    "HS12", Package() // Front USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 12, 0, 0, 0 },
                    },
                    "HS13", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 13, 0, 0, 0 },
                    },
                    "HS14", Package() // Back USB2 Connector
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 14, 0, 0, 0 },
                    },
                    //HS15 is phantom port (port address 15 not used)
                    "SSP1", Package() // Front (HS01)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 16, 0, 0, 0 },
                    },
                    "SSP2", Package() // Front (HS02)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SSP3", Package() // Back (HS03)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SSP4", Package() // Back (HS04)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SSP5", Package() // Back (HS09)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                    "SSP6", Package() // Back (HS10)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 0, 0, 0 },
                    },
                },

For the hardware in your profile...
You can use FakePCIID_XHCIMux.kext to move HSxx on XHC to EHCI.
That will relieve pressure on XHC which should allow you to stay within the 15-port limit.
 
For the hardware in your profile...
You can use FakePCIID_XHCIMux.kext to move HSxx on XHC to EHCI.
That will relieve pressure on XHC which should allow you to stay within the 15-port limit.

I'll give it a try.

Attached the correct IOReg.
 

Attachments

  • IOReg.zip
    667.4 KB · Views: 105
hello, please check my file. I compile. ssdt-uaic-all but still do not wake from sleep.
the rest works fine
 

Attachments

  • Archivio.zip
    7.8 MB · Views: 87
hello, please check my file. I compile. ssdt-uaic-all but still do not wake from sleep.
the rest works fine

Problems:
- MacBookPro11,4 is a poor choice. Use MacBookPro11,1 or MacBookAir6,2.
- ACPI is not patched correctly, see guide: https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
- if your plan is to not use EHCI, then disable it, make sure XWAK is not doing anything
- you didn't describe what happens on attempt to wake from sleep
- screen backlight control not implemented correctly
- USB not implemented correctly... the SSDT-UIAC you have in ACPI/patched is not loading. Look at your Clover bootlog:
Code:
11:287  0:000  Inserting table[11]:SSDT-UIAC-ALL.aml from EFI\CLOVER\ACPI\patched ... Not Found
- carefully examine the name of the actual file in ACPI/patched
 
Problems:
- MacBookPro11,4 is a poor choice. Use MacBookPro11,1 or MacBookAir6,2.
- ACPI is not patched correctly, see guide: https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
- if your plan is to not use EHCI, then disable it, make sure XWAK is not doing anything
- you didn't describe what happens on attempt to wake from sleep
- screen backlight control not implemented correctly
- USB not implemented correctly... the SSDT-UIAC you have in ACPI/patched is not loading. Look at your Clover bootlog:
Code:
11:287  0:000  Inserting table[11]:SSDT-UIAC-ALL.aml from EFI\CLOVER\ACPI\patched ... Not Found
- carefully examine the name of the actual file in ACPI/patched


Here I am, I checked everything ACPI. delete disable EHCI on SSDT-UIAC-ALL and now loading.check backlight and install injector,dont change MBP11.4 why like 15" (if not important),test sleep and won't work, go to sleep,pushpower button (light on/off) black screen (if connect tv monitor this wake ok but no wake lidl), change ig.plat.id 0a260006 to 0a260008 same black screen.....
ps. how remove brightness fix (Haswell)patch on dsdt I'm unable for this
thank you very much
 

Attachments

  • Archivio.zip
    7.7 MB · Views: 91
Last edited:
Here I am, I checked everything ACPI. delete disable EHCI on SSDT-UIAC-ALL and now loading.check backlight and install injector,dont change MBP11.4 why like 15" (if not important),test sleep and won't work, go to sleep,pushpower button (light on/off) black screen (if connect tv monitor this wake ok but no wake lidl), change ig.plat.id 0a260006 to 0a260008 same black screen.....
ps. how remove brightness fix (Haswell)patch on dsdt I'm unable for this
thank you very much

You must fix everything I mentioned.
And this thread is only for USB issues.
Open a separate thread, attach all "Problem Reporting" files as per FAQ.
 
Hello RehabMan, is me. I have a problem you need help. Previously, I used USB3 by patch USB3_PRW 0x6D or 0x0D (instant wake) it works very well. After I follow your instructions for optimization, I have problems using USB3. I attached my document, please help me to look into this issue. Thank you!
 

Attachments

  • Archive edit 11.zip
    4.4 MB · Views: 80
Hello RehabMan, is me. I have a problem you need help. Previously, I used USB3 by patch USB3_PRW 0x6D or 0x0D (instant wake) it works very well. After I follow your instructions for optimization, I have problems using USB3. I attached my document, please help me to look into this issue. Thank you!

No idea without details on the problem you're trying to address.
You need to describe your problem in detail.
 
please check if I've configured it correctly
 

Attachments

  • Archive.zip
    2.5 MB · Views: 88
Status
Not open for further replies.
Back
Top