Jump to content

Inject FB Name For AMD Radeon RX Vega 64


52 posts in this topic

Recommended Posts

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.I tried to inject it with SSDT,but at last I failed.

 

post-2105175-0-33179100-1512959940_thumb.jpg

 

In the IORegistryExplorer,the graphics card is in PCI0>PEG0>PEGP>GFX0>display@0,and the FB Name injected failed.With WhateverGreen.kext,the graphics card is in PCI0>PEG0>PEGP>pci-bridge>GFX0.

 

post-2105175-0-73135200-1512962838_thumb.jpg

 

 

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

post-2105175-0-75306200-1512960511_thumb.pngpost-2105175-0-55151400-1512960519.pngpost-2105175-0-87124800-1512960525.png

 

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。

                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"
                                    }
                                })
                            }
                        }
                    }
                }
            }

post-2105175-0-69953400-1512960712_thumb.jpg

 

With Injected FB Name,my Hackintosh can sleep,when the computer wakes up from sleep,it works.

If the system starts the black screen,please turn off the DP1.2

 

 

2017-12-11 20:34 (UTC+8)

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 .

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"
                    }
                })
            }
        }
    }
}


post-2105175-0-18267400-1512996144_thumb.png

 

 

DSDT.zip     SSDT-Inject FB Name For Vega 56 or 64.zip

  • Like 7

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.I tried to inject it with SSDT,but at last I failed.

 

attachicon.gifQQ图片20171211101845.jpg

 

In the IORegistryExplorer,the graphics card is in PCI0>PEG0>PEGP>GFX0>display@0,and the FB Name injected failed.With WhateverGreen.kext,the graphics card is in PCI0>PEG0>PEGP>pci-bridge>GFX0.

 

attachicon.gifQQ图片201712111018392.jpg

 

 

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

attachicon.gifQQ图片20171211101751.pngattachicon.gifQQ图片20171211101758.pngattachicon.gifQQ图片20171211101804.png

 

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。

                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"
                                    }
                                })
                            }
                        }
                    }
                }
            }

attachicon.gif501152BB-DC86-4298-8F33-064691AF5502.jpg

 

With Injected FB Name,my Hackintosh can sleep,when the computer wakes up from sleep,it works.

If the system starts the black screen,please turn off the DP1.2

 

attachicon.gifDSDT.zip

 

Nice Job!

Thanks! Have you succeeded?

No, unfortunately my Ryzen dsdt has different terminology for these. Instead of PEGO or PEGP I have BGG8 attached to my PCIO@0 nomenclature. If I add dsdt (PCIO.PEGO) it renames it to IOMM? I’ve been testing but all the guides are for Intel systems.

 

I tried to open your original dsdt but it won’t open using MacaISL editor. I will try again later with your latest links.

 

Update:    It works on Ryzen as well.

 

post-1753549-0-04148500-1513125824_thumb.png

  • Like 1

No, unfortunately my Ryzen dsdt has different terminology for these. Instead of PEGO or PEGP I have BGG8 attached to my PCIO@0 nomenclature. If I add dsdt (PCIO.PEGO) it renames it to IOMM? I’ve been testing but all the guides are for Intel systems.

 

I tried to open your original dsdt but it won’t open using MacaISL editor. I will try again later with your latest links.

 

Update:    It works on Ryzen as well.

 

attachicon.gifScreen Shot 2017-12-12 at 4.37.19 PM.png

Nice Job!And the MacaISL version I used is RM-1.31(252.3)and edited with ACPI 6.1

 

post-2105175-0-40263600-1513130898_thumb.png

 

I have done it successfully with SSDT and tested the FB Name "Kamarang" and "Iriri", they all work properly.  Would you like to try this job?

 

These are my SSDT files and the MacaISL editor what I use:

SSDT-RX Vega FB.zip

 

MaciASL RM-1.31.zip

  • Like 1

Nice Job!And the MacaISL version I used is RM-1.31(252.3)and edited with ACPI 6.1

 

attachicon.gifQQ截图20171213100219.png

 

I have done it successfully with SSDT and tested the FB Name "Kamarang" and "Iriri", they all work properly.  Would you like to try this job?

 

These are my SSDT files and the MacaISL editor what I use:

attachicon.gifSSDT-RX Vega FB.zip

 

attachicon.gifMaciASL RM-1.31.zip

hey

use this for device_type and name ^_^

}, 

                                        "device_type", 
                                        Buffer (0x10)
                                        {
                                            "ATY,IririParent"
                                        }, 

                                        "name", 
                                        Buffer (0x10)
                                        {
                                            "ATY,IririParent"
                                        },

What is the deference between Iriri and Kamarang? Both have a same HDMI, 3 x DP. What is a property framebuffer for Vega?

My friends had tested and said to me :Karamang can play H264 video but not H265 with hardware-accelerated graphics, Iriri can play H265 but not H264 with hardware-accelerated graphics. There are no other differences between them.

 

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

attachicon.gifQQ图片20171211101751.pngattachicon.gifQQ图片20171211101758.pngattachicon.gifQQ图片20171211101804.png

 

 

Could you explain this a little bit. Which AIDA64 version and how did you find it. 

My friends had tested and said to me :Karamang can play H264 video but not H265 with hardware-accelerated graphics, Iriri can play H265 but not H264 with hardware-accelerated graphics. There are no other differences between them.

I use both Karamang H264 4k and H265 4k for hardware decoding
Player: IINA
  • 2 weeks later...

Not working for me, but might be due to my setup (Supermicro and dual Xeons), I tried to change the SSDT by myself but I can't get it to work properly or to display properly the name of the card. Will upload later today a IOreg maybe some of you guys will be able to help me.

 

Thanks for the thread and the findings !

 

EDIT 1: As promised here is attached the IOreg for you guys to check... hope you will find what is going on. Apparently the path to the GFXO for me seems to be _SB / PCI0@0 / HPET / LTRE. Tried to modify that on the SSDT but I keep on getting compiler errors.

MacPro.ioreg.zip

Not working for me, but might be due to my setup (Supermicro and dual Xeons), I tried to change the SSDT by myself but I can't get it to work properly or to display properly the name of the card. Will upload later today a IOreg maybe some of you guys will be able to help me.

 

Thanks for the thread and the findings !

 

EDIT 1: As promised here is attached the IOreg for you guys to check... hope you will find what is going on. Apparently the path to the GFXO for me seems to be _SB / PCI0@0 / HPET / LTRE. Tried to modify that on the SSDT but I keep on getting compiler errors.

 

The path for your GFX0 is _SB.NPE7.(something).LTRE . You could check this in windows with AIDA64 Engineer to find name of device in NPE7.

The path for your GFX0 is _SB.NPE7.(something).LTRE . You could check this in windows with AIDA64 Engineer to find name of device in NPE7.

 

For my Ryzen systewm I had to use the imac 18.2 to get the GFX0 to work, with MP 6.1 it always listed as IOMM.   

The path for your GFX0 is _SB.NPE7.(something).LTRE . You could check this in windows with AIDA64 Engineer to find name of device in NPE7.

 

Problem is I don't have a windows partition on this machine, Linux possibly ? So I can make a USB stick and boot from it and find out... but I have no clue what tool to use on Linux, any idea ?

Can you elaborate a little bit more ? What is the relationship between renaming to GFX1 with naming properly the card in the SSDT method ? 

not rename, device don't exist, u need create one with correct Name (_ADR

Problem is I don't have a windows partition on this machine, Linux possibly ? So I can make a USB stick and boot from it and find out... but I have no clue what tool to use on Linux, any idea ?

 

Try this SSDT.

SSDT-Vega.aml.zip

  • Like 1
×
×
  • Create New...