My initial ElCapitan USB workaround…

Someone e-mailed me and asked me how I worked around the initial USB problems after the introduction of the Skylake motherboard/processors. Well. This was actually easier than you may think and this is what I used:

DefinitionBlock ("ssdt_usb.aml", "SSDT", 2, "APPLE ", "Xhci", 0x00001000)
{
    External (_SB_.PCI0.XHC_)
    External (_SB_.PCI0.XHC_._ADR)

    Scope (\_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("Method \\_SB._INI Called", Debug)

            Store (Zero, \_SB.PCI0.XHC._ADR)
            Store (Zero, \_SB.PCI0.XHC)
        }
    }
}

What I did, basically, was to nullify the namespace of Device (XHC) in the ACPI tables so that the Apple USB drivers could add the USB ports for me. And it did. This will however not solve the USB problems, as you will likely still hit the USB port limit of 15 ports, but this gave me all enabled USB 2.0 ports and a number of USB 3.0 ports, which I used to make the following scheme for the ports on the backplate:
USB_ports_1
And this one for the USB ports coming from the 20-pin front connector on the motherboard:
USB_ports_2
The next step was to write a XHCI SSDT to enable all the ports that I needed – I only skipped the port for the onboard F_USB2 connector to get to the maximum supported port numbers and have every port working. Oh and I also added this little snippet:

Method (MBSD, 0, NotSerialized)
{
    Return (One) // Let AppleUSBODD know that USB SuperDrive is supported on this Mac!
}

Not too many people know about this requirement so here it is.

p.s. I’m still on holidays (we’re in Germany now) and I will add the SSDT when I am back home again.

36 thoughts on “My initial ElCapitan USB workaround…

  1. Thanks!

    I always wondered what MBSD did since I saw it it the EOM ACPI code of the MacPro6,1.

    Is there a place to find Apples specific ACPI specifications that are not explained in Intel’s spec?

  2. i have a macbook 2007 model,2.16 ghz core 2 duo.i have downloaded the macintosh hd.dmg and boot.efi and followed the exact process as advised by you.but after booting i am struck at the select country page.i am unable to proceed wiith the installation as my curosr does not move nor does the track pad.kindly help me with tihis issue.

    • Sorry, but I never told you, nor anyone else for that matter, to download a MacIntosh DMG so nope. I cannot help you with this. Whatever you may have found on the Internet/some forum, that are not my instructions!

  3. How long are you staying in germany and in what city/town are you?
    I would very much like to meet you and invite you to a coffee or beer :)…

  4. Hi Pike,

    We need your help. I know you are in holiday, and I hope you are having a very good ones with yours.

    I am electronic engineer/sound engineer, and I am amazed with how you solve all the “problems” like the USB one, that shows clearly how well you know the OS.

    A few of us own an ASUS de luxe with 5960X that seems to work properly with 10.10.x (changing a pair of kext)

    No one was able to make it work with 10.11.x

    I was asking myself if you are the answer …

    Thanks a lot in advance,

    JLC

    http://www.insanelymac.com/forum/topic/309110-el-capitan-10111-versus-the-5960x-a-collaborative-work-thru/

    • Need data and more information. Is the 5930 working on the same motherboard? Have you compared the ACPI tables of the 5930 and 5960X already (on the same motherboard. Sorry. Really need to run now. Back next year.

  5. Hi pikeralpha, glad to see that you recovered your surgery ( or I hope so) .

    I am just curious when the skylake based laptop’s will be compatible for hackintoshing. Do we have to wait for skylake based macbook pro’s release for that to occur ?

    Thanks for your efforts and help.

    Best wishes.

      • Thanka for the answer.

        Do you think intel hd 530 graphics will be working fine without any artifacts and with qe/ci acceleration, once skylake based macbooks are released or is this very unlikely ? if this is affirmative, can you give a close date for us to be using intel hd 530 based laptops ( june, march, or something else) ?

        If my question sounds a bit too much, I apologize in advance.

        Thanks.

      • Nobody but Apple knows when new Apple hardware wil be released, but I believe that the Intel HD 530 should work fine, but when exactly – for everyone – is also still unknown.

      • That did the trick. Took me a few hours but after flashing the nec roms with new vendor ids and installing the Lacie package and then patched PXHCD kext it worked!

    • Make sure you are using 10.11.2 or newer. Earlier versions of El Capitan would panic when using older xHCI drivers (such as the LaCie drivers or GenericUSBXHCI). I think you could accomplish the subsystem vendor ID changes through device property injection.

      • Works sporadically to tell you the truth. Up to 10.11.3 now and man do I get lots of preboot verbose messages from that Pxhcd kext! Fills a whole two pages of initializing this and that..
        Anyhow change of subject @Piker .. Know how to make intel raid native for osx so that the array is accessable when you multiboot Windows and Capitan? Thanks

  6. Pike, thanks for all the amazing stuff you have been doing on unsupported Macs. Still, some of us have old macs other than MacPro’s, which could run El Capitan too, but no clues were given on how to solve the “No USB” issue on real Macs. Any chance you could look into it and help us like you did with Boot.efi ? That would be just brilliant.

      • Pike, thanks for your kindness & apologies for the delay in answering
        Macmini2,1 / Mac-F4208EC8. I reach the installer with your amazing boot.efi but no input possible to continue the installation. (Macpro’s do not have this issue as it seems)

        Regards

      • Ok. For USB to work with ElCapitan, you need to be able to load a custom SSDT to enable the ports. Which is not possible right now, but it was of the things that I had added to the TODO list. I’ll see what I can come up with.

  7. Hi Pike!
    About USB map, I’m trying to disable some of the USB3 ports by setting _STA to Zero. To do this I’d like to use a proper ssdt but It I can’t make it working. Could you help me to fix it?
    Mobo: M VII Gene (Z97)

    DefinitionBlock ("iASLd1481c.aml", "SSDT", 1, "AMICPU", "PROC", 0x00000001)
    {
        External (HS08, DeviceObj)
        External (HS07, DeviceObj)
        External (HS04, DeviceObj)
        External (HS03, DeviceObj)
        External (RHUB, DeviceObj)
        External (XHC_, DeviceObj)
        External (PCI0, DeviceObj)
    
        Scope (\)
        {
            Scope (\_SB)
            {
                Scope (PCI0)
                {
                    Scope (XHC)
                    {
                        Scope (RHUB)
                        {
                            Scope (HS03)
                            {
                                Name (_STA, Zero)
                            }
    
                            Scope (HS04)
                            {
                                Name (_STA, Zero)
                            }
    
                            Scope (HS07)
                            {
                                Name (_STA, Zero)
                            }
    
                            Scope (HS08)
                            {
                                Name (_STA, Zero)
                            }
                        }
                    }
                }
            }
        }
    } 
    

    Thank you 😉

    • Using _STA will only hide ports. Not really disable them. Disabling can be done, since that is exactly what Apple does, but I haven’t figured it out yet. The problem is that Apple resets the ports, so they will be re-enabled once the kext binary is doing its thing.

  8. Pingback: Simple Skylake USB Fix (no kexts required) – Pike's Universum

  9. Hello there, I have been suffering a freeze problem during boot (clover) since Yosemite. It happens that if XHCI controller is enabled in bios the boot will hang at MBINIT and onlty solution so far is disable the XHCI controller in the bios. I tried all the DSDT patching stuff and this is not related to DSDT. Now I found out that some other people were reporting this problem since 10.10. My controller is Intel 1e31 which should work out of the box yet it doesn’t. This guy ( http://www.insanelymac.com/forum/topic/302724-usb-30-hangs-at-mbinit-disable-works-fine/ )reported an identical problem in the past and solved it rolling back AppleACPIPlatform kext to the Mavericks one. Another guy had the same problem with a NEC controller -> http://www.tonymacx86.com/threads/stuck-at-mbinit.145111/
    My question is, could this be a matter of patching the kext some way? Do you have a clue?
    Thanks

      • there is no option to set it to handoff, however if I recall correctly it was an hidden default setting in the bios (seen with uefi tool or similar). So this is not the problem. Anyway I will check again if that setting was there.

        Edit: this is a laptop. I modded the bios to show all settings but yet there is no handoff, however I think that is enabled and hidden by default.

Leave a reply to pikeralpha Cancel reply