Contribute
Register

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

Status
Not open for further replies.
Joined
Apr 17, 2012
Messages
205
Motherboard
Asus X299 Prime Deluxe
CPU
i9-7960x
Graphics
Vega 56
Can you buy a Vega 64? You spent all this money on a high end HEDT system and want to save money on the GPU...

The RX5x0 cards are better suited for the more consumer grade Coffee Lake CPUs, since they have iGPUs.

We've talked about this a lot, but there is something macOS does under the hood that hooks the RX5x0 cards and iGPU together for non iMac Pro SMBIOS....so you'd be better off either:

1) Getting a Vega 64
2) Switching to iMac SMBIOS (Forgot which the latest was).

I can, but the only reason I am saving on the GPU is that I'm using my machine for music production so graphics are minimally important - or so I think.

But all of this is compelling to think about so I will have to consider it.
 
  • Like
Reactions: kgp
Joined
Feb 24, 2013
Messages
2,669
Motherboard
N/A
CPU
N/A
Graphics
N/A
Mac
  1. MacBook Air
  2. Mac Pro
Mobile Phone
  1. iOS
I can, but the only reason I am saving on the GPU is that I'm using my machine for music production so graphics are minimally important - or so I think.

But all of this is compelling to think about so I will have to consider it.

How about a Vega 56? There seems to be some sales going around if you're in the U.S.

RX560 in general is not on any desktop Mac like the iMac....maybe give RX570/RX580 a try, you might have less issues.
 
Joined
Feb 24, 2013
Messages
2,669
Motherboard
N/A
CPU
N/A
Graphics
N/A
Mac
  1. MacBook Air
  2. Mac Pro
Mobile Phone
  1. iOS
Update on Premiere Pro CC2018 Export Crash:

Based on @NWSnowBum's recommendation on changing AVX offset in BIOS....it didn't help...only to a certain degree.

So now, using H264 exporter with Hardware Acceleration enabled (which uses Vega) I was able to export further down the timeline, but system still froze.

Anyway, this seems 100% related to Adobe + Apple.

Screen Shot 2018-09-01 at 2.25.51 PM.png
 
Joined
Mar 26, 2011
Messages
24
Motherboard
ASUS Prime X299 Deluxe
CPU
i9 7940X
Graphics
GTX 960
Mac
  1. iMac
I would not know what one would miss in case one opts for Skylake-X/X299. I see only advantages..

Why one should want to exactly reproduce all disadvantages of a real iMacPro?

More unlogical questions of this kind at your side? ;)


I assumed that there could be less patch with native components?

Anyway, I think I will follow your guide with a i9, it seems to be the perfect combo power/cost ;)

Thanks!
 

kgp

Retired
Joined
May 30, 2014
Messages
6,783
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
I assumed that there could be less patch with native components?

Anyway, I think I will follow your guide with a i9, it seems to be the perfect combo power/cost ;)

Thanks!

What are the essential necessary patches for Skylake-X, X299, and Vegas? We can discuss this in detail if you feel like..
 
Joined
Apr 17, 2012
Messages
205
Motherboard
Asus X299 Prime Deluxe
CPU
i9-7960x
Graphics
Vega 56
I guess at least you would have to remove the Vega 64 load table, isn't it? And depending on your slot configuration, you properly might have to adopt ACPI path, ACPI replacements or at least all GPU and HDAU PCI properties different from the Vega 64 or Frontier.

Thanks, @kgp - I'm not entirely sure which part is the load table. My card is in Slot 1 of my Asus X299 Prime Deluxe so I don't think I have to alter the ACPI path, or am I wrong?

Can you please point me to which part of the entry is the load tables? My guess is that it's the part under "PP_PhmSoftPowerPlayTable" ?

Thank you again! I'm looking into a Vega 64 but for now, I just want to see if I can smooth this minor detail out.

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 Vega 64 8GB"
                                },

                                "PP_PhmSoftPowerPlayTable",
                                Buffer (One)
                                {
                                    /* 0000 */  0xB6, 0x02, 0x08, 0x01, 0x00, 0x5C, 0x00, 0xE1,
                                    /* 0008 */  0x06, 0x00, 0x00, 0xEE, 0x2B, 0x00, 0x00, 0x1B,
                                    /* 0010 */  0x00, 0x48, 0x00, 0x00, 0x00, 0x80, 0xA9, 0x03,
                                    /* 0018 */  0x00, 0xF0, 0x49, 0x02, 0x00, 0x32, 0x00, 0x08,
                                    /* 0020 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0028 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
                                    /* 0030 */  0x5C, 0x00, 0x4F, 0x02, 0x46, 0x02, 0x94, 0x00,
                                    /* 0038 */  0x9E, 0x01, 0xBE, 0x00, 0x28, 0x01, 0x7A, 0x00,
                                    /* 0040 */  0x8C, 0x00, 0xBC, 0x01, 0x00, 0x00, 0x00, 0x00,
                                    /* 0048 */  0x72, 0x02, 0x00, 0x00, 0x90, 0x00, 0xA8, 0x02,
                                    /* 0050 */  0x6D, 0x01, 0x43, 0x01, 0x97, 0x01, 0xF0, 0x49,
                                    /* 0058 */  0x02, 0x00, 0x71, 0x02, 0x02, 0x02, 0x00, 0x00,
                                    /* 0060 */  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
                                    /* 0068 */  0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
                                    /* 0070 */  0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0078 */  0x00, 0x00, 0x01, 0x08, 0x20, 0x03, 0x84, 0x03,
                                    /* 0080 */  0xB6, 0x03, 0xE8, 0x03, 0x1A, 0x04, 0x4C, 0x04,
                                    /* 0088 */  0x7E, 0x04, 0xB0, 0x04, 0x01, 0x01, 0x46, 0x05,
                                    /* 0090 */  0x01, 0x01, 0x84, 0x03, 0x00, 0x08, 0x60, 0xEA,
                                    /* 0098 */  0x00, 0x00, 0x00, 0x40, 0x19, 0x01, 0x00, 0x01,
                                    /* 00A0 */  0x80, 0x38, 0x01, 0x00, 0x02, 0xDC, 0x4A, 0x01,
                                    /* 00A8 */  0x00, 0x03, 0x90, 0x5F, 0x01, 0x00, 0x04, 0x00,
                                    /* 00B0 */  0x77, 0x01, 0x00, 0x05, 0x90, 0x91, 0x01, 0x00,
                                    /* 00B8 */  0x06, 0x6C, 0xB0, 0x01, 0x00, 0x07, 0x01, 0x08,
                                    /* 00C0 */  0xD0, 0x4C, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00,
                                    /* 00C8 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x83, 0x01,
                                    /* 00D0 */  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 00D8 */  0x00, 0x00, 0x70, 0xA7, 0x01, 0x00, 0x02, 0x00,
                                    /* 00E0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
                                    /* 00E8 */  0xBC, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
                                    /* 00F0 */  0x00, 0x00, 0x00, 0x00, 0x60, 0xE4, 0x01, 0x00,
                                    /* 00F8 */  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0100 */  0x00, 0x44, 0x23, 0x02, 0x00, 0x05, 0x00, 0x00,
                                    /* 0108 */  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x58,
                                    /* 0110 */  0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01,
                                    /* 0118 */  0x00, 0x00, 0x00, 0xB8, 0x7C, 0x02, 0x00, 0x07,
                                    /* 0120 */  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
                                    /* 0128 */  0x00, 0x05, 0x60, 0xEA, 0x00, 0x00, 0x00, 0x40,
                                    /* 0130 */  0x19, 0x01, 0x00, 0x00, 0x80, 0x38, 0x01, 0x00,
                                    /* 0138 */  0x00, 0xDC, 0x4A, 0x01, 0x00, 0x00, 0x90, 0x5F,
                                    /* 0140 */  0x01, 0x00, 0x00, 0x00, 0x08, 0x28, 0x6E, 0x00,
                                    /* 0148 */  0x00, 0x00, 0x2C, 0xC9, 0x00, 0x00, 0x01, 0xF8,
                                    /* 0150 */  0x0B, 0x01, 0x00, 0x02, 0x80, 0x38, 0x01, 0x00,
                                    /* 0158 */  0x03, 0x90, 0x5F, 0x01, 0x00, 0x04, 0xF4, 0x91,
                                    /* 0160 */  0x01, 0x00, 0x05, 0xD0, 0xB0, 0x01, 0x00, 0x06,
                                    /* 0168 */  0xC0, 0xD4, 0x01, 0x00, 0x07, 0x00, 0x08, 0x6C,
                                    /* 0170 */  0x39, 0x00, 0x00, 0x00, 0x24, 0x5E, 0x00, 0x00,
                                    /* 0178 */  0x01, 0xFC, 0x85, 0x00, 0x00, 0x02, 0xAC, 0xBC,
                                    /* 0180 */  0x00, 0x00, 0x03, 0x34, 0xD0, 0x00, 0x00, 0x04,
                                    /* 0188 */  0x68, 0x6E, 0x01, 0x00, 0x05, 0x08, 0x97, 0x01,
                                    /* 0190 */  0x00, 0x06, 0xEC, 0xA3, 0x01, 0x00, 0x07, 0x00,
                                    /* 0198 */  0x01, 0x68, 0x3C, 0x01, 0x00, 0x00, 0x01, 0x04,
                                    /* 01A0 */  0x3C, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
                                    /* 01A8 */  0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x38,
                                    /* 01B0 */  0x01, 0x00, 0x02, 0x00, 0x00, 0x24, 0x71, 0x01,
                                    /* 01B8 */  0x00, 0x04, 0x00, 0x00, 0x01, 0x08, 0x00, 0x98,
                                    /* 01C0 */  0x85, 0x00, 0x00, 0x40, 0xB5, 0x00, 0x00, 0x60,
                                    /* 01C8 */  0xEA, 0x00, 0x00, 0x50, 0xC3, 0x00, 0x00, 0x01,
                                    /* 01D0 */  0x80, 0xBB, 0x00, 0x00, 0x60, 0xEA, 0x00, 0x00,
                                    /* 01D8 */  0x94, 0x0B, 0x01, 0x00, 0x50, 0xC3, 0x00, 0x00,
                                    /* 01E0 */  0x02, 0x00, 0xE1, 0x00, 0x00, 0x94, 0x0B, 0x01,
                                    /* 01E8 */  0x00, 0x40, 0x19, 0x01, 0x00, 0x50, 0xC3, 0x00,
                                    /* 01F0 */  0x00, 0x03, 0x78, 0xFF, 0x00, 0x00, 0x40, 0x19,
                                    /* 01F8 */  0x01, 0x00, 0x88, 0x26, 0x01, 0x00, 0x50, 0xC3,
                                    /* 0200 */  0x00, 0x00, 0x04, 0x40, 0x19, 0x01, 0x00, 0x80,
                                    /* 0208 */  0x38, 0x01, 0x00, 0x80, 0x38, 0x01, 0x00, 0x50,
                                    /* 0210 */  0xC3, 0x00, 0x00, 0x05, 0x80, 0x38, 0x01, 0x00,
                                    /* 0218 */  0xDC, 0x4A, 0x01, 0x00, 0xDC, 0x4A, 0x01, 0x00,
                                    /* 0220 */  0x50, 0xC3, 0x00, 0x00, 0x06, 0x00, 0x77, 0x01,
                                    /* 0228 */  0x00, 0x00, 0x77, 0x01, 0x00, 0x90, 0x5F, 0x01,
                                    /* 0230 */  0x00, 0x50, 0xC3, 0x00, 0x00, 0x07, 0x90, 0x91,
                                    /* 0238 */  0x01, 0x00, 0x90, 0x91, 0x01, 0x00, 0x00, 0x77,
                                    /* 0240 */  0x01, 0x00, 0x50, 0xC3, 0x00, 0x00, 0x01, 0x18,
                                    /* 0248 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B,
                                    /* 0250 */  0x14, 0x13, 0xDC, 0x05, 0x60, 0x09, 0x44, 0x00,
                                    /* 0258 */  0x0A, 0x00, 0x54, 0x03, 0x90, 0x01, 0x90, 0x01,
                                    /* 0260 */  0x90, 0x01, 0x90, 0x01, 0x90, 0x01, 0x90, 0x01,
                                    /* 0268 */  0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
                                    /* 0270 */  0x06, 0x31, 0x07, 0xDC, 0x00, 0xDC, 0x00, 0xDC,
                                    /* 0278 */  0x00, 0x2C, 0x01, 0x00, 0x00, 0x59, 0x00, 0x69,
                                    /* 0280 */  0x00, 0x4A, 0x00, 0x4A, 0x00, 0x5F, 0x00, 0x73,
                                    /* 0288 */  0x00, 0x73, 0x00, 0x64, 0x00, 0x40, 0x00, 0x90,
                                    /* 0290 */  0x92, 0x97, 0x60, 0x96, 0x00, 0x90, 0x55, 0x00,
                                    /* 0298 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 02A0 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 02A8 */  0x02, 0x02, 0xD4, 0x30, 0x00, 0x00, 0x02, 0x10,
                                    /* 02B0 */  0x60, 0xEA, 0x00, 0x00, 0x02, 0x10            
                                },

                                "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)
                                {
                                     0x01, 0x00, 0x00, 0x00                        
                                },

                                "name",
                                Buffer (0x1F)
                                {
                                    "Radeon RX Vega 64 8GB HD-Audio"
                                },

                                "model",
                                Buffer (0x1F)
                                {
                                    "Radeon RX Vega 64 8GB HD-Audio"
                                },

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

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

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

                                "subsystem-vendor-id",
                                Buffer (0x04)
                                {
                                     0x02, 0x10, 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)
                }
            }
        }
    }
 

Attachments

  • Screen Shot 2018-09-01 at 7.18.24 PM.png
    Screen Shot 2018-09-01 at 7.18.24 PM.png
    168.7 KB · Views: 88
Joined
Mar 5, 2011
Messages
195
Motherboard
ASUS Prime X299 Deluxe
CPU
i9 7920X
Graphics
Radeon VII
Mac
  1. MacBook Pro
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


Captura de pantalla 2018-09-01 a la(s) 10.32.19 p. m..png
 

kgp

Retired
Joined
May 30, 2014
Messages
6,783
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
Thanks, @kgp - I'm not entirely sure which part is the load table. My card is in Slot 1 of my Asus X299 Prime Deluxe so I don't think I have to alter the ACPI path, or am I wrong?

Can you please point me to which part of the entry is the load tables? My guess is that it's the part under "PP_PhmSoftPowerPlayTable" ?

Yes, with load table I refer to "PP_PhmSoftPowerPlayTable"..
and yes, with a GPU in Slot-1 of the ASUS Prime X299 Deluxe, you don't have to alter the ACPI path or ACPI replacements..
 

kgp

Retired
Joined
May 30, 2014
Messages
6,783
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: 52
  • SSDT-X299-iMacPro-Nvidia.aml.zip
    2.6 KB · Views: 55
Last edited:
Joined
Apr 17, 2012
Messages
205
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)
                }
            }
        }
    }
 
Status
Not open for further replies.
Top