Contribute
Register

Inject FB Name For AMD Radeon RX Vega 64

Status
Not open for further replies.
I have Sapphire RX 580 Pulse 8GB in 10.13.2 and it shows as AMD R9 xxx 8 GB in System Information. Additionally only 1 of the 2 DP ports works at a time. I cannot get dual monitors to be recognized with DP + DP only DP + HDMI (4k@30). I'm not sure if this is related. Graphics/Displays lists Metal: Supported.

It seems as if the framebuffer configurations are incorrect. According to the ATI guide the reference FB for this card is Daymon but only Orinoco has the correct connector mappings. Injecting Orinoco causes the card to be shown as AMD RX 480 8GB but does not fix the dual displayport issue.
 
@shathenine

how does your code differ from this? and why are you missing method _PRW yet still have sleep/wake working?

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)
                }
            }
        }
    }
 
Last edited:
As we know,AMD Radeon RX Vega can start up without any settings,but it doesn't get the correct FB Name,and the graphics card name in the system information is RX xxx.



With WhateverGreen.kext,the graphics card name in the system information is AMD Radeon Vega 64,but the FB Name still wrong.

With WhateverGreen.kext, I find the graphics card is in PCI0>PEG0>PEGP>pci-bridge>GFX0 ,and the FB Name injected failed.

View attachment 298842

I used AIDA64 to find PEGP, in the PEG0,I find a device name "LTRE",but it can't find in PEG1 and PEG2.

View attachment 298843 View attachment 298844
View attachment 298845

So I tried to inject the FB Name with DSDT. This is my way to Inject FB Name “Kamarang”on the Vega 64 with DSDT。Add a new device“LTRE” to replace the “pci-bridge”.I finally succeeded。

Code:
                Device (PEGP)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Device (LTRE)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Device (GFX0)
                        {
                            Name (_ADR, Zero)  // _ADR: Address
                            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                            {
                                If (LEqual (Arg2, Zero))
                                {
                                    Return (Buffer (One)
                                    {
                                         0x03                                      
                                    })
                                }

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

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

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

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

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

                                    "device_type",
                                    Buffer (0x13)
                                    {
                                        "ATY,KamarangParent"
                                    },

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

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

View attachment 298846

And with my friend's help, I finally succeeded inject FB name for AMD Radeon RX Vega with SSDT.

This is the sample.dsl code,you can get the correct device name from IORegistryExplorer and modify them in SSDT.aml .

Code:
DefinitionBlock ("", "SSDT", 2, "hack", "Wake", 0x00000000)
{
    External (_SB_.PCI0.PEG0.PEGP.LTRE, DeviceObj)    // (from opcode)

    Device (_SB.PCI0.PEG0.PEGP.LTRE)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Device (GFX0)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                                       
                    })
                }

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

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

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

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

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

                    "device_type",
                    Buffer (0x13)
                    {
                        "ATY,KamarangParent"
                    },

                    "model",
                    Buffer (0x13)
                    {
                        "Radeon Pro Vega 56"
                    },

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

        Device (HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                                       
                    })
                }

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

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

View attachment 298847

With Injected FB Name,my Hackintosh can sleep,when the computer wakes up from sleep,it works.
I had tested the FB Name "Kamarang" and "Iriri", they all work properly
If the system starts the black screen,please turn off the DP1.2

These are my DSDT and SSDT:



@shathenine how does FCPX work with your VEGA 64? Can you stabilize a clip? and how does the timeline work with clips which are not rendered?

I am having troubles with my VEGA 64 LQ. when trying to stabilize a clip the whole system crashes. Clip playback is stutering and unless I enable proxy It is almost impossible to work.

Thanks for the help
 
Hello,
I'm really not a specialist of editing a SSDT, I really need help
I become crazy :

I have a P9X79pro as motherboard, and I try to inject shathenine modification in my SSDT, but I fail.
I don't use DSDT on my configuration right now, just the SSDT and the system work very well, but in 10.3.2, my Vega 64 become crazy with the fan so :

I try to edit my SSDT with no success. I use MaciASL and DSDT Editor to edit the SSDT and at the end of the modification, the two editor give no error, but modification on the VEGA 64 not apply : the name stay AMD RX xxx 8 go and the new fan profile don't apply on 10.13.2

I try to find what is not link with AIDA64, but the software don't show me the table but I can extract it.
With IORegistryExplorer, i find that :

Capture d’écran 2018-01-23 à 09.36.02.png

I have two pci bridge, in think is that, the link is not effective.
I try to adapt on my NPE3 with not succes...
What I mist ? How link the Vega ?

My files
TEST SSDT Vega 64 (boot ok, but not Vega detected)
DSDT from my P9X79pro extract from aida64 (untouched)
Original SSDT from the Rampage (boot ok, but not Vega detected)

You can see my code from the TEST SSDT Vega 64, just here

Code:
DefinitionBlock ("SSDT.aml", "SSDT", 1, "Test", "amitest", 0x00008000)
{
    External (C00B)
    External (C00A)
    External (C009)
    External (C008)
    External (C007)
    External (C006)
    External (C005)
    External (C004)
    External (C003)
    External (C002)
    External (C001)
    External (C000)
    External (SMB_, DeviceObj)
    External (GBE_, DeviceObj)
    External (NPE3, DeviceObj)
    External (SAT0, DeviceObj)
    External (RTC0, DeviceObj)
    External (SBRG, DeviceObj)
    External (USBE, DeviceObj)
    External (EUSB, DeviceObj)
    External (PCI0, DeviceObj)
    External (\_SB_.PWRB)
    Method (MAIN, 0, NotSerialized)
    {
        Store ("dsdt.dsl", Debug)
        Store (0x1B, Debug)
        Store ("Mon Feb 29 10:02:17 2016", Debug)
        Store ("x79 SSDT By RampageDev All Rights Reserved", Debug)
        Store ("For Use With Intel Motherboards Only", Debug)
        Store ("Report Issues With This SSDT To: [email protected]", Debug)
    }
    Scope (\_SB)
    {
        Device (VSND)
        {
            Name (_HID, EisaId ("APP0007"))
            Name (_CID, "virtual-sound")
            Name (_STA, 0x0B)
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-4"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
        Device (GCON)
        {
            OperationRegion (GPIO, SystemIO, 0x0500, 0x64)
            Field (GPIO, ByteAcc, NoLock, Preserve)
            {
                GP06,   1
            }
            Name (_HID, EisaId ("APP000B"))
            Name (_CID, "gcon")
            Name (_STA, 0x0B)
            Name (_CRS, ResourceTemplate ()
            {
                IO (Decode16,
                    0x0700,             // Range Minimum
                    0x07FF,             // Range Maximum
                    0x01,               // Alignment
                    0xFF,               // Length
                    )
            })
            Name (_PRW, Package (0x02)
            {
                0x16,
                0x04
            })
            Name (GMGP, 0x16)
            Method (GMSP, 1, NotSerialized)
            {
                If (LLessEqual (Arg0, One))
                {
                    Or (GP06, Arg0, GP06)
                }
            }
            Method (GMLV, 0, NotSerialized)
            {
                Return (GP06)
            }
        }
        Scope (PCI0)
        {
            Scope (EUSB)
            {
                Name (_STA, Zero)
            }
            Scope (USBE)
            {
                Name (_STA, Zero)
            }
            Device (EH01)
            {
                Name (_ADR, 0x001D0000)
                Name (_S4D, 0x02)
                Name (_S3D, 0x02)
                Name (_S2D, 0x02)
                Name (_S1D, 0x02)
                Name (MBSD, One)
            }
            Device (EH02)
            {
                Name (_ADR, 0x001A0000)
                Name (_S4D, 0x02)
                Name (_S3D, 0x02)
                Name (_S2D, 0x02)
                Name (_S1D, 0x02)
                Name (MBSD, One)
            }
            Scope (SBRG)
            {
                Scope (RTC0)
                {
                    Name (_STA, Zero)
                }
                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                    })
                }
            }
            Device (FWHD)
            {
                Name (_HID, EisaId ("INT0800"))
                Name (_CRS, ResourceTemplate ()
                {
                    Memory32Fixed (ReadOnly,
                        0xFF000000,         // Address Base
                        0x01000000,         // Address Length
                        )
                })
            }
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-3"
                            },
                            "layout-id",
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            },
                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Scope (SAT0)
            {
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "compatible",
                            "pci8086,8c02",
                            "IOName",
                            "pci8086,8c02",
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x02, 0x8C, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Scope (NPE3)
            {
                Name (_ADR, 0x00020000)
                Device (GFX1)
                {
                    Name (_ADR, 0x00020000)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x10)
                            {
                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },
                                "@0,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "@1,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "@2,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "@3,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "device_type",
                                Buffer (0x13)
                                {
                                    "ATY,KamarangParent"
                                },
                                "model",
                                Buffer (0x13)
                                {
                                    "Radeon Pro Vega 56"
                                },
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }
            Scope (GBE)
            {
                OperationRegion (GPIO, SystemIO, 0x0800, 0x06)
                Field (GPIO, ByteAcc, NoLock, Preserve)
                {
                    GO01,   8,
                    GO02,   8,
                    GO03,   8,
                    GO04,   8,
                    GO05,   8,
                    GP45,   1,
                    GP9,    1
                }
                Method (EWOL, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (GP9, One, GP9)
                    }
                    Else
                    {
                        And (GP9, Zero, GP9)
                    }
                    If (LEqual (Arg0, GP9))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0A)
                        {
                            "AAPL,slot-name",
                            Buffer (0x09)
                            {
                                "Internal"
                            },
                            "built-in",
                            Buffer (One)
                            {
                                 0x01
                            },
                            "device_type",
                            Buffer (0x14)
                            {
                                "Ethernet Controller"
                            },
                            "model",
                            Buffer (0x1E)
                            {
                                "Intel(R) 82579V PCI-E Gigabit"
                            },
                            "name",
                            Buffer (0x14)
                            {
                                "Ethernet Controller"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Scope (SMB)
            {
                Device (BUS0)
                {
                    Name (_CID, "smbus")
                    Name (_ADR, Zero)
                }
                Device (BUS1)
                {
                    Name (_CID, "smbus")
                    Name (_ADR, One)
                }
            }
        }
    }
    Device (EC)
    {
        Name (_HID, EisaId ("PNP0C09"))
        Name (_UID, Zero)
        Name (_CRS, ResourceTemplate ()
        {
            IO (Decode16,
                0x0062,             // Range Minimum
                0x0062,             // Range Maximum
                0x00,               // Alignment
                0x01,               // Length
                )
            IO (Decode16,
                0x0066,             // Range Minimum
                0x0066,             // Range Maximum
                0x00,               // Alignment
                0x01,               // Length
                )
        })
        Name (_GPE, 0x17)
        Name (ECOK, Zero)
        OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF)
        Field (ECOR, ByteAcc, Lock, Preserve)
        {
            ECVS,   8,
            Offset (0x02),
            Offset (0x03),
            G3HT,   1,
            Offset (0x04),
            WBCB,   1,
            DSLP,   1,
            Offset (0x05),
            Offset (0x06),
            WKRS,   8,
            Offset (0x10),
            ECSS,   8,
            PLIM,   8,
            ALB0,   8,
            ALB1,   8,
            WTLB,   8,
            WTMB,   8,
            Offset (0x20),
            SPTR,   8,
            SSTS,   8,
            SADR,   8,
            SCMD,   8,
            SBFR,   256,
            SCNT,   8,
            SAAD,   8,
            SAD0,   8,
            SAD1,   8,
            SMUX,   8,
            Offset (0x60),
            ELSW,   1,
            EACP,   1,
            ECDI,   1,
            ENMI,   1,
            Offset (0x61),
            EMHP,   1,
            Offset (0x62),
            Offset (0x63),
            Offset (0x64),
            SWLO,   1,
            SWLC,   1,
            SWAI,   1,
            SWAR,   1,
            SWCI,   1,
            SWCE,   1,
            SWMI,   1,
            SWMR,   1,
            SWPB,   1,
            SWGP,   1,
            SWPM,   1,
            SWWT,   1,
            SWLB,   1,
            Offset (0x66),
            Offset (0x67),
            Offset (0x68),
            EWLO,   1,
            EWLC,   1,
            EWAI,   1,
            EWAR,   1,
            EWCI,   1,
            EWCE,   1,
            EWMI,   1,
            EWMR,   1,
            EWPB,   1,
            EWGP,   1,
            EWPM,   1,
            ENWT,   1,
            EWLB,   1,
            Offset (0x6A),
            Offset (0x6B),
            Offset (0x6C),
            LWLO,   1,
            LWLC,   1,
            LWAI,   1,
            LWAR,   1,
            LWCI,   1,
            LWCE,   1,
            LWMI,   1,
            LWMR,   1,
            LWPB,   1,
            LWGP,   1,
            LWPM,   1,
            LWWT,   1,
            LWLB,   1,
            Offset (0x6E),
            Offset (0x6F),
            Offset (0x70)
        }
        Field (ECOR, ByteAcc, Lock, Preserve)
        {
            Offset (0x03),
            G3AD,   1,
            BLOD,   1,
            S4WE,   1,
            Offset (0x04),
            Offset (0x6C),
            LWE0,   8,
            LWE1,   8,
            LWE2,   8,
            LWE3,   8
        }
        Field (ECOR, ByteAcc, Lock, Preserve)
        {
            Offset (0x24),
            SBDW,   16,
            Offset (0x46),
            SADW,   16
        }
        Method (WAKE, 0, NotSerialized)
        {
            If (ECOK)
            {
                Return (WKRS)
            }
            Else
            {
                Return (Zero)
            }
        }
        Method (_Q5A, 0, NotSerialized)
        {
            Notify (\_SB.PWRB, 0x80)
        }
        Method (_Q80, 0, NotSerialized)
        {
            Notify (C000, 0x80)
            Notify (C001, 0x80)
            Notify (C002, 0x80)
            Notify (C003, 0x80)
            Notify (C004, 0x80)
            Notify (C005, 0x80)
            Notify (C006, 0x80)
            Notify (C007, 0x80)
            Notify (C008, 0x80)
            Notify (C009, 0x80)
            Notify (C00A, 0x80)
            Notify (C00B, 0x80)
        }
        Method (_REG, 2, NotSerialized)
        {
            If (LOr (LEqual (Arg0, 0x03), Zero))
            {
                Store (Arg1, ECOK)
                If (LEqual (Arg1, One))
                {
                    Store (Zero, ECSS)
                }
            }
        }
    }
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */   0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */   0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                             0x03
                        }, Arg4)
                    Return (One)
                }
                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }
        Store (Buffer (One)
            {
                 0x00
            }, Arg4)
        Return (Zero)
    }
}
 

Attachments

  • TEST SSDT Vega 64 - P9X79pro.zip
    2.4 KB · Views: 114
  • DSDT P9X79 Pro aida 64.zip
    15.1 KB · Views: 82
  • SSDT From Rampage P9X79pro.zip
    2.3 KB · Views: 111
Last edited by a moderator:
Hello,
I'm really not a specialist of editing a SSDT, I really need help
I become crazy :

I have a P9X79pro as motherboard, and I try to inject shathenine modification in my SSDT, but I fail.
I don't use DSDT on my configuration right now, just the SSDT and the system work very well, but in 10.3.2, my Vega 64 become crazy with the fan so :

I try to edit my SSDT with no success. I use MaciASL and DSDT Editor to edit the SSDT and at the end of the modification, the two editor give no error, but modification on the VEGA 64 not apply : the name stay AMD RX xxx 8 go and the new fan profile don't apply on 10.13.2

I try to find what is not link with AIDA64, but the software don't show me the table but I can extract it.
With IORegistryExplorer, i find that :

View attachment 308122

I have two pci bridge, in think is that, the link is not effective.
I try to adapt on my NPE3 with not succes...
What I mist ? How link the Vega ?

My files
TEST SSDT Vega 64 (boot ok, but not Vega detected)
DSDT from my P9X79pro extract from aida64 (untouched)
Original SSDT from the Rampage (boot ok, but not Vega detected)

You can see my code from the TEST SSDT Vega 64, just here

Code:
DefinitionBlock ("SSDT.aml", "SSDT", 1, "Test", "amitest", 0x00008000)
{
    External (C00B)
    External (C00A)
    External (C009)
    External (C008)
    External (C007)
    External (C006)
    External (C005)
    External (C004)
    External (C003)
    External (C002)
    External (C001)
    External (C000)
    External (SMB_, DeviceObj)
    External (GBE_, DeviceObj)
    External (NPE3, DeviceObj)
    External (SAT0, DeviceObj)
    External (RTC0, DeviceObj)
    External (SBRG, DeviceObj)
    External (USBE, DeviceObj)
    External (EUSB, DeviceObj)
    External (PCI0, DeviceObj)
    External (\_SB_.PWRB)
    Method (MAIN, 0, NotSerialized)
    {
        Store ("dsdt.dsl", Debug)
        Store (0x1B, Debug)
        Store ("Mon Feb 29 10:02:17 2016", Debug)
        Store ("x79 SSDT By RampageDev All Rights Reserved", Debug)
        Store ("For Use With Intel Motherboards Only", Debug)
        Store ("Report Issues With This SSDT To: [email protected]", Debug)
    }
    Scope (\_SB)
    {
        Device (VSND)
        {
            Name (_HID, EisaId ("APP0007"))
            Name (_CID, "virtual-sound")
            Name (_STA, 0x0B)
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-4"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
        Device (GCON)
        {
            OperationRegion (GPIO, SystemIO, 0x0500, 0x64)
            Field (GPIO, ByteAcc, NoLock, Preserve)
            {
                GP06,   1
            }
            Name (_HID, EisaId ("APP000B"))
            Name (_CID, "gcon")
            Name (_STA, 0x0B)
            Name (_CRS, ResourceTemplate ()
            {
                IO (Decode16,
                    0x0700,             // Range Minimum
                    0x07FF,             // Range Maximum
                    0x01,               // Alignment
                    0xFF,               // Length
                    )
            })
            Name (_PRW, Package (0x02)
            {
                0x16,
                0x04
            })
            Name (GMGP, 0x16)
            Method (GMSP, 1, NotSerialized)
            {
                If (LLessEqual (Arg0, One))
                {
                    Or (GP06, Arg0, GP06)
                }
            }
            Method (GMLV, 0, NotSerialized)
            {
                Return (GP06)
            }
        }
        Scope (PCI0)
        {
            Scope (EUSB)
            {
                Name (_STA, Zero)
            }
            Scope (USBE)
            {
                Name (_STA, Zero)
            }
            Device (EH01)
            {
                Name (_ADR, 0x001D0000)
                Name (_S4D, 0x02)
                Name (_S3D, 0x02)
                Name (_S2D, 0x02)
                Name (_S1D, 0x02)
                Name (MBSD, One)
            }
            Device (EH02)
            {
                Name (_ADR, 0x001A0000)
                Name (_S4D, 0x02)
                Name (_S3D, 0x02)
                Name (_S2D, 0x02)
                Name (_S1D, 0x02)
                Name (MBSD, One)
            }
            Scope (SBRG)
            {
                Scope (RTC0)
                {
                    Name (_STA, Zero)
                }
                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                    })
                }
            }
            Device (FWHD)
            {
                Name (_HID, EisaId ("INT0800"))
                Name (_CRS, ResourceTemplate ()
                {
                    Memory32Fixed (ReadOnly,
                        0xFF000000,         // Address Base
                        0x01000000,         // Address Length
                        )
                })
            }
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-3"
                            },
                            "layout-id",
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            },
                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Scope (SAT0)
            {
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "compatible",
                            "pci8086,8c02",
                            "IOName",
                            "pci8086,8c02",
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x02, 0x8C, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Scope (NPE3)
            {
                Name (_ADR, 0x00020000)
                Device (GFX1)
                {
                    Name (_ADR, 0x00020000)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x10)
                            {
                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },
                                "@0,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "@1,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "@2,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "@3,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Kamarang"
                                },
                                "device_type",
                                Buffer (0x13)
                                {
                                    "ATY,KamarangParent"
                                },
                                "model",
                                Buffer (0x13)
                                {
                                    "Radeon Pro Vega 56"
                                },
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }
            Scope (GBE)
            {
                OperationRegion (GPIO, SystemIO, 0x0800, 0x06)
                Field (GPIO, ByteAcc, NoLock, Preserve)
                {
                    GO01,   8,
                    GO02,   8,
                    GO03,   8,
                    GO04,   8,
                    GO05,   8,
                    GP45,   1,
                    GP9,    1
                }
                Method (EWOL, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (GP9, One, GP9)
                    }
                    Else
                    {
                        And (GP9, Zero, GP9)
                    }
                    If (LEqual (Arg0, GP9))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0A)
                        {
                            "AAPL,slot-name",
                            Buffer (0x09)
                            {
                                "Internal"
                            },
                            "built-in",
                            Buffer (One)
                            {
                                 0x01
                            },
                            "device_type",
                            Buffer (0x14)
                            {
                                "Ethernet Controller"
                            },
                            "model",
                            Buffer (0x1E)
                            {
                                "Intel(R) 82579V PCI-E Gigabit"
                            },
                            "name",
                            Buffer (0x14)
                            {
                                "Ethernet Controller"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Scope (SMB)
            {
                Device (BUS0)
                {
                    Name (_CID, "smbus")
                    Name (_ADR, Zero)
                }
                Device (BUS1)
                {
                    Name (_CID, "smbus")
                    Name (_ADR, One)
                }
            }
        }
    }
    Device (EC)
    {
        Name (_HID, EisaId ("PNP0C09"))
        Name (_UID, Zero)
        Name (_CRS, ResourceTemplate ()
        {
            IO (Decode16,
                0x0062,             // Range Minimum
                0x0062,             // Range Maximum
                0x00,               // Alignment
                0x01,               // Length
                )
            IO (Decode16,
                0x0066,             // Range Minimum
                0x0066,             // Range Maximum
                0x00,               // Alignment
                0x01,               // Length
                )
        })
        Name (_GPE, 0x17)
        Name (ECOK, Zero)
        OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF)
        Field (ECOR, ByteAcc, Lock, Preserve)
        {
            ECVS,   8,
            Offset (0x02),
            Offset (0x03),
            G3HT,   1,
            Offset (0x04),
            WBCB,   1,
            DSLP,   1,
            Offset (0x05),
            Offset (0x06),
            WKRS,   8,
            Offset (0x10),
            ECSS,   8,
            PLIM,   8,
            ALB0,   8,
            ALB1,   8,
            WTLB,   8,
            WTMB,   8,
            Offset (0x20),
            SPTR,   8,
            SSTS,   8,
            SADR,   8,
            SCMD,   8,
            SBFR,   256,
            SCNT,   8,
            SAAD,   8,
            SAD0,   8,
            SAD1,   8,
            SMUX,   8,
            Offset (0x60),
            ELSW,   1,
            EACP,   1,
            ECDI,   1,
            ENMI,   1,
            Offset (0x61),
            EMHP,   1,
            Offset (0x62),
            Offset (0x63),
            Offset (0x64),
            SWLO,   1,
            SWLC,   1,
            SWAI,   1,
            SWAR,   1,
            SWCI,   1,
            SWCE,   1,
            SWMI,   1,
            SWMR,   1,
            SWPB,   1,
            SWGP,   1,
            SWPM,   1,
            SWWT,   1,
            SWLB,   1,
            Offset (0x66),
            Offset (0x67),
            Offset (0x68),
            EWLO,   1,
            EWLC,   1,
            EWAI,   1,
            EWAR,   1,
            EWCI,   1,
            EWCE,   1,
            EWMI,   1,
            EWMR,   1,
            EWPB,   1,
            EWGP,   1,
            EWPM,   1,
            ENWT,   1,
            EWLB,   1,
            Offset (0x6A),
            Offset (0x6B),
            Offset (0x6C),
            LWLO,   1,
            LWLC,   1,
            LWAI,   1,
            LWAR,   1,
            LWCI,   1,
            LWCE,   1,
            LWMI,   1,
            LWMR,   1,
            LWPB,   1,
            LWGP,   1,
            LWPM,   1,
            LWWT,   1,
            LWLB,   1,
            Offset (0x6E),
            Offset (0x6F),
            Offset (0x70)
        }
        Field (ECOR, ByteAcc, Lock, Preserve)
        {
            Offset (0x03),
            G3AD,   1,
            BLOD,   1,
            S4WE,   1,
            Offset (0x04),
            Offset (0x6C),
            LWE0,   8,
            LWE1,   8,
            LWE2,   8,
            LWE3,   8
        }
        Field (ECOR, ByteAcc, Lock, Preserve)
        {
            Offset (0x24),
            SBDW,   16,
            Offset (0x46),
            SADW,   16
        }
        Method (WAKE, 0, NotSerialized)
        {
            If (ECOK)
            {
                Return (WKRS)
            }
            Else
            {
                Return (Zero)
            }
        }
        Method (_Q5A, 0, NotSerialized)
        {
            Notify (\_SB.PWRB, 0x80)
        }
        Method (_Q80, 0, NotSerialized)
        {
            Notify (C000, 0x80)
            Notify (C001, 0x80)
            Notify (C002, 0x80)
            Notify (C003, 0x80)
            Notify (C004, 0x80)
            Notify (C005, 0x80)
            Notify (C006, 0x80)
            Notify (C007, 0x80)
            Notify (C008, 0x80)
            Notify (C009, 0x80)
            Notify (C00A, 0x80)
            Notify (C00B, 0x80)
        }
        Method (_REG, 2, NotSerialized)
        {
            If (LOr (LEqual (Arg0, 0x03), Zero))
            {
                Store (Arg1, ECOK)
                If (LEqual (Arg1, One))
                {
                    Store (Zero, ECSS)
                }
            }
        }
    }
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */   0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */   0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                             0x03
                        }, Arg4)
                    Return (One)
                }
                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }
        Store (Buffer (One)
            {
                 0x00
            }, Arg4)
        Return (Zero)
    }
}

Sorry, I had only tested it in z270 motherboard, and I only have one Vega 64.
I had update to macOS 10.13.4 Development Beta 1,and it can automatic the correct name Radeon RX Vega 64. But the Fans speed still in high speed. Vega has no other problem in 10.13.4 except fans speed. If you like, you can also update your system. Pay attention: the usb 15 ports limit patch is invalid in 10.13.4, we have to wait someone to patch it.
 
Sorry, I had only tested it in z270 motherboard, and I only have one Vega 64.
I had update to macOS 10.13.4 Development Beta 1,and it can automatic the correct name Radeon RX Vega 64. But the Fans speed still in high speed. Vega has no other problem in 10.13.4 except fans speed. If you like, you can also update your system. Pay attention: the usb 15 ports limit patch is invalid in 10.13.4, we have to wait someone to patch it.

Ok. Thanks. yes I think that I will wait for the final release
 
@shathenine


With WhateverGreen kext hardware encoding supported, AMD Radeon VEGA 56
Graphics AMD RADEON VEGA 56.png

With your SSDT hardware encoding supported, graphics card N/A
Graphics N:A.png


Any clue?
 
Last edited:
Whatevergreen sets the default franebuffer (generic) or AMDFramebuffer and the SSDT sets Kamarang, Iriri etc....
Maybe that’s the reason?
Hi,Gigamaxx~ I had a problem.

When I bootup with Dell P2415Q with DP in 3840x2160 resolution,GOP works abnormality,the motherboard logo is deformed and blurred. But there are nothing problem when I using Dell U2414H display monitor with 1920x1080 resolution.
This problem is not only in hackintosh,it happended when I booting my computer up, since it posted complete.

I think it caused by Graphics VBIOS.

Could you give me some suggestion?
 
Status
Not open for further replies.
Back
Top