- 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
- OpenCore (UEFI)
- Mobile Phone
- 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!
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!