Contribute
Register

<< Solved >> RX 580 2048SP - SSDT-GPU-SPOOF not working :(

Joined
Jan 6, 2022
Messages
12
Motherboard
Gigabyte B450M-DS3H
CPU
Ryzen 5 1600
Graphics
RX580
Hi, I have a MAXSUN RX 580 2048SP. The device ID is 0x6FDF but since MacOS doesn't detect it, I put the SPOOF ID as: 67DF which is the ID for Polaris 20 XL GPUs.
2048SP is a modified version of RX 570 for the Chinese market, it's got the sam exact architecture and everything but just a little higher clock.

I am attaching the DSL file. Please help me Spoof the GPU ID
 

Attachments

  • SSDT-GPU-SPOOF (2).dsl
    1.9 KB · Views: 269
Check that the IOReg address you are using in the SSDT matches the address of your RX580. That is usually why an SSDT fails to work.
 
Check that the IOReg address you are using in the SSDT matches the address of your RX580. That is usually why an SSDT fails to work.
Sorry for the noob question, is IOReg the address that starts with _SB.? If yes, then I think it's a problem.
I installed Windows and installed the correct drivers, checked the location paths and they're the exact same as I have entered in the dsl file.
On Linux I was unable to find the path that the guide mentions, there's no firmware_node folder in /sys/bus/pci/devices/000xxxx/, I checked multiple times but it doesn't.
Surprisingly, my other AMD PC has that path but not the one I'm trying to run Hackintosh on.

In Hackintool, 0x67DF shows up, which means the Spoof is working but my GPU also shows up which means the address is wrong.
 

Attachments

  • IMG_20220109_073541_114.jpg
    IMG_20220109_073541_114.jpg
    198.7 KB · Views: 377
  • IMG_20220109_073538_894.jpg
    IMG_20220109_073538_894.jpg
    203.4 KB · Views: 445
FIXED! Wrapping Method inside
Device (GFX0) {
Name (_ADR, Zero)
}
did the job!

Code:
]// Based off of WhateverGreen's sample.dsl
// https://github.com/acidanthera/WhateverGreen/blob/master/Manual/Sample.dsl
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AMDGPU", 0x00001000)
{
    External (_SB_.PCI0, DeviceObj)
    External (_SB_.PCI0.GPP8, DeviceObj)


    Scope (\_SB_.PCI0.GPP8)
    {
        if (_OSI ("Darwin"))
        {
            Device (GFX0) {
            Name (_ADR, Zero)
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Local0 = Package (0x04)
                {
                    // Where we shove our FakeID
                    "device-id",
                    Buffer (0x04)
                    {
                        0xDF, 0x67, 0x00, 0x00
                    },

                    // Changing the name of the GPU reported, mainly cosmetic
                    "model",
                    Buffer ()
                    {
                        "AMD Radeon RX 580 2048SP"
                    }
                }
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }}
        }
    }
    Scope (\_SB.PCI0)
    {                  
        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)
        }
     
    }

}
 
How close a match was the card you took the Vbios from to your card?

Close enough to have the same number and type of display connectors? The same memory and boost speeds?

Which display out port on the card and cable are you using, DisplayPort, DVI or HDMI?
 
Almost everything the same except for frequencies.
I'm on HDMI
 
How close a match was the card you took the Vbios from to your card?

Close enough to have the same number and type of display connectors? The same memory and boost speeds?

Which display out port on the card and cable are you using, DisplayPort, DVI or HDMI?
I have uploaded all the required documentation and files here:
 
HDMI connectors can be a bit funky/Hit&Miss in macOS. Do you have the option to use an alternative display out port from the RX580, i.e. DP or DVI? As they are both better supported (natively) in macOS compared to HDMI connectors.
 
HDMI connectors can be a bit funky/Hit&Miss in macOS. Do you have the option to use an alternative display out port from the RX580, i.e. DP or DVI? As they are both better supported (natively) in macOS compared to HDMI connectors.
Unfortunately not but I guess the setup will do for now :)
 
Back
Top