• Become a Premium Member for $25/year with no ads to improve your community experience. Upgrade to Pro Account for faster response and no wait times!

How to build 6950 xt SSDTs in windows - prep for Sonoma

bhuether

New member
Joined
May 26, 2024
Messages
8
Motherboard
Asus Z790 ProArt Creator
CPU
i7 14700k
Graphics
6950 XT Red Devil
OS X/macOS
14.x
Bootloader
  1. OpenCore (UEFI)
Mobile Phone
  1. Android
Hi, been reading here and elsewhere about getting 6950xt working on Sonoma. I am using it with i7 14700K, Asus Z790 ProArt Creator. I built SSDT-GPU-SPOOF with dortania instructions. Also I built SSDT-BRG0 with SSDTTime, sincein windows I see unnamed PCI bridges.

The spoof DSDT looks like

// 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_.PC00, DeviceObj)
External (_SB_.PC00.PEG1.PEGP, DeviceObj)


Scope (\_SB_.PC00.PEG1.PEGP)
{
if (_OSI ("Darwin"))
{
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x04)
{
// Where we shove our FakeID
"device-id",
Buffer (0x04)
{
0xBF, 0x73, 0x00, 0x00
},

// Changing the name of the GPU reported, mainly cosmetic
"model",
Buffer ()
{
"AMD Radeon 6950 XT Red Devil"
}
}
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
Scope (\_SB.PC00)
{
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)
}

}

}

The bridge:

// Source and info from:
// https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-BRG0.dsl
DefinitionBlock ("", "SSDT", 2, "CORP", "PCIBRG", 0x00000000)
{
/*
* Start copying here if you're adding this info to an existing SSDT-Bridge!
*/
External (\_SB.PC00.PEG1.PEGP, DeviceObj)
Scope (\_SB.PC00.PEG1.PEGP)
{
Device (BRG0)
{
Name (_ADR, Zero)
// Customize this device name if needed, eg. GFX0
Device (PXSX)
{
// Target Device Path:
// PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
Name (_ADR, Zero)
}
}
}
/*
* End copying here if you're adding this info to an existing SSDT-Bridge!
*/
}

The thing is, it is not clear if I need to rename PXSX to GFX0 or something, and as I understand looking through DSDT is needed to determine if rename is needed. I attached DSDT dump if useful.

Ideas?

thanks!
 

Attachments

Forgot to add, windows shows for my GPU

PCIROOT(0)#PCI(0100)#PCI(0000)#PCI(0000)#PCI(0000) PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
ACPI(_SB_)#ACPI(PC00)#ACPI(PEG1)#ACPI(PEGP)#PCI(0000)#PCI(0000)

\_SB.PC00.PEG1.PEGP
 
Here's how to spoof:
 
Is this tutorial works for rx6950xt on OSX 10.14 Mojave? Do I need to use some additional kext to get GPU to work on Mojave or I can do a DSDT GPU SPOOF alone?
 
Is this tutorial works for rx6950xt on OSX 10.14 Mojave? Do I need to use some additional kext to get GPU to work on Mojave or I can do a DSDT GPU SPOOF alone?
Please do not create multiple posts for the same issue.

See the original reply here:
 

Forum statistics

Threads
1,935
Messages
18,084
Members
27,828
Latest member
イツミてんちむデモン(Real_That_Itsu