Jump to content

[Guide] Mac OSX 10.12 and 10.13 with X99 Broadwell-E family and Haswell-E family


nmano
 Share

1,954 posts in this topic

Recommended Posts

ssdtGen updated to 0.1.3beta

ssdtGen changelog 0.1.3b:
✓ Adjusted GPU IOREG look-up because of varying ACPI paths
✓ Adjusted the NVME prompt inputs to have built in syntax and length checks
✓ Fixed SMBS/SBUS SSDT mistake, where Z170 boards used wrong hardcoded device in notify operators
✓ Added notes to the entire source
✓ Optimized code for less redundancy

Is it possible for me to post to the Developer's Forum? Appears to be locked from adding new threads. Thanks!

  • Like 1
Link to comment
Share on other sites

Hello there. I need some guidance on how to install Sierra on this:

Asus X99 R5E 3504

5960X

DDR4 G.SkillDTD

EVGA GTX 950 SC

Samsung 840 Pro

 

I presume I need patches for the 5960X? How can I provide myself or find a RVE DTD? What sys def I need to use? How to configure Clover?

 

 

 

Thanks.

Check

CLOVER.zip

  • Like 1
Link to comment
Share on other sites

Check

attachicon.gifCLOVER.zip

 

So, this one got me the same problem I'm battling lately: it starts as it works, but as soon as +++++ and the fast loading ends at PCI..., the machine just reboots with no signal from the graphics card.

 

My config is:

EVGA GTX 950 SC - stock BIOS in the Slot 1

Asus Xonar Slot 3

BCM943602CS WiFi/BT card Slot 4

128GB 8x16GB G.Skill

5960X CPU at manual settings (4GHz, Votlage 1.15V, BCLK 100, RAM 2600)

USB - Smart Auto, Enabled, Enabled, Enabled

Virtualization OFF

V-t/d OFF

CSM OFF

 

What boot flags should I need? I've tried using nv_disable=1 and nvda_drv=1 and cpus=1, but any and both just reboot after the attached screen - the system just reboots. :(

 

This are the screens after which the system just hangs (keyb and mouse go off (no backlight any more) or reboots - 

http://imgur.com/a/3Ouzs

 

Thank you.

 

Embraer's patch helped, but stuck at IOConsoleUsers: gIOScreenLockState 3

Link to comment
Share on other sites

You need to use the brumbaer patch for this.

Putting xHCI for usb 3.0 fixed the problem with the usb boot stick going offline. Now progressed further and stuck at:

IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0

Link to comment
Share on other sites

#mfc88 #PMheart need some help to trace strange system freeze/hang. No error, no post, stuck image, no text, just freezing. Any advice?

Curiously, even with different hardware, the same happened to me under the same conditions in both 12.4 and 12.5. From what I understand it seems to have to do with the NV Web Driver. If I do not have it installed it does not happen. Just happens after installing the driver and have graphics acceleration...

Link to comment
Share on other sites

Curiously, even with different hardware, the same happened to me under the same conditions in both 12.4 and 12.5. From what I understand it seems to have to do with the NV Web Driver. If I do not have it installed it does not happen. Just happens after installing the driver and have graphics acceleration...

need to try. I thinking, maybe it's a wrong lan driver or ram speed.. it's drive me nuts

Curiously, even with different hardware, the same happened to me under the same conditions in both 12.4 and 12.5. From what I understand it seems to have to do with the NV Web Driver. If I do not have it installed it does not happen. Just happens after installing the driver and have graphics acceleration...

need to try. I thinking, maybe it's a wrong lan driver or ram speed.. it's drive me nuts

Link to comment
Share on other sites

could you post a complete output of appleintelinfo kext (piker alpha script, you posted a partial result of it)

 

"HyperX FURY Black 8GB, DDR4, 2400MHz, CL15, 1.2V *2"

 

you have two memory sticks so your system is working in dual channel mode (quad channel is an optimal and exact condition with your specs and this is achieved with 4 sticks of memory)

If you can, put also an output result for kextstat (from terminal write kextstat and see the output)

I don't know which  config.plist you are using and if your msg 0xE2 is unlocked or not

this data could be useful to trace your problem

Ieșire salvată Terminal.txt

config.plist.txt

Link to comment
Share on other sites

ok, I don't understand some injection in your config

your mb firmware is unlocked so you can use other solutions in kernel patches

try to use solution 2  here

 

http://www.insanelymac.com/forum/topic/316516-macos-sierra-on-broadwell-eep-not-a-guide-but-maybe-a-working-in-progress/page-1

 

if you have a valid way to reverse if your system does not start

then you can put here your efi folder to see which kexts you are using and other things

 

well, tested, working, waiting to see

dosar fără titlu.zip

Link to comment
Share on other sites

Just a small update:

 

Currently using Rehabman's USBInjectAll.kext + XHCI-x99-injector.kext with a custom SSDT-UIAC.aml. This way, I no longer need the AppleUSBXHCIPCI 15 to 22/27/31 limit port patch. Instead of injecting all ports spread across EH01/EH02/XHCI, which most of these ports aren't used at all, instead I only have 12 ports injected into XHC.

 

I highly recommend this method as it's more precise to which ports will be in use and whether or not the port is 2.0, 3.0 or internal (since 10.12, USB 3.1 ports should be natively supported).

 

I've included a starter kit: Kexts that you need to install to EFI->CLOVER->Kexts->10.12, a SSDT-UIAC.dsl template, and IORegistry Explorer 2.1, which you can use in conjunction with this brief guide OR Rehabman's in-depth SSDT for USBInjectAll.kext guide

 

Requirements:

- Set up your BIOS 

 

Under Advanced / USB Configuration:

  • Intel XHCI Mode - Enable
  • EHCI Legacy Support - Disabled
  • XHCI Hand-off - Disabled
  • EHCI Hand-off - Disabled

- DSDT.aml => XHCI/XHC1 must be named XHC (for most of you, you'll probably need to use one of the patches below OR if you have a custom DSDT.aml, then rename the device and any references from XHC1/XHCI to XHC by hand)***

 

Note: If you're curious to know exactly which Clover DSDT patch for your config.plist that you'll need, simply start up your computer, while at the Clover boot screen, press F4 to dump your ACPI tables. Wait 4 seconds, then boot into your OS. Next, mount your primary SSD drive (the one you just booted into) with Clover Configurator then click "Open Partition". Find and open this file with MaciASL: EFI->CLOVER->ACPI->origin->DSDT.aml. In MaciASL, Press ⌘ + F, then type "XHCI" or "XHC1". One of those should returns results (then you'll know which patch to use): Example and corresponding config.plist DSDT patch

config.plist DSDT patches:

Comment: Change XHCI to XHC
Find: 58484349
Replace: 5848435F

Comment: Change XHC1 to XHC
Find: 58484331
Replace: 5848435F

- You will also need an AppleUSBXHCIPCI 15 to xx port limit patch in your config.plist (under KextsToPatch):

 

Note: You can find out which patch you'll need by using MaciASL and searching in your DSDT.aml for "RHUB", then counting the HSxx + SSxx ports: Example

Note: Where to add the USB port limit patch to your config.plist: Example

Name: AppleUSBXHCIPCI
Find: 83BD74FFFFFF10
Replace: 83BD74FFFFFF16
Comment: Change 15 Port Limit To 22 in XHCI 10.12 

OR if your board has more than 22:

Name: AppleUSBXHCIPCI 
Find: 83BD74FFFFFF10 
Replace: 83BD74FFFFFF1B 
Comment: Change 15 Port Limit To 27 in XHCI 10.12

OR if your board has more than 27:

Name: AppleUSBXHCIPCI 
Find: 83BD74FFFFFF10 
Replace: 83BD74FFFFFF1F 
Comment: Change 15 Port Limit To 31 in XHCI 10.12

-IORegistry Explorer 2.1 (provided in Starter Kit) 

 

Summary:

1.) With USBInjectAll and XHCI-x99-injector.kext loaded in EFI->CLOVER->kexts->10.12 or System/Library/Extensions via Kext Utility, load up IOReg 2.1

 

2.) Do a search for "usb"

 

3.) You'll notice you'll have HS01 to SSP6 (or something similar) injected into XHC; however, now comes the task of narrowing down which ones your motherboard/computer case USBs are mapped to.

 

4.) Plug in a USB 3.0 device into a USB 3.0 port, find that mapped location by looking for the device in IOReg, then eject it. Write down the location (SSxx). Next, plug in a USB 2.0 device and find the other mapped location by looking for that device. Write down the location (HSxx) USB 3.0 ports will have two locations: a SSxx location and a HSxx location AND both locations will also have a connector value of 3 regardless of the device that is plugged in!

 

Note: If you have trouble locating where the device is mapped, click the Apple Icon on the top left, select "About This Mac", click "System Report", click on the "USB" tab, look at the "Location ID" (eg. 0x14400000) and in IOReg look for that same address (in this case, the m9xx device is mapped to HS06 @ 0x14400000):

DZc1zfx.png

EDedKbJ.png

5.) Rinse and repeat until you've eliminated all possible USB mapped locations

 

Note: USB 2.0 ports will only be mapped to one HSxx location, so no need to test 3.0 devices in a 2.0 port, and will have a connector value of 0 regardless of the device that is plugged in!

Note: USB "Hubs" that come packaged with the motherboard should have a connector value of 255. Other devices, like internal blue tooth devices, should also have a 255 connector value.

Note: USB "Hubs" external to the motherboard should have a connector value of 0 or 3. 

 

6.) After you've eliminated all possible USB mapped locations, open up the provided SSDT-UIAC.dsl with MaciASL (to set up MaciASL, follow this guide up to step 6).

 

Note: I've included a "USB-Mapped-Ports" text file that gives you a basic idea of my particular USB layout. I'd recommend you do something similar to make your life easier and to keep track of everything

 

7.) Using the provided SSDT-UIAC.dsl as a template, input XHC's PCI compatible ID, the injected port count, the USB mapped location (for example, HS01), the connector value (connector values will be: 3 = USB 3.0; 0 = USB 2.0; 255 = built-in), and the port number's hex address (it'll correspond to the port in hex).

 

Note: You can find XHC's PCI compatible ID by using IOReg: Example (note that in our SSDT-UIAC.dsl that we remove "pci" and use a _ (underscore) instead of a , (comma). You don't have to use the PCI compatible ID!! You can use "XHC" instead, but I prefer the ID.

 

Note: My injected port count is 21 ports (or 15 hex), which is what I've used in the SSDT-UIAC.dsl's "port-count" (you can count how many you have by counting how many are listed in RHUB + 1). The actual ports in use for my setup is 14 ports (12 in XHC and 2 in RP05 -- RP05 ports are the USB 3.1 ports natively supported by Sierra). If you have more than 21 ports mapped that are in use, you may have to utilize EHCI, and you may have to keep the 22/27/31 port limit patch in use, which is beyond the scope of this brief summary.

 

Note: You can find the port's hex address by using IOReg: Example

 

Here's a port hex list (may or may not apply to your particular board)...

HS01 === 0x01
HS02 === 0x02
HS03 === 0x03
HS04 === 0x04
HS05 === 0x05
HS06 === 0x06
HS07 === 0x07
HS08 === 0x08
HS09 === 0x09
HS10 === 0x0A
HS11 === 0x0B
HS12 === 0x0C
HS13 === 0x0D
HS14 === 0x0E
SSP1 === 0x10
​SSP2 === 0x11
​SSP3 === 0x12
​SSP4 === 0x13
SSP5 === 0x14
SSP6 === 0x15
------------------
0x15 = 21 ports (15 in hexadecimal => 21 in decimal -- note: port hex address 0x0F is not used! )

===============================
===============================
===============================

HS01 === 0x01
HS02 === 0x02
HS03 === 0x03
HS04 === 0x04
HS05 === 0x05
HS06 === 0x06
HS07 === 0x07
HS08 === 0x08
HS09 === 0x09
HS10 === 0x0A
HS11 === 0x0B
HS12 === 0x0C
HS13 === 0x0D
HS14 === 0x0E
SS01 === 0x10
​SS02 === 0x11
​SS03 === 0x12
​SS04 === 0x13
SS05 === 0x14
SS06 === 0x15
SS07 === 0x16
SS08 === 0x17
SS09 === 0x18
SS10 === 0x19
USR1 === 0x1A
USR2 === 0x1B
------------------
0x1B = 27 ports (1B in hexadecimal => 27 in decimal -- note: port hex address 0x0F is not used!)

 

An example of HS01 injected as a 3.0 USB port (notice that the UsbConnector is 3 and the port (in hex) is 0x01):

                     "HS01", Package() 
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x01, 0, 0, 0 }, 
                    },

An example of HS14 injected as a USB 2.0 port (notice that the UsbConnector is 0 (USB 2.0) and the port (in hex) is 0x0E):

                    "HS14", Package() 
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0E, 0, 0, 0 },
                    },

An example of SS06 injected as an internal USB port (notice that the UsbConnector is 255 and the port (in hex) is 0x15):

                     "SS06", Package() 
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 0x15, 0, 0, 0 }, 
                    },

Here's what my complete SSDT-UAIC.aml looks like:

DefinitionBlock ("", "SSDT", 2, "hack", "UIAC", 0x00000000)
{
    Device (UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID (leave this as-is)
        Name (RMCF, Package (0x02)
        {
            "8086_8d31", // PCI compatible ID
            Package (0x04)
            {
                "port-count", 
                Buffer (0x04)
                {
                     0x15, 0x00, 0x00, 0x00 // The amount of ports RHUB+1 has                        
                }, 

                "ports", // where we begin to inject our mapped ports
                Package ()
                {
                    "HS01", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                         
                        }
                    }, 

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

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

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

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

                    "HS10", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        255, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x0A, 0x00, 0x00, 0x00                         
                        }
                    }, 

                    "HS11", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        255, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x0B, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    
                    "HS13", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x0D, 0x00, 0x00, 0x00                         
                        }
                    }, 

                    "HS14", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x0E, 0x00, 0x00, 0x00                         
                        }
                    }, 

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

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

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

                    "SSP6", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        255, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x15, 0x00, 0x00, 0x00                         
                        }
                    }
                }
            }
        })
    }
}

8.) Once you've added all mapped ports that are in use (exclude ports that are NOT used) in the .dsl, compile it and make sure you don't have any errors. Now save it:

Save as: SSDT-UIAC.aml

Where: Desktop

File Format: ACPI Machine Language Binary

 

9.) Add this SSDT into EFI->CLOVER->ACPI->patched (if you're using sorted tables, you'll need to add this SSDT to the sorted list in your config.plist)

 

10.) Open your config.plist and disable the AppleUSBXHCIPCI 15 to 22/27/31 port limit patch. Now, reboot and boot back into your OS. Open up IOReg 2.1, search for usb, and now your tree should look condensed to the ports you've specified in the SSDT:

 

njMwp18.png

11.) Now that you have your USBs mapped and injected, you'll now need to add power options to them, so that you can use them for charging your USB devices. We'll be adding power options via a SSDT-XHC.aml (I've included a SSDT-XHC.dsl for you to compile):

 

Note: If you're not using an x99 motherboard, then you'll need to change the "device-id" (necessary) and you may want rename the "model" to your USB xHC Host Controller (optional as this just for show). 

Note: You can find XHC's device id by using IOReg: Example

Note: For "AAPL,device-internal," make sure you specify how many devices are internal in your SSDT-UIAC.aml

DefinitionBlock ("", "SSDT", 2, "mfc88", "XHC", 0x00000000)
{
    External (_SB_.PCI0.XHC_, DeviceObj)    // (from opcode)
    
    Method (_SB.PCI0.XHC._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If (LNot (Arg2))
        {
            Return (Buffer (One)
            {
                 0x03                                           
            })
        }

        Return (Package ()
        {
            "device-id", 
            Buffer (0x04)
            {
                0x31, 0x8D, 0x00, 0x00   // make sure this matches XHC's device ID                      
            }, 

            "name", 
            Buffer ()
            {
                "Intel XHC Controller"
            }, 

            "model", 
            Buffer ()
            {
                "Intel 99 Series Chipset Family USB xHC Host Controller" // optional: rename to your motherboard's xHC Host Controller name
            }, 

            "AAPL,current-available", 
            0x0834, 
            "AAPL,current-extra", 
            0x0A8C, 
            "AAPL,current-in-sleep", 
            0x0A8C, 
            "AAPL,max-port-current-in-sleep", 
            0x0834, 
            "AAPL,device-internal", 
            0x03, 
            Buffer (One)
            {
                0x00                                           
            }, 

            "AAPL,clock-id", 
            Buffer (One)
            {
                0x01                                           
            }
        })
    }
} 

When done correctly (injected ports with power options):

jMqduec.png

 

 

*** Note if you plan on using eHCI locations (in the example above, I'm not), you'll need to rename EHC1 to EH01 and EHC2 to EH02 via DSDT.aml edit or Clover DSDT patches (that way it'll work in conjunction with the UsbInjectAll kext). You'll also need use: Fake_PCIID.kext + FakePCIID_XHCIMux.kext (together these two kexts map HSxx (usb 2.0) ports from XHC to EH01/EH02), which you download together from: here (Important: Only use the two Fake kexts mentioned above in conjunction with USBInjectAll and XHCI-x99-injector!!) Lastly, you may need to need to adjust your BIOS for proper xHCI handoff to eHCI. Check Rehabman's guide for more information.

 Sorry for the long quote but wanted to make sure it was right.

I have used this guide to successfully create a SSDT-UIAC.aml for my machine but i have a NZXT IU01 set internally on my machine and i would like to be able to utilise the usb ports on this for say a bluetooth adapter but it shows up strange in IOREG as shown in image.

Please help :-)

The DataTraveler is a usb 2.0 drive that was put into one port, pulled and put in the other.

post-1083558-0-30464800-1492606124_thumb.png

Link to comment
Share on other sites

 Sorry for the long quote but wanted to make sure it was right.

I have used this guide to successfully create a SSDT-UIAC.aml for my machine but i have a NZXT IU01 set internally on my machine and i would like to be able to utilise the usb ports on this for say a bluetooth adapter but it shows up strange in IOREG as shown in image.

Please help :-)

The DataTraveler is a usb 2.0 drive that was put into one port, pulled and put in the other.

attachicon.gifScreen Shot 2017-04-19 at 10.17.04 pm.png

Ask Rehabman: Rehabman's in-depth SSDT for USBInjectAll.kext guide

Link to comment
Share on other sites

 Share

×
×
  • Create New...