Contribute
Register

[Success] AMD RX6000 Series working in macOS

Find attached two plist's. One where I booted without the new GPU and one where I booted with it active.
Give this a go. The other items like TB and Memory controllers are removed. If you can start with this alone if you need the other device/properties add them one by one if possible. I've found adding more devices or related bus devices can change injection status.

Remove any other SSDT fixes or exp. kexts etc.. Add PCIID.kext to OC/Kexts and set in config, plist.
 

Attachments

  • PCI0x73BF.plist
    9.4 KB · Views: 77
Give this a go. The other items like TB and Memory controllers are removed. If you can start with this alone if you need the other device/properties add them one by one if possible. I've found adding more devices or related bus devices can change injection status.

Remove any other SSDT fixes or exp. kexts etc.. Add PCIID.kext to OC/Kexts and set in config, plist.
Are you sure about the PCI path? The one in your file points towards my RX580, and when applied as-is leads to getting stuck somewhere along the boot process (which seems sensical to me).
Changing the PCI path to my actual RX 6900 XT allows me to boot, but does not modify the ID. It remains at 0x73AF.

Edit: Spoofing via SSDT, I managed to produce a kernel panic whose log I was able to save upon the next reboot:
panic(cpu 0 caller 0xffffff7f9f93efc9): "[103:0:0][PPLIB] Failed to send PPLIB IRI to Accelerator.
"@/System/Volumes/Data/SWE/macOS/BuildRoots/577555a5c2/Library/Caches/com.apple.xbs/Sources/GPUDriversAMD/GPUDriversAMD-4.5.14/Common/IONDRV/ATI/AMDUniversalFramebuffer/AMDUniversalFramebuffer/Controller/Controllers/AmdRadeonController.cpp:1808
Backtrace (CPU 0), Frame : Return Address
0xffffffa1a63db6f0 : 0xffffff8010c8e0dd mach_kernel : _handle_debugger_trap + 0x3fd
0xffffffa1a63db740 : 0xffffff8010dd4f33 mach_kernel : _kdp_i386_trap + 0x143
0xffffffa1a63db780 : 0xffffff8010dc552a mach_kernel : _kernel_trap + 0x55a
0xffffffa1a63db7d0 : 0xffffff8010c32a2f mach_kernel : _return_from_trap + 0xff
0xffffffa1a63db7f0 : 0xffffff8010c8d8fd mach_kernel : _DebuggerTrapWithState + 0xad
0xffffffa1a63db910 : 0xffffff8010c8dbf3 mach_kernel : _panic_trap_to_debugger + 0x273
0xffffffa1a63db980 : 0xffffff801149d81a mach_kernel : _panic + 0x54
0xffffffa1a63db9f0 : 0xffffff7f9f93efc9 com.apple.kext.AMDRadeonX6000Framebuffer : __ZN34AMDRadeonX6000_AmdRadeonController10doGPUPanicEPKcz + 0x171
0xffffffa1a63dba80 : 0xffffff7f9f905071 com.apple.kext.AMDRadeonX6000Framebuffer : __ZN33AMDRadeonX6000_AmdPowerPlayHelper7powerUpEv + 0x6d
0xffffffa1a63dbac0 : 0xffffff7f9f93df56 com.apple.kext.AMDRadeonX6000Framebuffer : __ZN34AMDRadeonX6000_AmdRadeonController7powerUpEv + 0x156
0xffffffa1a63dbb10 : 0xffffff7f9f90974c com.apple.kext.AMDRadeonX6000Framebuffer : __ZN35AMDRadeonX6000_AmdRadeonFramebuffer16enableControllerEv + 0x42
0xffffffa1a63dbb70 : 0xffffff7fabb4905e com.apple.iokit.IOGraphicsFamily : __ZN13IOFramebuffer4openEv + 0x612
0xffffffa1a63dbbf0 : 0xffffff7fabb3f31a com.apple.iokit.IOGraphicsFamily : __ZN13IOFramebuffer13newUserClientEP4taskPvjPP12IOUserClient + 0x264
0xffffffa1a63dbc80 : 0xffffff80113be9cb mach_kernel : __ZN9IOService13newUserClientEP4taskPvjP12OSDictionaryPP12IOUserClient + 0x6b
0xffffffa1a63dbce0 : 0xffffff8011426d43 mach_kernel : _is_io_service_open_extended + 0x183
0xffffffa1a63dbd40 : 0xffffff8010d803ff mach_kernel : _iokit_server_routine + 0x486f
0xffffffa1a63dbd90 : 0xffffff8010c9375d mach_kernel : _ipc_kobject_server + 0x2fd
0xffffffa1a63dbe00 : 0xffffff8010c69cf5 mach_kernel : _ipc_kmsg_send + 0x115
0xffffffa1a63dbe60 : 0xffffff8010c81312 mach_kernel : _mach_msg_overwrite_trap + 0x2d2
0xffffffa1a63dbef0 : 0xffffff8010da982d mach_kernel : _mach_call_munger64 + 0x29d
0xffffffa1a63dbfa0 : 0xffffff8010c33216 mach_kernel : _hndl_mach_scall64 + 0x16
Kernel Extensions in backtrace:
com.apple.iokit.IOGraphicsFamily(585.1)[C86E74DA-7406-3B47-A96E-CC4228F6546C]@0xffffff7fabb2f000->0xffffff7fabb5dfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[01799EF2-2C4A-3125-991D-AB121767E204]@0xffffff801376a000->0xffffff8013792fff
com.apple.kext.AMDRadeonX6000Framebuffer(4.0.5)[CAED8F19-49BC-3FF8-9C43-B7ED2F31AD74]@0xffffff7f9f8f6000->0xffffff7f9fb70fff
dependency: com.apple.AppleGraphicsDeviceControl(6.3.3)[D0B8F731-F258-393F-A5D4-6B370A8C006A]@0xffffff7faa34a000->0xffffff7faa34dfff
dependency: com.apple.iokit.IOACPIFamily(1.4)[17374C68-E837-3A87-BC8C-1870E7C0836E]@0xffffff8013242000->0xffffff8013243fff
dependency: com.apple.iokit.IOGraphicsFamily(585.1)[C86E74DA-7406-3B47-A96E-CC4228F6546C]@0xffffff7fabb2f000->0xffffff7fabb5dfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[01799EF2-2C4A-3125-991D-AB121767E204]@0xffffff801376a000->0xffffff8013792fff

This would lend credence to the idea that spoofing this way actually works, but the driver simply can't handle the XTXH variants at all up 'til now.
 
Last edited:
Are you sure about the PCI path? The one in your file points towards my RX580, and when applied as-is leads to getting stuck somewhere along the boot process (which seems sensical to me).
Changing the PCI path to my actual RX 6900 XT allows me to boot, but does not modify the ID. It remains at 0x73AF.

Edit: Spoofing via SSDT, I managed to produce a kernel panic whose log I was able to save upon the next reboot:
panic(cpu 0 caller 0xffffff7f9f93efc9): "[103:0:0][PPLIB] Failed to send PPLIB IRI to Accelerator.
"@/System/Volumes/Data/SWE/macOS/BuildRoots/577555a5c2/Library/Caches/com.apple.xbs/Sources/GPUDriversAMD/GPUDriversAMD-4.5.14/Common/IONDRV/ATI/AMDUniversalFramebuffer/AMDUniversalFramebuffer/Controller/Controllers/AmdRadeonController.cpp:1808
Backtrace (CPU 0), Frame : Return Address
0xffffffa1a63db6f0 : 0xffffff8010c8e0dd mach_kernel : _handle_debugger_trap + 0x3fd
0xffffffa1a63db740 : 0xffffff8010dd4f33 mach_kernel : _kdp_i386_trap + 0x143
0xffffffa1a63db780 : 0xffffff8010dc552a mach_kernel : _kernel_trap + 0x55a
0xffffffa1a63db7d0 : 0xffffff8010c32a2f mach_kernel : _return_from_trap + 0xff
0xffffffa1a63db7f0 : 0xffffff8010c8d8fd mach_kernel : _DebuggerTrapWithState + 0xad
0xffffffa1a63db910 : 0xffffff8010c8dbf3 mach_kernel : _panic_trap_to_debugger + 0x273
0xffffffa1a63db980 : 0xffffff801149d81a mach_kernel : _panic + 0x54
0xffffffa1a63db9f0 : 0xffffff7f9f93efc9 com.apple.kext.AMDRadeonX6000Framebuffer : __ZN34AMDRadeonX6000_AmdRadeonController10doGPUPanicEPKcz + 0x171
0xffffffa1a63dba80 : 0xffffff7f9f905071 com.apple.kext.AMDRadeonX6000Framebuffer : __ZN33AMDRadeonX6000_AmdPowerPlayHelper7powerUpEv + 0x6d
0xffffffa1a63dbac0 : 0xffffff7f9f93df56 com.apple.kext.AMDRadeonX6000Framebuffer : __ZN34AMDRadeonX6000_AmdRadeonController7powerUpEv + 0x156
0xffffffa1a63dbb10 : 0xffffff7f9f90974c com.apple.kext.AMDRadeonX6000Framebuffer : __ZN35AMDRadeonX6000_AmdRadeonFramebuffer16enableControllerEv + 0x42
0xffffffa1a63dbb70 : 0xffffff7fabb4905e com.apple.iokit.IOGraphicsFamily : __ZN13IOFramebuffer4openEv + 0x612
0xffffffa1a63dbbf0 : 0xffffff7fabb3f31a com.apple.iokit.IOGraphicsFamily : __ZN13IOFramebuffer13newUserClientEP4taskPvjPP12IOUserClient + 0x264
0xffffffa1a63dbc80 : 0xffffff80113be9cb mach_kernel : __ZN9IOService13newUserClientEP4taskPvjP12OSDictionaryPP12IOUserClient + 0x6b
0xffffffa1a63dbce0 : 0xffffff8011426d43 mach_kernel : _is_io_service_open_extended + 0x183
0xffffffa1a63dbd40 : 0xffffff8010d803ff mach_kernel : _iokit_server_routine + 0x486f
0xffffffa1a63dbd90 : 0xffffff8010c9375d mach_kernel : _ipc_kobject_server + 0x2fd
0xffffffa1a63dbe00 : 0xffffff8010c69cf5 mach_kernel : _ipc_kmsg_send + 0x115
0xffffffa1a63dbe60 : 0xffffff8010c81312 mach_kernel : _mach_msg_overwrite_trap + 0x2d2
0xffffffa1a63dbef0 : 0xffffff8010da982d mach_kernel : _mach_call_munger64 + 0x29d
0xffffffa1a63dbfa0 : 0xffffff8010c33216 mach_kernel : _hndl_mach_scall64 + 0x16
Kernel Extensions in backtrace:
com.apple.iokit.IOGraphicsFamily(585.1)[C86E74DA-7406-3B47-A96E-CC4228F6546C]@0xffffff7fabb2f000->0xffffff7fabb5dfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[01799EF2-2C4A-3125-991D-AB121767E204]@0xffffff801376a000->0xffffff8013792fff
com.apple.kext.AMDRadeonX6000Framebuffer(4.0.5)[CAED8F19-49BC-3FF8-9C43-B7ED2F31AD74]@0xffffff7f9f8f6000->0xffffff7f9fb70fff
dependency: com.apple.AppleGraphicsDeviceControl(6.3.3)[D0B8F731-F258-393F-A5D4-6B370A8C006A]@0xffffff7faa34a000->0xffffff7faa34dfff
dependency: com.apple.iokit.IOACPIFamily(1.4)[17374C68-E837-3A87-BC8C-1870E7C0836E]@0xffffff8013242000->0xffffff8013243fff
dependency: com.apple.iokit.IOGraphicsFamily(585.1)[C86E74DA-7406-3B47-A96E-CC4228F6546C]@0xffffff7fabb2f000->0xffffff7fabb5dfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[01799EF2-2C4A-3125-991D-AB121767E204]@0xffffff801376a000->0xffffff8013792fff

This would lend credence to the idea that spoofing this way actually works, but the driver simply can't handle the XTXH variants at all up 'til now.
You should remove the 580 for this to work.
 
Decisions decisions!! :)

1 hour 15 minutes left to decide...


Screen Shot 2021-05-11 at 12.04.08 PM.png
 
Finally, it's alive! MSI 6800xt Gaming X Trio 3xDisplayport 1x HDMI Running triple 4k.

Few bits of strange behaviour, seems like OSX is hogging a lot of memory compared to when I was using the 5700xt and it goes to full memory utilisation when I load logic. Oddly I can no longer boot when monitors plugged into the 5700xt, but I'll be removing that shortly so I get full 16xPCI on the 6800xt.

Overall seems a success,

So after removing the 5700xt there's a marginal improvement in metal, also looks like the memory utilisation has drop quite a bit too
View attachment 516141
Are you still happy with the MSI 6800 XT Gaming X Trio? Wish they had kept the USB-C port.
 
Are you still happy with the MSI 6800 XT Gaming X Trio? Wish they had kept the USB-C port.
Go for it, or wait another year for the price to come down?
 
It looks like Sapphire 6800 is 0x73BF too.
What cards can we use without a hassle?
Basically all the reference design cards, 6800-6900XTX. It seems the XTX(H) models are the problem cards.

I have that card it works great.
 
Back
Top