Hi, I have been reading here and elsewhere about using this GPU under Sonoma. I am getting my 6950 xt prepped for use in Sonoma, and want to use SSDT method to ensure DRM function. My variant is red devil 6950 xt, device id 73A5.
I am in windows (where I will install mac on separate SSD today), haven't installed Sonoma yet, trying to get things rock solid beforehand.
Here is what I have in device manager:
Code:
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
Also shows PCI Slot 1 (PCI bus 3, device 0, function 0)
Now, as I understand, this shows that I have unnamed pci bridges, and that means I need ssdt-bridge? Prior, I had followed dortania guide on ssdt-gpu-spoof and I made it
Code:
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) } } }
Then reading more, seems I actually need bridge, so I used SSDTTime, and ended up with
Code:
// Source and info from: // 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! */ }https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-BRG0.dsl
But this also is not so clear, as it says " // Customize this device name if needed, eg. GFX0". How do I know if that is needed? In most examples I see of people setting up this spoof, there is a GFX0 entry. And looking here:
I see this block under BRG0
Device (GFX0)
{
Name (_ADR, Zero) // _ADR: Address
}
This is a 6900 example, but still I am seeing how this GFX0 appears, as it does in most examples, and since my SSDTTime output does not include it, has me curious.
Anyway, just looking for sanity check. I created acpi table dump if that is useful I can attach. If NootRX is mature, I might also try that.
thanks
[link] [comments]
Post a Comment