Contribute
Register

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

Status
Not open for further replies.
With AptioMemoryFix.efi my hardware nvram works. So no emuvariable. Thanks for the find!

For those with Vega did you try this?
https://www.tonymacx86.com/threads/inject-fb-name-for-amd-radeon-rx-vega-64.240252/

I have sleep/wake working but I have an Asrock.

its very similar code to that of @apfelnico that kgp posted on the first page, and should accomplish the same thing.

Code:
Scope (\_SB.PC02.BR2A.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))
        }

        Device (GFXA)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
                Field (PCIB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    BAR0,   32,
                    BAR1,   32,
                    BAR2,   64,
                    BAR4,   32,
                    BAR5,   32
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    If (LEqual (BAR5, Zero))
                    {
                        Store (BAR2, Local0)
                    }
                    Else
                    {
                        Store (BAR5, Local0)
                    }

                    OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFF0), 0x8000)
                    Field (GREG, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x6800),
                        GENA,   32,
                        GCTL,   32,
                        LTBC,   32,
                        Offset (0x6810),
                        PSBL,   32,
                        SSBL,   32,
                        PTCH,   32,
                        PSBH,   32,
                        SSBH,   32,
                        Offset (0x6848),
                        FCTL,   32,
                        Offset (0x6EF8),
                        MUMD,   32
                    }

                    Store (Zero, FCTL)
                    Store (Zero, PSBH)
                    Store (Zero, SSBH)
                    Store (Zero, LTBC)
                    Store (One, GENA)
                    Store (Zero, MUMD)
                }

                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x16)
                        {
                            "AAPL,slot-name",
                            Buffer (0x07)
                            {
                                "Slot-1"
                            },

                            "CFG,CFG_USE_AGDC",
                            Buffer (One)
                            {
                                 0x00 
                            },

                            "PP,PP_DisableAutoWattman",
                            Buffer (One)
                            {
                                 0x00 
                            },

                            "ATY,Part#",
                            Buffer (0x0C)
                            {
                                "113-3E366DU"
                            },

                            "@0,AAPL,boot-display",
                            Buffer (One)
                            {
                                 0x00 
                            },

                            "@0,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@1,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@2,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@3,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "model",
                            Buffer (0x13)
                            {
                                "AMD Radeon Vega 64"
                            },

                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-2"
                            }
                        }, 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 
                            },

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

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

                            "name",
                            Buffer (0x0D)
                            {
                                "AMD HD-Audio"
                            },

                            "model",
                            Buffer (0x0D)
                            {
                                "AMD HD-Audio"
                            },

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

Scope (\_SB.PC01.BR1A.GFX1)
    {
        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))
        }
 
Alright guys I have managed to get CodecCommander working (finally audio after sleep) by using the kext in combination with changing the AudioID from '7' to '1'.

I'm in the process of testing but I just noticed that for some reason when using the latest 'SSDT-X299-iMacPro.aml' some USB ports don't seem to be working. The affected ports seem to be 2 of the USB 2.0 ports on the back I/O, it's almost as if there was a port limit in place.

I have a feeling this must be related to the 'SSDT-X299-iMacPro.aml' as all ports work when using an old X299 SSDT.

Does anyone experience these issues when using this SSDT?
 
Alright guys I have managed to get CodecCommander working (finally audio after sleep) by using the kext in combination with changing the AudioID from '7' to '1'.

I'm in the process of testing but I just noticed that for some reason when using the latest 'SSDT-X299-iMacPro.aml' some USB ports don't seem to be working. The affected ports seem to be 2 of the USB 2.0 ports on the back I/O, it's almost as if there was a port limit in place.

I have a feeling this must be related to the 'SSDT-X299-iMacPro.aml' as all ports work when using an old X299 SSDT.

Does anyone experience these issues when using this SSDT?

yes i posted a few pages back, this is the port that doesnt work, correct?
PRIME-X299-DELUXE-BACK-IO-1.jpg
 
Yes! That little bugger! I also found the USB 2.0 port highest up not to work either, and one of the USB 3.0 ports from the internal USB header closest to the SATA ports.

I wonder if this is an issue with the SSDT as using an older SSDT the ports work fine
 
Yes! That little bugger! I also found the USB 2.0 port highest up not to work either, and one of the USB 3.0 ports from the internal USB header closest to the SATA ports.

I wonder if this is an issue with the SSDT as using an older SSDT the ports work fine

the older ssdt even with the imacpro smbios?
 
Yeah I know that, I was wondering why he thinks this will solve the external usb drive icon problem. But I guess it just won't.

O.k. apparently there is some error in my former XHC Kext for the ASUS Prime X299 Deluxe... Even by implementing my kext, the internal icon error for external XHC USB devices would remain although all XHC USB boards of the ASUS Prime X299 Deluxe would be fully functional. The same states for the native implementation of all XHC boards for all mainboards by OSX! The latter also implements the issue that USB3.0 devices would not work in USB2.0 boards, which in my personal opinion is however totally irrelevant. All that these minor bugs are moreover again clearly discussed within my guide.

@DSM2 fixed that error in his XHC USB kext for the ASUS Prime X299 Deluxe, however we have still to see that his kext is also fully compatible with SMBIOS iMacPro1,1.

In any case, I don't want to fall back to board specific XHC USB Kext implementations, because of a purely cosmetic internal icon issue for external USB devices!

The native XHC USB implementation by OSX is valid FOR ALL X299 mainboards, while a board specific XHC USB Kext implementation is different for each mainboard and is just valid for ONE SINGLE MAINBAORD!

It is again a discussion and topic I honestly dislike. I am sure we are able to find a different solution to fix the f*** internal icon problem for external USB Devices.

However, you are free to do, discuss or implement whatever you feel like.

Cheers,

KGP
 
O.k. apparently there is some error in my former XHC Kext for the ASUS Prime X299 Deluxe... Even by implementing my kext, the internal icon error for external XHC USB devices would remain although all XHC USB boards of the ASUS Prime X299 Deluxe would be fully functional. The same states for the native implementation of all XHC boards for all mainboards by OSX! The latter also implements the issue that USB3.0 devices would not work in USB2.0 boards, which in my personal opinion is however totally irrelevant. All that is moreover again clearly discussed within my guide.

@DSM2 fixed that error in his XHC USB kext for the ASUS Prime X299 Deluxe, however we have still to see that his kext is also fully compatible with SMBIOS iMacPro1,1.

In any case, I don't want to fall back to board specific XHC USB Kext implementations, because of a purely cosmetic internal icon issue for external USB devices!

The native XHC USB implementation by OSX is valid FOR ALL X299 mainboards, while a board specific XHC USB Kext implementation is different for each mainboard and is just valid for ONE SINGLE MAINBAORD!

It is again a discussion and topic I honestly dislike. I am sure we are able to find a different solution to fix the f*** internal icon problem for external USB Devices.

However, you are free to do, discuss or implement whatever you feel like.

Cheers,

KGP

we both have the same board as you and are having the port issues.... as well you are not having any sleep/wake issues and the rest of us are... something must be different about your system.
 
we both have the same board as you and are having the port issues.... as well you are not having any sleep/wake issues and the rest of us are... something must be different about your system.

Any you think it is the XHC USB implementation? I want to stress that I use the native approach without any XHC USB kext! And Sleep/Wake works in my case! ;)

Again I see a profound base for the next likely unavoidable but likely totally irrelevant discussion filling the next 20 pages...
 
Any you think it is the XHC USB implementation? I want to stress that I use the native approach without any XHC USB kext! And Sleep/Wake works in my case! ;)

i understand, but you are the only one that it works for.

well figure it out on our own, no worries. clearly the next 20 pages wont be useless considering that you are the only one to not have issues.....
 
i understand, but you are the only one that it works for.

well figure it out on our own, no worries. clearly the next 20 pages wont be useless considering that you are the only one to not have issues.....

Whatever, use the thread for solving your sleep/wake issues or whatever, which BTW at the present stage is totally irrelevant. There are many more important things to be achieved and implemented yet primarily to this final likely nice add-on functionality at the top of our builds.

Nobody contributes to tests what I asked for... In contrary, instead of helping and actively contributing to the thread and my work, the thread is permanently filled with a bunch of questionable discussions, questions and conclusions about minor bugs or issues (like internal icons for external USB devices, or sleep/wake functionality), which in my personal opinion just hampers the really important progress with our builds and finally also takes all my time...

If you think that this is the correct approach, please go ahead ;)
 
Last edited:
Status
Not open for further replies.
Back
Top