TylerLyczak / Unsupported-6900XT-Hackintosh-Fix

A fix for hackintoshes to get an unsupported 6900XT gpu to work
67 stars 4 forks source link

6650XT #12

Closed echokk11 closed 12 months ago

echokk11 commented 1 year ago

Can i take you one minute please? I got my 6650XT like this:

2f:00.0 1002:73ff /PCI0@0/GPP8@3,1/SWUS@0/SWDS@0/GFX0@0 = PciRoot(0x0)/Pci(0x3,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

so I should replace the value PCI0.GPP8.SWUS.SWDS?

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.GPP8.SWUS, DeviceObj)

    Scope (\_SB.PCI0.GPP8.SWUS)
    {
        Device (SWDS)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }
        }
    }
}

It seams did not work well.

echokk11 commented 1 year ago

I have solved the problem, only add this aml SSDT-6650XT-SPOOF.aml

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AMDGPU", 0x00001000)
{
    External (_SB_.PCI0, DeviceObj)
    External (_SB_.PCI0.GPP8.SWUS.SWDS.VGA_, DeviceObj)

    Scope (\_SB.PCI0.GPP8.SWUS.SWDS.VGA)
    {
        If (_OSI ("Darwin"))
        {
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Local0 = Package (0x04)
                    {
                        "device-id", 
                        Buffer (0x04)
                        {
                             0xFF, 0x73, 0x00, 0x00                           // .s..
                        }, 

                        "model", 
                        Buffer (0x15)
                        {
                            "AMD Radeon RX 6650XT"
                        }
                    }
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }

    Scope (\_SB.PCI0)
    {
        Method (DTGP, 5, NotSerialized)
        {
            If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */))
            {
                If ((Arg1 == One))
                {
                    If ((Arg2 == Zero))
                    {
                        Arg4 = Buffer (One)
                            {
                                 0x03                                             // .
                            }
                        Return (One)
                    }

                    If ((Arg2 == One))
                    {
                        Return (One)
                    }
                }
            }

            Arg4 = Buffer (One)
                {
                     0x00                                             // .
                }
            Return (Zero)
        }
    }
}