Contribute
Register

MacPro 2019

Joined
May 10, 2012
Messages
131
Motherboard
Asus X299 PRO/SE
CPU
i9-10920X
Graphics
6900XT, W6600, W6800
Mac
  1. Mac Pro
Attached SSDT-AMD6950-V1-6.aml includes both device-id and compatible.
Thanks for that. Will test it on Friday maybe (when I get a remote access to the machine).
Strange, but this is how the spoofing inside the DSDT worked before:
Code:
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20200925 (64-bit version)
 * Copyright (c) 2000 - 2020 Intel Corporation
 *
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of iASL54e3Q6.aml, Wed Jun  1 14:43:16 2022
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000128 (296)
 *     Revision         0x02
 *     Checksum         0x84
 *     OEM ID           "Apple"
 *     OEM Table ID     "AMD6950"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20200925 (538970405)
 */
DefinitionBlock ("", "SSDT", 2, "Apple", "AMD6950", 0x00000000)
{
    External (_SB_.PC03, DeviceObj)
    External (_SB_.PC03.BR3A, DeviceObj)
    External (DTGP, MethodObj)    // 5 Arguments

    Scope (\_SB.PC03)
    {
        Device (BR3A)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_SUN, 0x03)  // _SUN: Slot User Number
            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (Package (0x02)
                {
                    0x09,
                    0x04
                })
            }

            Device (GFX1)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    If (!Arg2)
                    {
                        Return (Buffer (One)
                        {
                             0x03                                             // .
                        })
                    }

                    Return (Package (0x12)
                    {
                        "device-id",
                        Buffer (0x04)
                        {
                             0xBF, 0x73, 0x00, 0x00                           // .s..
                        },

                        "compatible",
                        Buffer (0x24)
                        {
                            /* 0000 */  0x70, 0x63, 0x69, 0x31, 0x30, 0x30, 0x32, 0x2C,  // pci1002,
                            /* 0008 */  0x37, 0x33, 0x62, 0x66, 0x00, 0x70, 0x63, 0x69,  // 73bf.pci
                            /* 0010 */  0x63, 0x6C, 0x61, 0x73, 0x73, 0x2C, 0x30, 0x33,  // class,03
                            /* 0018 */  0x30, 0x30, 0x30, 0x30, 0x00, 0x47, 0x46, 0x58,  // 0000.GFX
                            /* 0020 */  0x31, 0x00, 0x00, 0x00                           // 1...
                        },

                        "model",
                        "AMD RX 6950XT"
                    })
                }

                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If (_OSI ("Darwin"))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
            }
        }
    }
}
Also this is how the card attaches in Windows:
Code:
ACPI(_SB_)#ACPI(PC03)#ACPI(BR3A)#PCI(0000)#PCI(0000)#PCI(0000)
 
Last edited:
Joined
May 10, 2012
Messages
131
Motherboard
Asus X299 PRO/SE
CPU
i9-10920X
Graphics
6900XT, W6600, W6800
Mac
  1. Mac Pro
Attached SSDT-AMD6950-V1-6.aml includes both device-id and compatible.
I have a little progress:
I removed the device-id and now have this:
1654262975495.png


1654263008528.png

1654263327422.png

Still cannot load the kext though.

Code:
DefinitionBlock ("", "SSDT", 2, "Apple", "AMD6950", 0x00000000)
{
    External (_SB_.PC03, DeviceObj)
    External (_SB_.PC03.BR3A, DeviceObj)
    External (_SB_.PC03.BR3A.US00.DS00, DeviceObj)
    External (DTGP, MethodObj)    // 5 Arguments

    Scope (\_SB.PC03.BR3A.US00.DS00)
    {
        Device (GFX1)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Local0 = Package (0x04)
                    {
                        "compatible",
                        Buffer (0x24)
                        {
                            /* 0000 */  0x70, 0x63, 0x69, 0x31, 0x30, 0x30, 0x32, 0x2C,  // pci1002,
                            /* 0008 */  0x37, 0x33, 0x62, 0x66, 0x00, 0x70, 0x63, 0x69,  // 73bf.pci
                            /* 0010 */  0x63, 0x6C, 0x61, 0x73, 0x73, 0x2C, 0x30, 0x33,  // class,03
                            /* 0018 */  0x30, 0x30, 0x30, 0x30, 0x00, 0x47, 0x46, 0x58,  // 0000.GFX
                            /* 0020 */  0x31, 0x00, 0x00, 0x00                           // 1...
                        },

                        "model",
                        "AMD RX 6950XT"
                    }
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }
}
 

Attachments

  • Mac Pro 6950.zip
    2.1 MB · Views: 32
Last edited:
Joined
May 10, 2012
Messages
131
Motherboard
Asus X299 PRO/SE
CPU
i9-10920X
Graphics
6900XT, W6600, W6800
Mac
  1. Mac Pro
I can inject anything but the device-id. As soon as device-id is injected OC crashes. What gives?
 
Joined
May 10, 2012
Messages
131
Motherboard
Asus X299 PRO/SE
CPU
i9-10920X
Graphics
6900XT, W6600, W6800
Mac
  1. Mac Pro
@CaseySJ I just realized I was booting all the time deleting the original SSDT-5 table. Attached is the Ioregistry with the SSDT-5 loaded and device-id missing from the SSDT.
1654271822979.png
 

Attachments

  • MacPro Backup03062022.ioreg.zip
    1.9 MB · Views: 16

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
19,787
Motherboard
Asus ProArt Z690-Creator
CPU
i7-12700K
Graphics
RX 6800 XT
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
@CaseySJ I just realized I was booting all the time deleting the original SSDT-5 table. Attached is the Ioregistry with the SSDT-5 loaded and device-id missing from the SSDT.
device-id needs to be injected otherwise the SSDT won't accomplish anything! If the system crashes when we spoof the device ID then it's necessary to find a solution or workaround for this problem.

Because the DSDT of your real Mac compiles properly in MaciASL, it is okay to make changes directly to the DSDT and load the modified version instead of the original version. It will be necessary to drop the original DSDT from ACPI --> Delete and attach the new DSDT from ACPI --> Add.

Have you already tried modifying the DSDT and injecting it?
 

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
19,787
Motherboard
Asus ProArt Z690-Creator
CPU
i7-12700K
Graphics
RX 6800 XT
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
Not Yet. Not sure how to do it correctly.
In a previous post you quoted a modified section of the DSDT. That is the right approach. We just need to copy Device (GFX1) into the PC03.BR3A.US00.DS00 section of the DSDT. Something like this:
Screen Shot 2022-06-03 at 10.00.02 AM.png

NOTE:
  • This modified DSDT should only be used if the AMD 6950XT is installed. Otherwise this DSDT is invalid.
 

Attachments

  • DSDT-MOD.aml
    52.6 KB · Views: 20
Joined
May 10, 2012
Messages
131
Motherboard
Asus X299 PRO/SE
CPU
i9-10920X
Graphics
6900XT, W6600, W6800
Mac
  1. Mac Pro
In a previous post you quoted a modified section of the DSDT. That is the right approach.
Yes, but again the injection works fine if no device-id is spoofed. I wish I could capture a panic log that I can share with Acidanthera team to see why OC is crashing. I will tests it, but at this point it is probably better to collect somehow a detailed debug/panic log.
 

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
19,787
Motherboard
Asus ProArt Z690-Creator
CPU
i7-12700K
Graphics
RX 6800 XT
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
Yes, but again the injection works fine if no device-id is spoofed. I wish I could capture a panic log that I can share with Acidanthera team to see why OC is crashing. I will tests it, but at this point it is probably better to collect somehow a detailed debug/panic log.
Do you know if anyone with a real Mac Pro such as yours has been able to spoof their AMD GPU device ID? Perhaps someone on MacRumors website or eGPU.io website?
 
Joined
May 10, 2012
Messages
131
Motherboard
Asus X299 PRO/SE
CPU
i9-10920X
Graphics
6900XT, W6600, W6800
Mac
  1. Mac Pro
Do you know if anyone with a real Mac Pro such as yours has been able to spoof their AMD GPU device ID? Perhaps someone on MacRumors website or eGPU.io website?
I think I found the problem:
 
Top