Contribute
Register

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

Status
Not open for further replies.
Please upload ioregistryexplorer file from your Setup.
Nvidia is in Slot 1 and Slot 3 is the AMD ?

Nvidia will be in slot 3, AMD in Slot 1.

The reason why I am writing "will" is that I did a clean install without the Nvidia. Am I guessing right, you need me to install the Nvidia incl. web drivers to proceed?

Thanks a ton for looking into this!
 

Attachments

  • yvess iMac Pro.ioreg
    23 MB · Views: 132
Awesome thanks...

will test first thing tomorrow morning (getting late here)

Edit: I was too curious and did it anyway...

No improvement over what I had, most USB slots don't work. I had almost all the BIOS settings set the same as you (thanks again for having done that, must have taken you a while, BTW, what tool dis you use for doing those great screen capture?)

I see that you got audio going, something I had never bothered with.

The SSDT you're using isnt applicable for your box, the ASMedia USB controller aren't located at the same addresses. Tomorrow, I'll post the SSDT I wrote, it will work on your box too and should bring you USB as well as pretty PCI list. And thunderbolt is properly configured stop (so devices appear as thunderbolt rather than port0)

How could you tell the USB assignment was wrong? I'd been using ioregistry/system report to sort of verify my tinkering, curious to find out what/where I messed up. All the USB ports do appear to be working in fairness, thats my excuse anyway!

:oops:


I've attached a couple of pics to show you what I'm seeing and yes please any help is good, your SSDT would be much appreciated.

Oh and as for the screenshots, F12 on ASRock MBs takes a screen grab of your current BIOS screen and dumps it onto a usb drive if it finds one attached.
 

Attachments

  • Screen Shot 2018-03-19 at 22.41.12.png
    Screen Shot 2018-03-19 at 22.41.12.png
    223.9 KB · Views: 171
  • Screen Shot 2018-03-19 at 22.34.52.png
    Screen Shot 2018-03-19 at 22.34.52.png
    213 KB · Views: 160
Guys I have a doubt,

basically System Report and IORegistry say the AMD RX580 is on PCI Slot-6
see attachments.
BUT The card is physically on PCI Slot-1
Why did that happen?
Thanks for your help.


I had the same issue with my RX 560.

In clover DSDT, I made sure that SL05 -> GFX0 was enabled

And in my SSDT, I made sure to match my device ID's and names for GFX0 and HDAU


Code:
DefinitionBlock ("", "SSDT", 1, "NICO", "X299", 0x00000000)
{

External (_SB_.PC02.BR2A, DeviceObj)    // (from opcode)
External (_SB_.PC02.BR2A.GFX0, DeviceObj)    // (from opcode)
External (GFX0, DeviceObj)    // (from opcode)




Scope (_SB.PC02.BR2A)
    {
        Scope (GFX0)
        {
            OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
            Field (PCIS, AnyAcc, NoLock, Preserve)
            {
                PVID,   16,
                PDID,   16
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x69, 0x04))
            }

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

                        "device-id",
                        Buffer (0x04)
                        {
                             0xFF, 0x67, 0x00, 0x00                      
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-2"
                        },

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

                        "@0,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                      
                        },

                        "@1,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                      
                        },

                        "@2,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                      
                        },

                        "@3,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                      
                        },

                        "@4,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                      
                        },

                        "@5,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                      
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

        Device (HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x0C)
                    {
                        "built-in",
                        Buffer (One)
                        {
                             0x00                                        
                        },

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

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

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

                        "name",
                        Buffer (0x1D)
                        {
                            "AMD High Definition Audio   "
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-2"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }
 
I had the same issue with my RX 560.

In clover DSDT, I made sure that SL05 -> GFX0 was enabled

And in my SSDT, I made sure to match my device ID's and names for GFX0 and HDAU


Code:
DefinitionBlock ("", "SSDT", 1, "NICO", "X299", 0x00000000)
{

External (_SB_.PC02.BR2A, DeviceObj)    // (from opcode)
External (_SB_.PC02.BR2A.GFX0, DeviceObj)    // (from opcode)
External (GFX0, DeviceObj)    // (from opcode)




Scope (_SB.PC02.BR2A)
    {
        Scope (GFX0)
        {
            OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
            Field (PCIS, AnyAcc, NoLock, Preserve)
            {
                PVID,   16,
                PDID,   16
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x69, 0x04))
            }

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

                        "device-id",
                        Buffer (0x04)
                        {
                             0xFF, 0x67, 0x00, 0x00                     
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-2"
                        },

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

                        "@0,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@1,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@2,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@3,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@4,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@5,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

        Device (HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x0C)
                    {
                        "built-in",
                        Buffer (One)
                        {
                             0x00                                       
                        },

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

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

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

                        "name",
                        Buffer (0x1D)
                        {
                            "AMD High Definition Audio   "
                        },

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

Uhhhh thanks a lot, that's a real gift!!
This is the blueprint for the RX580 SSDT!!!
Muy obrigado

:thumbup::wave:
 
Thanks to all the developers/contributors. I have an iMac Pro!

My almost finished build:
Asus x299 Prime Deluxe
I9-7890XE
4X8 GB Tridentz 3200
MSI Geforce GTX 1080 Ti Gaming Trio
TP Link AC1900 Wifi pcie
750 Watt EVGA power supply
(Thermaltake Floe AIO Riing RGB 360 TT Premium Edition Liquid Cooling System will be here this week)
Thermaltake P90 Open Air Case

CE2B40D7-C94D-4E2A-8796-93BB1EE01E5E.jpeg
 
Last edited:
I'm 99% of the way there thanks to @kgp and everyone else's terrific efforts. One last part: Due to planned use of slot 4 for another video card, I have to use slot 3 for the ThunderboltEX3 card. Despite making all the necessary (I thought) changes in Clover and in the SSDT, I still don't have a working Thunderbolt—I did test it in Windows and everything that's supposed to be there shows up.

My Clover edit is:

SL0C -> UPSB (I have confirmed this worked in IoRegistryExplorer; what once said SL0C@0 now says UPSB@0. The subsequent entries down to AppleThunderboltHAL etc are all there too.)

In the SSDT, I have changed all the _SB_.PC01.BR1A related entries to PC03.BR3D as reflected in IoRegistryExplorer. Is there something more complex I need to be doing here?
 
[QUOTE="Rulebreaker01, post: 1712408]I doubt desktop motherboard have an OFF method, even recent laptops don't have an option to disable the discrete GPU (my Dell xps 15 as example)
This tutorial was intended for laptops, where the BIOS typically provide a way to disable the discrete GPU.[/QUOTE]

Of course you can disable the discrete GPU. I use the new Dell Inspiron 7773 with MacOS High Sierra aswell and the Nvidia is disabled via reg method! This way it’s deactivated all the time and will not even get power. Yes there is no OFF Method this is true but you still can deactivate the gpu. If interested upload your origin folder for your XPS and I will take a look on it.
 
Last edited:
Nvidia will be in slot 3, AMD in Slot 1.

The reason why I am writing "will" is that I did a clean install without the Nvidia. Am I guessing right, you need me to install the Nvidia incl. web drivers to proceed?

Thanks a ton for looking into this!
Yes I need it with your Nvidia in place...
Also I need your Originin Folder so in the Clover Bootloader press F4
Afterwards mount your EFI and upload the hole folder.
 
I guess your current assumptions are totally wrong my friend.

With your ASUS Prime X299 Deluxe and Nvidia GPU in Slot 1, the HDEF, GFX0 and HDAU PCI implementation should run OoB, without any modifications.

Note however that if one subsequent PCI device implementation fails, also all other PCI device implementations fail (also the working ones).

I therefore always recommend to start with a minimal SSDT configuration, which would be HDEF, GFX0 and HDAU in your case.

If that works, continue adding devices and verify after each PCI device implementations, if all PCI devices are still properly listed under "PCI" of Apple's system report.

Your HDEF, GFX0 and HDAU implementation fails, because another PCI device implementation collapses the entire PCI device implementation...

Good luck,

KGP
Will do when I am back. I am out if town for a couple of weeks.
 
Status
Not open for further replies.
Back
Top