Contribute
Register

How to build your own iMac Pro [Successful Build/Extended Guide]

Status
Not open for further replies.

kgp

Retired
Joined
May 30, 2014
Messages
6,765
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Mobile Phone
  1. iOS
The Vega 64 load table. But using VegaTab_64.kext. The new SSDT-X299-iMacPro-Vega.aml changes slop 1 to 6
Bios version 1503


View attachment 348991

Your Vega suddenly shows up in Slot-6 under PCI, because apparently the entire SSDT, or at least the GPU and HDAU part fails to load during boot! Please fix!

My guess: As I explicitly state in my guide, method DTPG has been outsourced from the new Nvidia and Vega system SSDTs. To properly run the new SSDT-X299-ImacPro-Vega.aml, you also need SSDT-DTPG.aml in /EFI/Clover/ACPI/patched/, as explicitly detailed in my guide.

EDIT: I just removed again method PWR from the XHCI PCI device implementation, as apparently it prevents the successful implementation of the system SSDTs during boot. SSDT-X299-iMacPro-Vega.aml and SSDT-X299-iMacPro-Nvidia.aml once more reloaded in post 1 of this thread!
 

Attachments

  • SSDT-X299-iMacPro-Vega.aml.zip
    3.4 KB · Views: 87
  • SSDT-X299-iMacPro-Nvidia.aml.zip
    2.6 KB · Views: 92
Last edited:
Joined
Apr 16, 2012
Messages
235
Motherboard
Asus X299 Prime Deluxe
CPU
i9-7960x
Graphics
Vega 56
@kgp Does this look better? or do you think I should also remove "PP_DisablePowerContainment" and/or "PP_FuzzyFanControl"?

Code:
    Scope (_SB.PC02.BR2A)
    {
        Scope (SL05)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Scope (PEGP)
        {
            Device (EGP0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (AF00 ())
                        }

                        If (LEqual (Arg0, One))
                        {
                            Return (AF01 ())
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Return (AF02 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            Store (Zero, SSZE)
                            Store (Zero, VERN)
                            Store (Zero, NMSK)
                            Store (Zero, SFUN)
                            Return (ATIB)
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (0x0C, SSZE)
                        Store (One, VERN)
                        Store (0x0C, NMSK)
                        Store (0x03, SFUN)
                        Return (ATIB)
                    }

                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0x03, VMSK)
                        Store (One, FLGS)
                        Return (ATIB)
                    }

                    Method (AF02, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, PSBI)
                        CreateByteField (ATIB, 0x09, FPWR)
                        CreateByteField (ATIB, 0x0A, FPID)
                        Store (0x0D, SSZE)
                        Store (0x08, PSBI)
                        Store (Zero, FPWR)
                        Store (EGPS, FPID)
                        Return (ATIB)
                    }

                    Method (ABCM, 1, NotSerialized)
                    {
                        Store (Arg0, BRTL)
                        \_SB.PNLF.BSET (Arg0)
                        Return (Zero)
                    }

                    Method (ABCL, 0, NotSerialized)
                    {
                        Return (Package (0x52)
                        {
                            0x50,
                            0x32,
                            One,
                            0x02,
                            0x03,
                            0x04,
                            0x05,
                            0x06,
                            0x07,
                            0x08,
                            0x09,
                            0x0A,
                            0x0B,
                            0x0C,
                            0x0D,
                            0x0E,
                            0x0F,
                            0x10,
                            0x11,
                            0x12,
                            0x13,
                            0x14,
                            0x15,
                            0x16,
                            0x17,
                            0x18,
                            0x19,
                            0x1A,
                            0x1B,
                            0x1C,
                            0x1D,
                            0x1E,
                            0x1F,
                            0x20,
                            0x21,
                            0x22,
                            0x23,
                            0x24,
                            0x25,
                            0x26,
                            0x27,
                            0x28,
                            0x29,
                            0x2A,
                            0x2B,
                            0x2C,
                            0x2D,
                            0x2E,
                            0x2F,
                            0x30,
                            0x31,
                            0x32,
                            0x33,
                            0x34,
                            0x35,
                            0x36,
                            0x37,
                            0x38,
                            0x39,
                            0x3A,
                            0x3B,
                            0x3C,
                            0x3D,
                            0x3E,
                            0x3F,
                            0x40,
                            0x41,
                            0x42,
                            0x43,
                            0x44,
                            0x45,
                            0x46,
                            0x47,
                            0x48,
                            0x49,
                            0x4A,
                            0x4B,
                            0x4C,
                            0x4D,
                            0x4E,
                            0x4F,
                            0x50
                        })
                    }

                    Device (LCD)
                    {
                        Method (_ADR, 0, Serialized)  // _ADR: Address
                        {
                            Return (0x0110)
                        }

                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            Return (ABCL ())
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            ABCM (Arg0)
                        }

                        Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                        {
                            Return (BRTL)
                        }
                    }

                    Method (_DOD, 0, Serialized)  // _DOD: Display Output Devices
                    {
                        Return (Package (0x01)
                        {
                            0x0110
                        })
                    }

                    Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                    {
                        Return (Package (0x02)
                        {
                            0x69,
                            0x03
                        })
                    }

                    OperationRegion (PEGH, PCI_Config, Zero, 0x40)
                    Field (PEGH, ByteAcc, NoLock, Preserve)
                    {
                        VID0,   16,
                        DID0,   16,
                        GCMD,   8,
                        Offset (0x24),
                        BAR4,   32
                    }

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x0E)
                            {
                                "built-in",
                                Buffer (One)
                                {
                                     0x00                                         
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "model",
                                Buffer (0x16)
                                {
                                    "Radeon RX 560"
                                },

                                "PP_DisablePowerContainment",
                                Buffer (One)
                                {
                                     0x01                                         
                                },

                                "PP_FuzzyFanControl",
                                Buffer (One)
                                {
                                     0x00                                         
                                },

                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

                    Return (0x80000002)
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    OperationRegion (HDAH, PCI_Config, Zero, 0x40)
                    Field (HDAH, ByteAcc, NoLock, Preserve)
                    {
                        VID0,   16,
                        DID0,   16
                    }

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x16)
                            {
                                "built-in",
                                Buffer (One)
                                {
                                     0x00                                         
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "layout-id",
                                Buffer (0x04)
                                {
                                     0x07, 0x00, 0x00, 0x00                       
                                },

                                "name",
                                Buffer (0x1F)
                                {
                                    "Radeon RX 560 HD-Audio"
                                },

                                "model",
                                Buffer (0x1F)
                                {
                                    "Radeon RX 560 HD-Audio"
                                },

                                "device_type",
                                Buffer (0x16)
                                {
                                    "Multimedia Controller"
                                },

                                "device-id",
                                Buffer (0x04)
                                {
                                     0xE0, 0xAA, 0x00, 0x00                       
                                },

                                "subsystem-id",
                                Buffer (0x04)
                                {
                                     0xE0, 0xAA, 0x00, 0x00                       
                                },

                                "subsystem-vendor-id",
                                Buffer (0x04)
                                {
                                     0x58, 0x14, 0x00, 0x00                       
                                },

                                "compatible",
                                Buffer (0x0D)
                                {
                                    "pci1002,aaf8"
                                },

                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

                    Return (0x80000002)
                }
            }
        }
    }
 

kgp

Retired
Joined
May 30, 2014
Messages
6,765
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Mobile Phone
  1. iOS
@kgp Does this look better? or do you think I should also remove "PP_DisablePowerContainment" and/or "PP_FuzzyFanControl"?

Code:
    Scope (_SB.PC02.BR2A)
    {
        Scope (SL05)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Scope (PEGP)
        {
            Device (EGP0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (AF00 ())
                        }

                        If (LEqual (Arg0, One))
                        {
                            Return (AF01 ())
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Return (AF02 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            Store (Zero, SSZE)
                            Store (Zero, VERN)
                            Store (Zero, NMSK)
                            Store (Zero, SFUN)
                            Return (ATIB)
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (0x0C, SSZE)
                        Store (One, VERN)
                        Store (0x0C, NMSK)
                        Store (0x03, SFUN)
                        Return (ATIB)
                    }

                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0x03, VMSK)
                        Store (One, FLGS)
                        Return (ATIB)
                    }

                    Method (AF02, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, PSBI)
                        CreateByteField (ATIB, 0x09, FPWR)
                        CreateByteField (ATIB, 0x0A, FPID)
                        Store (0x0D, SSZE)
                        Store (0x08, PSBI)
                        Store (Zero, FPWR)
                        Store (EGPS, FPID)
                        Return (ATIB)
                    }

                    Method (ABCM, 1, NotSerialized)
                    {
                        Store (Arg0, BRTL)
                        \_SB.PNLF.BSET (Arg0)
                        Return (Zero)
                    }

                    Method (ABCL, 0, NotSerialized)
                    {
                        Return (Package (0x52)
                        {
                            0x50,
                            0x32,
                            One,
                            0x02,
                            0x03,
                            0x04,
                            0x05,
                            0x06,
                            0x07,
                            0x08,
                            0x09,
                            0x0A,
                            0x0B,
                            0x0C,
                            0x0D,
                            0x0E,
                            0x0F,
                            0x10,
                            0x11,
                            0x12,
                            0x13,
                            0x14,
                            0x15,
                            0x16,
                            0x17,
                            0x18,
                            0x19,
                            0x1A,
                            0x1B,
                            0x1C,
                            0x1D,
                            0x1E,
                            0x1F,
                            0x20,
                            0x21,
                            0x22,
                            0x23,
                            0x24,
                            0x25,
                            0x26,
                            0x27,
                            0x28,
                            0x29,
                            0x2A,
                            0x2B,
                            0x2C,
                            0x2D,
                            0x2E,
                            0x2F,
                            0x30,
                            0x31,
                            0x32,
                            0x33,
                            0x34,
                            0x35,
                            0x36,
                            0x37,
                            0x38,
                            0x39,
                            0x3A,
                            0x3B,
                            0x3C,
                            0x3D,
                            0x3E,
                            0x3F,
                            0x40,
                            0x41,
                            0x42,
                            0x43,
                            0x44,
                            0x45,
                            0x46,
                            0x47,
                            0x48,
                            0x49,
                            0x4A,
                            0x4B,
                            0x4C,
                            0x4D,
                            0x4E,
                            0x4F,
                            0x50
                        })
                    }

                    Device (LCD)
                    {
                        Method (_ADR, 0, Serialized)  // _ADR: Address
                        {
                            Return (0x0110)
                        }

                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            Return (ABCL ())
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            ABCM (Arg0)
                        }

                        Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                        {
                            Return (BRTL)
                        }
                    }

                    Method (_DOD, 0, Serialized)  // _DOD: Display Output Devices
                    {
                        Return (Package (0x01)
                        {
                            0x0110
                        })
                    }

                    Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                    {
                        Return (Package (0x02)
                        {
                            0x69,
                            0x03
                        })
                    }

                    OperationRegion (PEGH, PCI_Config, Zero, 0x40)
                    Field (PEGH, ByteAcc, NoLock, Preserve)
                    {
                        VID0,   16,
                        DID0,   16,
                        GCMD,   8,
                        Offset (0x24),
                        BAR4,   32
                    }

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x0E)
                            {
                                "built-in",
                                Buffer (One)
                                {
                                     0x00                                        
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "model",
                                Buffer (0x16)
                                {
                                    "Radeon RX 560"
                                },

                                "PP_DisablePowerContainment",
                                Buffer (One)
                                {
                                     0x01                                        
                                },

                                "PP_FuzzyFanControl",
                                Buffer (One)
                                {
                                     0x00                                        
                                },

                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

                    Return (0x80000002)
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    OperationRegion (HDAH, PCI_Config, Zero, 0x40)
                    Field (HDAH, ByteAcc, NoLock, Preserve)
                    {
                        VID0,   16,
                        DID0,   16
                    }

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x16)
                            {
                                "built-in",
                                Buffer (One)
                                {
                                     0x00                                        
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "layout-id",
                                Buffer (0x04)
                                {
                                     0x07, 0x00, 0x00, 0x00                      
                                },

                                "name",
                                Buffer (0x1F)
                                {
                                    "Radeon RX 560 HD-Audio"
                                },

                                "model",
                                Buffer (0x1F)
                                {
                                    "Radeon RX 560 HD-Audio"
                                },

                                "device_type",
                                Buffer (0x16)
                                {
                                    "Multimedia Controller"
                                },

                                "device-id",
                                Buffer (0x04)
                                {
                                     0xE0, 0xAA, 0x00, 0x00                      
                                },

                                "subsystem-id",
                                Buffer (0x04)
                                {
                                     0xE0, 0xAA, 0x00, 0x00                      
                                },

                                "subsystem-vendor-id",
                                Buffer (0x04)
                                {
                                     0x58, 0x14, 0x00, 0x00                      
                                },

                                "compatible",
                                Buffer (0x0D)
                                {
                                    "pci1002,aaf8"
                                },

                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

                    Return (0x80000002)
                }
            }
        }
    }

When removing the load table, you can also remove "PP_DisablePowerContainment" and "PP_FuzzyFanControl". In this case your RX 560 will just run in stock configuration.

Also verify with IOREG, that "device-id", "subsystem-id", "subsystem-vendor-id" and "compatible" entries are adopted properly.
 
Joined
Aug 21, 2018
Messages
11
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1080 Ti
Mac
  1. iMac
  2. MacBook Air
  3. MacBook Pro
Mobile Phone
  1. iOS
Following up on my posts #10015 and #10133, I am delighted to report that I have succeeded in building my 7940X based system following @kgp's guide. Thanks a lot for providing these instructions! Had I not stumbled upon this thread, I would probably have gone for one of the lesser peasant systems in the Buyer's Guide instead of going the Skylake route… :mrgreen:

There was some initial concern about the Nvidia GTX1080 Ti. I'm happy to say that it worked OOB without any roadblocks. So far, I've tested it with CAD applications, Lightroom, and Davinci Resolve. No apparent problems in any of those apps yet.

All essential features work: onboard devices, audio, brightness controls, even sleep/wake… I'm still waiting for the Broadcom Wifi/BT card, so I've hooked up my Apple wireless keyboard/mouse via a generic BT4 USB dongle, which works just fine. Idle temperature of the 7940X with the H150i water cooler is around 34°C.

Screen Shot 2018-09-02 at 15.12.03.png

Three minor comments regarding kgp's guide:
  1. In E.2.c), I was unable to set the processor type to Unknown via the Clover Configurator GUI, as the corresponding field only accepts hex values. I did this in the configurator's "Text Mode" then.
  2. I installed the more recent NVidia Web Drivers 387.10.10.10.40.108 instead of …105. Version 108 works fine for me, even though some people reported crashes in other threads.
  3. I built and installed the most recent versions of Clover, AppleALC, Lilu, Whatevergreen and TSCAdjustReset instead of using those provided by kgp. However, according to #10169 these will be updated soon.
Some parts of my system are still a bit rough around the edges, and here's where I have some questions:
  1. Cinebench R15 reports 2922cb and 127fps for my non-overclocked system (UPDATE: performance with "Sync All Cores" as per kgp's settings is 3294cb and 145fps). How does this compare to other 7940X and/or GTX1080Ti builds? While CPU performance seems more or less reasonable to me (especially since I've got only 32GB of budget 2666MHz CL15 RAM), I'm a bit concerned about the GPU as other reports from GTX1080 users all seem to be way higher in the 150fps range.
  2. Geekbench 4 reports 5475 (single core), 49826 (multi core) and 222925 (OpenCL).
  3. I experienced one spurious kernel panic ("timed-out waiting for NMI-ACK") while recording audio with a USB headset. There are several reports of this specific KP which seem to point to some RAM timing issue, but at this point I simply have too little mileage on my system to dig into this further. I do have XMP enabled currently, and have set RAM speed to 2666MHz as listed on the packaging (despite the BIOS originally reporting it as 2133MHz… strange).
  4. Although I followed the instructions to the letter, my PCI definitions don't seem to be right yet. For example, X299 onboard audio works, but is reported like below. Is this supposed to be that way (I had expected it to display as "built-in")?
    Screen Shot 2018-09-02 at 15.11.45.png

  5. I replaced kgp's default 7980 definitions in config.plist with the 7940X snippets, but in IORegistryExplorer the results still look a bit confused – I admit that I haven't studied the purpose of these entries until now, but I thought the point was that everything would be ordered?
    Screen Shot 2018-09-02 at 15.10.46.png
Thanks for your feedback!
 
Last edited:

kgp

Retired
Joined
May 30, 2014
Messages
6,765
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Mobile Phone
  1. iOS
Following up on my posts #10015 and #10133, I am delighted to report that I have succeeded in building my 7940X based system following @kgp's guide. Thanks a lot for providing these instructions! Had I not stumbled upon this thread, I would probably have gone for one of the lesser peasant systems in the Buyer's Guide instead of going the Skylake route… :mrgreen:

There was some initial concern about the Nvidia GTX1080 Ti. I'm happy to say that it worked OOB without any roadblocks. So far, I've tested it with CAD applications, Lightroom, and Davinci Resolve. No apparent problems in any of those apps yet.

All essential features work: onboard devices, audio, brightness controls, even sleep/wake… I'm still waiting for the Broadcom Wifi/BT card, so I've hooked up my Apple wireless keyboard/mouse via a generic BT4 USB dongle, which works just fine. Idle temperature of the 7940X with the H150i water cooler is around 34°C.


Three minor comments regarding kgp's guide:
  1. In E.2.c), I was unable to set the processor type to Unknown via the Clover Configurator GUI, as the corresponding field only accepts hex values. I did this in the configurator's "Text Mode" then.
  2. I installed the more recent NVidia Web Drivers 387.10.10.10.40.108 instead of …105. Version 108 works fine for me, even though some people reported crashes in other threads.
  3. I built and installed the most recent versions of Clover, AppleALC, Lilu, Whatevergreen and TSCAdjustReset instead of using those provided by kgp. However, according to #10169 these will be updated soon.
Some parts of my system are still a bit rough around the edges, and here's where I have some questions:
  1. Cinebench R15 reports 2922cb and 127fps for my non-overclocked system. How does this compare to other 7940X and/or GTX1080Ti builds? While CPU performance seems more or less reasonable to me (especially since I've got only 32GB of budget 2666MHz CL15 RAM), I'm a bit concerned about the GPU as other reports from GTX1080 users all seem to be way higher in the 150fps range. I can't post Geekbench figures at this time since the system doesn't have WiFi yet.
  2. I experienced one spurious kernel panic ("timed-out waiting for NMI-ACK") while recording audio with a USB headset. There are several reports of this specific KP which seem to point to some RAM timing issue, but at this point I simply have too little mileage on my system to dig into this further. I do have XMP enabled currently, and have set RAM speed to 2666MHz as listed on the packaging (despite the BIOS originally reporting it as 2133MHz… strange).
  3. Although I followed the instructions to the letter, my PCI definitions don't seem to be right yet. For example, X299 onboard audio works, but is reported like below. Is this supposed to be that way (I had expected it to display as "built-in")?
    View attachment 349033

  4. I replaced kgp's default 7980 definitions in config.plist with the 7940X snippets, but in IORegistryExplorer the results still look a bit confused – I admit that I haven't studied the purpose of these entries until now, but I thought the point was that everything would be ordered?
    View attachment 349032
Thanks for your feedback!

1.) Please adopt and implement SSDT-X299-iMacPro-Nvidia.aml. Start with a minimal SSDT, e.g. just for HDEF. Once that works, try to add GPU and HDAU.. Once that works add further PCI devices.. Note that the entire SSDT would fail, in case there is some error in one of the individual PCI device implementations. Thus, a stepwise SSDT implementation is deemed necessary.

2.) Are you sure that you implemented the correct config.plist code snippet for renaming and reordering all threads of your i9-7940X? Something goes wrong at this place..

Thanks for the sophistic report and good luck for your future endeavours.. :thumbup:

KGP
 
Last edited:
Joined
Aug 21, 2018
Messages
11
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1080 Ti
Mac
  1. iMac
  2. MacBook Air
  3. MacBook Pro
Mobile Phone
  1. iOS
1.) Please adopt and implement SSDT-X299-iMacPro-Nvidia.aml. Start with a minimal SSDT, e.g. just for HDEF. Once that works, try to add GPU and HDAU.. Once that works add further PCI devices.. Note that the entire SSDT would fail, in case there is some error in one of the individual PCI device implementations. Thus, a stepwise SSDT implementation is deemed necessary.

2.) Are you sure that you implemented the correct config.plist code snippet for renaming and reordering all threads of your i9-7940X? Something goes wrong at this place..

Thanks for the pointers. I did start with SSDT-X299-iMacPro-Nvidia.aml, but I basically adopted it "as-is" since my motherboard, PCI slot location of the NVidia, and X299 onboard devices were supposed to be the same as yours. I guess I'll have to go back and do it thoroughly step by step again in this case.

I did copy the 7940X snippet you linked to in your post. I'll try again though to be sure.
 
  • Like
Reactions: kgp
Joined
Aug 29, 2018
Messages
10
Motherboard
Asus Rog Strix X299 E-Gaming
CPU
i9-7940X
Graphics
GTX 1080
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
Phil, everything in your EFI-Folder seems alright.. BTW.. THE CPU core ACPI replacements you enabled are for the i9-7940X?

Thus, I really don't know what causes the memory allocation errors with your mainboard..

Try to enable "above 4G decoding" in your BIOS... If this does not help try to reflash the BIOS..

Cheers and good luck,

KGP

Hey,
Thx for your help!!
After reflashing my BIOS the Error was gone!
Now, sadly, there´s another problem! I´ll upload the last working actions, before the loading crashes and a strange distorted picture is displayed. Enabling or disabling "above 4G decoding" didn´t solve the problem!

I also tried the custom EFI folder made by @izo1 which lead again to the runtime area error!

Thx,
IMG_2585.JPG
IMG_8881.JPG

Phil
 

kgp

Retired
Joined
May 30, 2014
Messages
6,765
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Mobile Phone
  1. iOS
Hey,
Thx for your help!!
After reflashing my BIOS the Error was gone!
Now, sadly, there´s another problem! I´ll upload the last working actions, before the loading crashes and a strange distorted picture is displayed. Enabling or disabling "above 4G decoding" didn´t solve the problem!

I also tried the custom EFI folder made by @izo1 which lead again to the runtime area error!

Thx,View attachment 349045View attachment 349046
Phil

Still using TSCAdjustReset.kext? The problem now is not related with memory allocation errors and also not with "above 4G decoding"! Are you using any XHC USB kext?

Else you should revise your BIOS settings..
 
Last edited:
Joined
Mar 5, 2011
Messages
222
Motherboard
ASUS Prime X299 Deluxe
CPU
i9 7980XE
Graphics
Radeon VII
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. iOS
Your Vega suddenly shows up in Slot-6 under PCI, because apparently the entire SSDT, or at least the GPU and HDAU part fails to load during boot! Please fix!

My guess: As I explicitly state in my guide, method DTPG has been outsourced from the new Nvidia and Vega system SSDTs. To properly run the new SSDT-X299-ImacPro-Vega.aml, you also need SSDT-DTPG.aml in /EFI/Clover/ACPI/patched/, as explicitly detailed in my guide.

EDIT: I just removed again method PWR from the XHCI PCI device implementation, as apparently it prevents the successful implementation of the system SSDTs during boot. SSDT-X299-iMacPro-Vega.aml and SSDT-X299-iMacPro-Nvidia.aml once more reloaded in post 1 of this thread!

The new SSDT-X299-ImacPro-Vega.aml works fine again, Vega is now in slot 1. I make a modification to remove the 10GIGA network card and to place the Broadcom BCM94360CD WIFI in slot 6, if it is not done, this causes KP if it is installed in slot 6.

Captura de pantalla 2018-09-02 a la(s) 9.45.08 a. m..png
 
Last edited:
  • Like
Reactions: kgp
Joined
Aug 29, 2018
Messages
10
Motherboard
Asus Rog Strix X299 E-Gaming
CPU
i9-7940X
Graphics
GTX 1080
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
Still using THCAdjustReset.kext? The problem now is not related with memory allocation errors and also not with "above 4G decoding"! Are you using any XHC USB kext?

Else you should revise your BIOS settings..

Hey I´m not using a THCAdjustReset.kext and no XHC USB Kext! The only Kexts in my EFI are "AGPMEnabler.kext", "FakeSMC.kext", "IntelMausiEthernet.kext" and TSCAdjustReset.kext".
Am I missing something there?

I adopted the BIOS settings you recommended for the ASUS mobo!:)
 
Status
Not open for further replies.
Top