Contribute
Register

<< Solved >> GPU SSDT not working

Status
Not open for further replies.
Joined
Feb 24, 2021
Messages
14
Motherboard
Jingsha X79M
CPU
Xeon E5 2640 v2
Graphics
RX 550
Hello!
I sucessfully installed Big Sur on a x79 motherboard with OC.
But I still have a problem, I can't get the RX550 4GB graphics to work.

And I found a SSDT showing how to fake ID a RX550. (check "SSDT-DELL-5820-X299-RX550.aml")
I edited the part of GPU ACPI path to mine but it still didn't work.

Maybe I'm doing something wrong, or the SSDT might need an update or a different code, "buffer" numbers might be wrong.
I really don't know what else to do.
I've never done this GPU SSDT thing before.
Somebody please help me.


SOLVED

ScreenShot-SSDT.jpg


I attached a sample "SSDT-RX550.dsl" to help anyone who needs it.

You just need to add your GPU ACPI path on:
External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
Scope (_SB.PCI0.PEG0.PEGP)

The GPU path can be shorter sometimes (mine didn't have "PEGP", so I removed it)

And also add your GPU "AAPL,slot-name" path.
Compile it, and done.

My custom sample doesn't have support for the "HDAU", I didn't need it.
But if you need it, you can copy the code from "SSDT-DELL-5820-X299-RX550.aml"

How I did:
Besides my GPU info, it was just a change of codes that solved it.

I removed the "buffer" numbers/letters copied from "SSDT-DELL-5820-X299-RX550.aml"
And left them blank "Buffer ()" because when you compile later, these numbers/letters will be added automatic.

And I also removed the "External (DTGP)" from the header
And put this at the end:
Code:
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
        {
            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)
    }
}
I copied from here: https://github.com/acidanthera/WhateverGreen/blob/master/Manual/Sample.dsl
 

Attachments

  • SSDT-DELL-5820-X299-RX550.aml
    1.3 KB · Views: 378
  • SSDT-RX550.dsl
    5.1 KB · Views: 798
Last edited:
It’s quite simple to do. As I presume you have no iGPU you’re only using a Xeon E5 (Sandy Bridge EP?) your AMD card IS working already, just not accelerated.

All you need to do is go here and download the app. Select the SMBIOS you’re using plus your graphics card model and it will generate a custom AGPMInjector.kext for your card. > https://github.com/Pavo-IM/AGPMInjector

Once that’s done, put the file into your EFI/OC/Kexts folder and add it and enable it with your plist editor. Also add SSDT-PLUG.aml from Dortania into your EFI/OC/ACPI folder and enable that too. After that reboot, reset your NVRAM, reboot again and it should work.
Just make sure you’d removed any previous GPU spoof files from the EFI folder.

If after adding this you still struggle, you could also try adding agpdmod=pikera into your NVRAM boot-args.
 
It’s quite simple to do. As I presume you have no iGPU you’re only using a Xeon E5 (Sandy Bridge EP?) your AMD card IS working already, just not accelerated.

All you need to do is go here and download the app. Select the SMBIOS you’re using plus your graphics card model and it will generate a custom AGPMInjector.kext for your card. > https://github.com/Pavo-IM/AGPMInjector

Once that’s done, put the file into your EFI/OC/Kexts folder and add it and enable it with your plist editor. Also add SSDT-PLUG.aml from Dortania into your EFI/OC/ACPI folder and enable that too. After that reboot, reset your NVRAM, reboot again and it should work.
Just make sure you’d removed any previous GPU spoof files from the EFI folder.

If after adding this you still struggle, you could also try adding agpdmod=pikera into your NVRAM boot-args.
I tried and it didn't work.
But thanks for trying to help me.

It seems like OC is not there yet when it comes to GPU fake ID.
I got back to Clover for now, and it's working fine.
screenshot.png


But I still wish to make it work on OC because the system boots faster and it looks more stable.
So if anyone find a solution for this problem, please let me know.
 
You need to have created a AGPMInjector kext using Pavo’s tool for you card. Then editing the Info.plist inside, change the device ID to your current GPU’s device Id. This ID can be found with Hackintool PCIe or Windows device manager. Also add the device-id to your graphics card IOReg device properties in reverse-byte-order with trailing 0000. eg. 70A10000. Make sure in your config.plist Kernel section that Lilu, Whatevergreen and VirtualSMC loads before everything else.

Shiki boot-args no longer works in Big Sur so you must use agpdmod=pikera.
 
I tried and it didn't work.
But thanks for trying to help me.

It seems like OC is not there yet when it comes to GPU fake ID.
I got back to Clover for now, and it's working fine.
View attachment 518242

But I still wish to make it work on OC because the system boots faster and it looks more stable.
So if anyone find a solution for this problem, please let me know.
Use Hackintool to extract the PCi devices plist.
Upload it. I will try to help you with OC config.plist
Hackintool PCIe devices .png
 
You need to have created a AGPMInjector kext using Pavo’s tool for you card. Then editing the Info.plist inside, change the device ID to your current GPU’s device Id. This ID can be found with Hackintool PCIe or Windows device manager. Also add the device-id to your graphics card IOReg device properties in reverse-byte-order with trailing 0000. eg. 70A10000. Make sure in your config.plist Kernel section that Lilu, Whatevergreen and VirtualSMC loads before everything else.

Shiki boot-args no longer works in Big Sur so you must use agpdmod=pikera.
I already know the ID, it's "1002:699f". And the "info.plist" inside shows the same original ID. But I need to fake to "67FF" and not keep the original one.
 
Use Hackintool to extract the PCi devices plist.
Upload it. I will try to help you with OC config.plist
View attachment 518243
Thanks for trying to help me.

And now I noticed that the audio is "baffin" and only the video is "lexa pro"
Code:
[ Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/5 Display controller   VGA compatible contr 0/NPE3@2/GFX0@0 display         PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)
[ Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560 Multimedia controlle Audio device         ci1002,aae0@0,1 pci1002,aae0    PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x1)
So would that make the "audio" native supported?
 
Last edited:
I attached the file, thanks for trying to help me.

And now I noticed that the audio is "baffin" and only the video is "lexa pro"
Code:
[ Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/5 Display controller   VGA compatible contr 0/NPE3@2/GFX0@0 display         PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)
[ Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560 Multimedia controlle Audio device         ci1002,aae0@0,1 pci1002,aae0    PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x1)
So would that make the "audio" native supported?
Give this a try. If you need to inject more devices add them. I stripped it down to just the VGA card. We can also add the model (name if you want) if it works, and the name is wrong.
 

Attachments

  • pcidevices.plist
    8.7 KB · Views: 220
Give this a try. If you need to inject more devices add them. I stripped it down to just the VGA card. We can also add the model (name if you want) if it works, and the name is wrong.
So I only add the " DeviceProperties" part on my config.plist, right?
Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>AAPL,slot-name</key>
                <string>Internal@0,2,0/0,0</string>
                <key>device_type</key>
                <string>VGA compatible controller</string>
                <key>device-id</key>
                <data>/2cAAA==</data>
                <key>vendor-id</key>
                <data>AhAAAA==</data>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>
 
So I only add the " DeviceProperties" part on my config.plist?
Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>AAPL,slot-name</key>
                <string>Internal@0,2,0/0,0</string>
                <key>device_type</key>
                <string>VGA compatible controller</string>
                <key>device-id</key>
                <data>/2cAAA==</data>
                <key>vendor-id</key>
                <data>AhAAAA==</data>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>
Yes that is all that I left in there. I removed the others. If you need the others for internet, wifi etc.. replace them as you need. I have found that sometimes doing audio for example can effect VGA. So try this alone if you can and then add until it breaks if needed.
 
Status
Not open for further replies.
Back
Top