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

Hello! I need some help! I'm working on an Asus x99 PRO USB3.1 / i7 6800k. Everything works fine, but the GPU. It's a PNY Nvidia Quadro M6000. The performance is extremely poor and it crash with some apps like Final Cut Pro X. I tried two other cards and found no issues (GTX 1050 and RX 580). The Quadro M6000 is enabled by the Nvidia Webdrivers. 

Some ideas? Thanks!

Link to comment
Share on other sites

  • 3 weeks later...
On 12/19/2018 at 5:33 AM, Scath said:

I have a Gigabyte x99 Ulta Gaming with gtx 1060 6gb gfx and 6800k i7. What am I to do? Nothing boots no matter what boot args I use or files i've tried

 

Hi Scath..!  Try This EFI, for High Sierra, replace completly your files!  

 

https://www.dropbox.com/s/zzl3c58dsix1zxv/EFI USB INSTALL HIGH SIERRA X99.zip?dl=0

 

This Files for MOJAVE! 

 

https://www.dropbox.com/s/nzcao089d989uty/EFI USB Install Mojave december 2018.zip?dl=0

Edited by sygey
Link to comment
Share on other sites

  • 10 months later...
On 8/12/2016 at 6:04 PM, nmano said:

IMEI patch for x99

This patch rename device name and device ID.

HECI to IMEI

AppleIntelFramebufferCapri now Loaded.

IMEI patch for x99.txt.zip

post-413859-0-51084800-1471010649_thumb.png

Hi nmano.

 

I am using an ASUS Rampage V Extreme x99 motherboard. I did everything from DSDT patching in clover, applying the patch to my DSDT.aml and also using the HECI ssdt but I still can't get macOS to load the IMEI driver. I am on 10.13.6. Any idea? I have attached my IOReg and my system report. 

Hans’s Mac Pro.zip

Mac Pro.zip

Link to comment
Share on other sites

  • 2 years later...
On 1/19/2017 at 6:08 AM, mfc88 said:

:frantics: Compile result before fixes:
http://i.imgur.com/qziRVKd.png
 
****************
* ... ERRORS ...   *
**************
 
:excl: These errors are decompiler errors (syntax related):

 

error 6086 - Not a control method, cannot invoke (PRID is a BufferField)
error 6058 - Invalid type (Target is [Package], Source must be a package also)

Problem:

 

                If (LEqual (CSTA (Arg0, Arg1), 0x00))
                {
                    Store (0x00, FLAG)
                    Store (0xFF, PRID (Store (0xFF, APID)))
                }
                Else
                {
                    Store (APID, Local0)
                    Store (Local0, PRID (Store (0x01, FLAG)))
                }

Fix:

 

                If (LEqual (CSTA (Arg0, Arg1), 0x00))
                {
                    Store (0x00, FLAG)
                    Store (0xFF, PRID)
                    Store (0xFF, APID)
                }
                Else
                {
                    Store (APID, Local0)
                    Store (Local0, PRID)
                    Store (0x01, FLAG)
                }

---
 
:excl: These errors have to do with the undefined max range addresses in P1RS, P2RS, and P3RS (and P0RS):

error - Address Min is greater than Address Max
warning - Min/Max/Length/Gran are all zero, no resource tag

Fixes:
Find P1RS and fix the min/max/length addresses as noted below, then repeat for P2RS, and then repeat P3RS (*NOTE, the addresses for P1RS/P2RS/P3RS in Dword, WordIO, etc may be different from each other, so you won't have to change the first three digits, but just the last (see below for an example). Also some may even already have a min of xx59, but just follow the same pattern: min: xx58, max: xx59 and length: 0002 or 000001.
 
For example P1RS (do not touch anything aside from the categories below!):
Under DWordMemory:

 

0x00000001,         // Length

Under WordIO (1 of 3):

 

0x4158,             // Range Minimum
0x4159,             // Range Maximum

0x0002,             // Length

Under WordIO (2 of 3):

 

 0x5758,             // Range Minimum
 0x5759,             // Range Maximum

 0x0002,             // Length

Under WordIO (3 of 3):

 

0x5858,             // Range Minimum
0x5859,             // Range Maximum

0x0002,             // Length

Under DwordMemory:

 

 0x00000001,         // Length

Under QwordMemory:

 

0x0000000000000001, // Length

---
 
And lastly find P0RS (again, do not touch anything else aside from the category below):
Under QWordMemory

 0x0000000000000001, // Length

 
****************
* ... Warnings ... *
 **************

:excl: This warning is basically stating that a method/function has an IF statement, that when false, won't return anything:

Not all control paths return a value (_OSC/O1EX/TINI/TWAK...etc)
Reserved Method must return a value (Buffer required for _OSC)

Sample Problem:

      Method (_TINI, 0, NotSerialized)
      {            
          If (LEqual (Arg0, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
          {
              (bunch of code here that'll get executed if the above IF statement returns true)
          }
      }

Fix ( adding a Return (Zero) before the method closes ):

 

      Method (TINI, 4, Serialized)
      {            
          If (LEqual (Arg0, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
          {
              (bunch of code here that'll get executed if the above IF statement returns true)
          }
          Return (Zero)
      }

----
 
:excl: This warning has to deal with incorrect/unused method names:

Invalid object type for reserved name (_OSC: found Integer, Buffer Required)

Problem:

 

   Method (_OSC, 4, Serialized)  // _OSC: Operating System Capabilities
   {

Fix ( remove underscore "_" or rename "XOSC" ):

 

   Method (XOSC, 4, Serialized)  // _OSC: Operating System Capabilities
   {

----
 
:excl: This warning has to deal with a decompiler mistake:

Duplicate Value in List (Source is the same as Target)

Problem:

 

                Method (OSHP, 0, NotSerialized)
                {
                    Store (SSTS, SSTS)
                    Store (0x00, HGPE)
                }

Fix ( add quotes to first "SSTS" ):

 

 

 

                Method (OSHP, 0, NotSerialized)
                {
                    Store ("SSTS", SSTS)
                    Store (0x00, HGPE)
                }

----
 
:excl: This warning has to deal with an unused operator:

Result is not used, possible operator timeout will be missed

Problem:

 

Acquire (MUTE, 0x03E8)

Fix ( replace address with 0xFFFF 😞

 

 

 

Acquire (MUTE, 0xFFFF)

----
:excl: This warning has to deal with a mismatch ResourceTag length:

ResourceTag smaller than Field (Size mismatch, Tag: X, Field: X bits) 

Sample Problem ( example below is Tag: 1 bit, Field: 8 bits :

CreateByteField (CRS3, \_SB.PCI0.LPC0.SIO1._Y0D._HE, IRQS)  // _HE_: High-Edge

Fix ( depending on the size Tag mismatch: 1 bit = CreateBitField, 8 bits = CreateByteField, 16 bits = CreateWordField, 32 bits = CreateDwordField, 64 bits = CreateQwordField )  :

 

 

 

CreateBitField (CRS3, \_SB.PCI0.LPC0.SIO1._Y0D._HE, IRQS)  // _HE_: High-Edge

----
 
:excl: This warning has to deal with the switch variable not being defaulted to an Integer:

Switch expression is not a static Integer/Buffer/String data type, default to integer

Problem:

 

            Method (WMBC, 3, Serialized)
            {
                Store (0x01, Local0)
                Switch (Arg1)
                {
                    Case (0x43455053)

Fix (add Switch(ToInteger (XXXX)) ):

 

            Method (WMBC, 3, Serialized)
            {
                Store (0x01, Local0)
                Switch (ToInteger (Arg1))
                {
                    Case (0x43455053)

----
:excl: This warning has to deal with an unset method local variable:

Method Local is set, but never used (Local 0)

Problem:

        Store (0x03, OSVR)
        If (CondRefOf (\_OSI, Local0))
        {
            If (_OSI ("Windows 2001"))

or

                            Store (RGE3, PMFG)
                            Store (RGE3, Local0)
                            And (RGE0, 0x9F, RGE0)

Fix And(Local0, Ones, Local0) ==> Local 0 set to 0x11111111 ):

        Store (0x03, OSVR)
        If (CondRefOf (\_OSI, Local0))
        {
            And(Local0, Ones, Local0)
            If (_OSI ("Windows 2001"))

or

                            Store (RGE3, PMFG)
                            Store (RGE3, Local0)
                            And(Local0, Ones, Local0)
                            And (RGE0, 0x9F, RGE0)

----

 

:guitar: Compile results after fixes:

http://i.imgur.com/fmNGgQE.png

excuse me, what about these warning?

8002, 3141, Missing dependency (Device object requires a _HID or _ADR in same scope)

16890, 3148, Illegal open scope on external object from within DSDT

I tried all my best but cant solve it!

Link to comment
Share on other sites

 Share

×
×
  • Create New...