Contribute
Register

[Success] AMD RX6000 Series working in macOS

Well, gfxutil will show you correct path to GFX0. You have to insert it in DeviceProperties like on my screenshot. Just drag binary file on Terminal and press Return button.
SSDT-BRG0 is used to assign bridge name for your card. All Radeon cards starting from Vega works through extra bridge. You can see it in IOReg (PEG1->PEGP->pci-bridge->GFX0). In order to inject DeviceID to GFX0 you need to determine pci-bridge device in ACPI. If you did it correct your IOReg should look like this
View attachment 524909

Without this SSDT your deviceID for GFX0 will not be injected.
Also short description of this fix described in SSDT-BRG0 source code.

Thank you vandroiy :) I eventually got it working. Took some more research though. Over the years I have gotten pretty rusty as I have just been using CaseySJ's Z390 Designare OpenCore pack and not had to think much :)

By the way, where does the device-id of "BF730000" come from? Where did you figure that out from?

For those interested, I got a XFX Merc 319 6900 XT Limited Black card to work with Big Sur using the above method, on a Z390 Designare mobo.

I get a Metal score of 202000 on Geekbench 5.

View attachment 524942

Hi guys,

I'm trying to get my XTXH PowerColor Radeon RX 6900 XT 16 GB Red Devil Ultimate working in Big Sur 11.5 on the Z390 Designare. I thought I would have to send the GPU back but now I hear there is hope!

I've tried my hardest to follow the instructions on this post, but it's still not working properly. Here's what I've done so far and what it's currently doing.. any help to get it working would be most appreciated!

I used gfxutil to try and find the correct PCI path to GFX0. I ran the command and it showed a lot of code related to PCI. I searched for GFX0 and this is the only line with GFX0 in it:

PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I double checked that path to the GPU in hackintool PCIe list and it was the same.

In OpenCore configurator I added in DeviceProperties the following info:

Devices
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

Key / Value / Type
device-id / BF730000 / DATA
model / Radeon RX 6900 XT (XTXH) /STRING

I didn't really know what to do with SSDT-BRG0.dsl but I put it into the OC>ACPI folder. I tried to add it to ACPI section in OpenCore configurator with the other SSDT's but it only wanted to add .aml files so I'm guessing that's not neccesary so I didn't do that.

I opened SSDT-BRG0.dsl in notepad and it seemed that the path already in the example matched the address above so I didn't change anything.

When I boot up Big Sur and check Graphics/Displays in System Report it says 'Radeon RX 6900 XT (XTXH)' as specified in the config, but VRAM only 18mb and Device ID: 0x73af. (rather than the 0x73bf I'm assuming it needs to read to successfully spoof it.)

I'm sure I'm not using SSDT-BRG0.dsl properly and therefore failing this step:
'In order to inject DeviceID to GFX0 you need to determine pci-bridge device in ACPI.'

I'm also not familiar with IOReg or ACPI. So the step above: 'If you did it correct your IOReg should look like this' also throws me a bit. I feel I'm close - just need a bit more of a steer!

Any help would be very much appreciated,

Thanks so much!
 
Hi guys,

I'm trying to get my XTXH PowerColor Radeon RX 6900 XT 16 GB Red Devil Ultimate working in Big Sur 11.5 on the Z390 Designare. I thought I would have to send the GPU back but now I hear there is hope!

I've tried my hardest to follow the instructions on this post, but it's still not working properly. Here's what I've done so far and what it's currently doing.. any help to get it working would be most appreciated!

I used gfxutil to try and find the correct PCI path to GFX0. I ran the command and it showed a lot of code related to PCI. I searched for GFX0 and this is the only line with GFX0 in it:

PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I double checked that path to the GPU in hackintool PCIe list and it was the same.

In OpenCore configurator I added in DeviceProperties the following info:

Devices
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

Key / Value / Type
device-id / BF730000 / DATA
model / Radeon RX 6900 XT (XTXH) /STRING

I didn't really know what to do with SSDT-BRG0.dsl but I put it into the OC>ACPI folder. I tried to add it to ACPI section in OpenCore configurator with the other SSDT's but it only wanted to add .aml files so I'm guessing that's not neccesary so I didn't do that.

I opened SSDT-BRG0.dsl in notepad and it seemed that the path already in the example matched the address above so I didn't change anything.

When I boot up Big Sur and check Graphics/Displays in System Report it says 'Radeon RX 6900 XT (XTXH)' as specified in the config, but VRAM only 18mb and Device ID: 0x73af. (rather than the 0x73bf I'm assuming it needs to read to successfully spoof it.)

I'm sure I'm not using SSDT-BRG0.dsl properly and therefore failing this step:
'In order to inject DeviceID to GFX0 you need to determine pci-bridge device in ACPI.'

I'm also not familiar with IOReg or ACPI. So the step above: 'If you did it correct your IOReg should look like this' also throws me a bit. I feel I'm close - just need a bit more of a steer!

Any help would be very much appreciated,

Thanks so much!

I managed to get it working! Thanks everyone! I compiled the dsl file to aml. Had no idea I had to do that until someone commented on another post here. And now it works :) If you don't need to edit the dsl at all, there is a precompiled aml file in the latest OpenCore release in Docs folder so you can use that too. Nice one!
 
Hello,

Thank you very much and sorry for my English.

Could you explain it for newbies?

1. I already have the latest version of whatevergreen that comes with the necessary change.

2. What file do I have to fix the DeviceProperties to?

3. What do I have to modify in the SSDT-BRG0 file? I know that afterwards I have to compile to an .aml file and put it in the ACPI folder

Sorry if these are very basic questions, I've been with Hackintosh for years, but it's the first time I've made these kinds of changes.

Thanks!

Open your config.plist in open core configurator and add the PCI device info like attached screenshot (using your own GFX0 info).

You might not need to modify your SSDT-BRG0 file using MaciASL. If you do it's just substituting out the info you have with whats in there. Then compiling it to AML using MaciASL.
 

Attachments

  • Screenshot 2021-08-23 at 15.01.28.png
    Screenshot 2021-08-23 at 15.01.28.png
    140.1 KB · Views: 362
Open your config.plist in open core configurator and add the PCI device info like attached screenshot (using your own GFX0 info).

You might not need to modify your SSDT-BRG0 file using MaciASL. If you do it's just substituting out the info you have with whats in there. Then compiling it to AML using MaciASL.

Thank you very much, but it doesn't work for me.

When I enable SSDT-BRG0 in the config.plist on reboot I get a black screen.

gfxutil output:
Code:
00:00.0 8086:3e30 /PCI0@0/pci8086,3e30@0 = PciRoot(0x0)/Pci(0x0,0x0)
00:01.0 8086:1901 /PCI0@0/PEG0@1 = PciRoot(0x0)/Pci(0x1,0x0)
00:14.0 8086:a36d /PCI0@0/XHC@14 = PciRoot(0x0)/Pci(0x14,0x0)
00:14.2 8086:a36f /PCI0@0/pci8086,a36f@14,2 = PciRoot(0x0)/Pci(0x14,0x2)
00:16.0 8086:a360 /PCI0@0/IMEI@16 = PciRoot(0x0)/Pci(0x16,0x0)
01:00.0 1002:1478 /PCI0@0/PEG0@1/PEGP@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
00:17.0 8086:a352 /PCI0@0/SAT0@17 = PciRoot(0x0)/Pci(0x17,0x0)
00:1b.0 8086:a340 /PCI0@0/RP17@1B = PciRoot(0x0)/Pci(0x1B,0x0)
00:1b.4 8086:a32c /PCI0@0/RP21@1B,4 = PciRoot(0x0)/Pci(0x1B,0x4)
00:1c.0 8086:a338 /PCI0@0/RP01@1C = PciRoot(0x0)/Pci(0x1C,0x0)
00:1c.7 8086:a33f /PCI0@0/RP08@1C,7 = PciRoot(0x0)/Pci(0x1C,0x7)
00:1d.0 8086:a330 /PCI0@0/RP09@1D = PciRoot(0x0)/Pci(0x1D,0x0)
00:1f.0 8086:a305 /PCI0@0/LPCB@1F = PciRoot(0x0)/Pci(0x1F,0x0)
00:1f.3 8086:a348 /PCI0@0/HDEF@1F,3 = PciRoot(0x0)/Pci(0x1F,0x3)
00:1f.4 8086:a323 /PCI0@0/SBUS@1F,4 = PciRoot(0x0)/Pci(0x1F,0x4)
00:1f.5 8086:a324 /PCI0@0/pci8086,a324@1F,5 = PciRoot(0x0)/Pci(0x1F,0x5)
00:1f.6 8086:15bc /PCI0@0/GLAN@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)
02:00.0 1002:1479 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
07:00.0 14e4:43a0 /PCI0@0/RP08@1C,7/PXSX@0 = PciRoot(0x0)/Pci(0x1C,0x7)/Pci(0x0,0x0)
05:00.0 1987:5012 /PCI0@0/RP21@1B,4/PXSX@0 = PciRoot(0x0)/Pci(0x1B,0x4)/Pci(0x0,0x0)
08:00.0 1987:5012 /PCI0@0/RP09@1D/PXSX@0 = PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)
03:00.0 1002:73af /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
03:00.1 1002:ab28 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)
03:00.2 1002:73a6 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/pci1002,73a6@0,2 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x2)
03:00.3 1002:73a4 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/pci1002,73a4@0,3 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x3)
 

Attachments

  • Captura de pantalla 2021-08-24 a las 19.55.20.png
    Captura de pantalla 2021-08-24 a las 19.55.20.png
    91.2 KB · Views: 221
  • Captura de pantalla 2021-08-24 a las 19.57.06.png
    Captura de pantalla 2021-08-24 a las 19.57.06.png
    59.4 KB · Views: 220
  • Captura de pantalla 2021-08-24 a las 19.57.37.png
    Captura de pantalla 2021-08-24 a las 19.57.37.png
    104.2 KB · Views: 219
  • Captura de pantalla 2021-08-24 a las 20.38.06.png
    Captura de pantalla 2021-08-24 a las 20.38.06.png
    221.7 KB · Views: 222
Thank you very much, but it doesn't work for me.

When I enable SSDT-BRG0 in the config.plist on reboot I get a black screen.

gfxutil output:
Code:
00:00.0 8086:3e30 /PCI0@0/pci8086,3e30@0 = PciRoot(0x0)/Pci(0x0,0x0)
00:01.0 8086:1901 /PCI0@0/PEG0@1 = PciRoot(0x0)/Pci(0x1,0x0)
00:14.0 8086:a36d /PCI0@0/XHC@14 = PciRoot(0x0)/Pci(0x14,0x0)
00:14.2 8086:a36f /PCI0@0/pci8086,a36f@14,2 = PciRoot(0x0)/Pci(0x14,0x2)
00:16.0 8086:a360 /PCI0@0/IMEI@16 = PciRoot(0x0)/Pci(0x16,0x0)
01:00.0 1002:1478 /PCI0@0/PEG0@1/PEGP@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
00:17.0 8086:a352 /PCI0@0/SAT0@17 = PciRoot(0x0)/Pci(0x17,0x0)
00:1b.0 8086:a340 /PCI0@0/RP17@1B = PciRoot(0x0)/Pci(0x1B,0x0)
00:1b.4 8086:a32c /PCI0@0/RP21@1B,4 = PciRoot(0x0)/Pci(0x1B,0x4)
00:1c.0 8086:a338 /PCI0@0/RP01@1C = PciRoot(0x0)/Pci(0x1C,0x0)
00:1c.7 8086:a33f /PCI0@0/RP08@1C,7 = PciRoot(0x0)/Pci(0x1C,0x7)
00:1d.0 8086:a330 /PCI0@0/RP09@1D = PciRoot(0x0)/Pci(0x1D,0x0)
00:1f.0 8086:a305 /PCI0@0/LPCB@1F = PciRoot(0x0)/Pci(0x1F,0x0)
00:1f.3 8086:a348 /PCI0@0/HDEF@1F,3 = PciRoot(0x0)/Pci(0x1F,0x3)
00:1f.4 8086:a323 /PCI0@0/SBUS@1F,4 = PciRoot(0x0)/Pci(0x1F,0x4)
00:1f.5 8086:a324 /PCI0@0/pci8086,a324@1F,5 = PciRoot(0x0)/Pci(0x1F,0x5)
00:1f.6 8086:15bc /PCI0@0/GLAN@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)
02:00.0 1002:1479 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
07:00.0 14e4:43a0 /PCI0@0/RP08@1C,7/PXSX@0 = PciRoot(0x0)/Pci(0x1C,0x7)/Pci(0x0,0x0)
05:00.0 1987:5012 /PCI0@0/RP21@1B,4/PXSX@0 = PciRoot(0x0)/Pci(0x1B,0x4)/Pci(0x0,0x0)
08:00.0 1987:5012 /PCI0@0/RP09@1D/PXSX@0 = PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)
03:00.0 1002:73af /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
03:00.1 1002:ab28 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)
03:00.2 1002:73a6 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/pci1002,73a6@0,2 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x2)
03:00.3 1002:73a4 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/pci1002,73a4@0,3 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x3)
I have gotten it to work, but only through the hdmi port. Do you know if there is a problem with displayPort?

EDIT:

Ok, I've been doing my research.

By displayPort supports a maximum frequency of 120Hz
By HDMI 2.0 Supports up to 144Hz

My screen is 165Hz, but it does not work through any port at this frequency.
 
Last edited:
I would buy POWERCOLOR AXRX 6900XT 16GBD6-3DHE/OC RX 6900 XT 16GB GDDR6 Red Devil. Does somebody try this card?
 
Hi all,

are there specific models suggested and not suggested for a RX 6800 XT card? Some have a wrong device-ID I've read.
Beside the boot arg agpmod=pikera is there anything esle to do to make it work?
Can the card run on 19,1 SMBIOS or it requires MacPRO7,1 or iMacPRO1,1?

Thanks for your help.
 
Thank you very much, but it doesn't work for me.

When I enable SSDT-BRG0 in the config.plist on reboot I get a black screen.

gfxutil output:
Code:
00:00.0 8086:3e30 /PCI0@0/pci8086,3e30@0 = PciRoot(0x0)/Pci(0x0,0x0)
00:01.0 8086:1901 /PCI0@0/PEG0@1 = PciRoot(0x0)/Pci(0x1,0x0)
00:14.0 8086:a36d /PCI0@0/XHC@14 = PciRoot(0x0)/Pci(0x14,0x0)
00:14.2 8086:a36f /PCI0@0/pci8086,a36f@14,2 = PciRoot(0x0)/Pci(0x14,0x2)
00:16.0 8086:a360 /PCI0@0/IMEI@16 = PciRoot(0x0)/Pci(0x16,0x0)
01:00.0 1002:1478 /PCI0@0/PEG0@1/PEGP@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
00:17.0 8086:a352 /PCI0@0/SAT0@17 = PciRoot(0x0)/Pci(0x17,0x0)
00:1b.0 8086:a340 /PCI0@0/RP17@1B = PciRoot(0x0)/Pci(0x1B,0x0)
00:1b.4 8086:a32c /PCI0@0/RP21@1B,4 = PciRoot(0x0)/Pci(0x1B,0x4)
00:1c.0 8086:a338 /PCI0@0/RP01@1C = PciRoot(0x0)/Pci(0x1C,0x0)
00:1c.7 8086:a33f /PCI0@0/RP08@1C,7 = PciRoot(0x0)/Pci(0x1C,0x7)
00:1d.0 8086:a330 /PCI0@0/RP09@1D = PciRoot(0x0)/Pci(0x1D,0x0)
00:1f.0 8086:a305 /PCI0@0/LPCB@1F = PciRoot(0x0)/Pci(0x1F,0x0)
00:1f.3 8086:a348 /PCI0@0/HDEF@1F,3 = PciRoot(0x0)/Pci(0x1F,0x3)
00:1f.4 8086:a323 /PCI0@0/SBUS@1F,4 = PciRoot(0x0)/Pci(0x1F,0x4)
00:1f.5 8086:a324 /PCI0@0/pci8086,a324@1F,5 = PciRoot(0x0)/Pci(0x1F,0x5)
00:1f.6 8086:15bc /PCI0@0/GLAN@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)
02:00.0 1002:1479 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
07:00.0 14e4:43a0 /PCI0@0/RP08@1C,7/PXSX@0 = PciRoot(0x0)/Pci(0x1C,0x7)/Pci(0x0,0x0)
05:00.0 1987:5012 /PCI0@0/RP21@1B,4/PXSX@0 = PciRoot(0x0)/Pci(0x1B,0x4)/Pci(0x0,0x0)
08:00.0 1987:5012 /PCI0@0/RP09@1D/PXSX@0 = PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)
03:00.0 1002:73af /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
03:00.1 1002:ab28 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)
03:00.2 1002:73a6 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/pci1002,73a6@0,2 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x2)
03:00.3 1002:73a4 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/pci1002,73a4@0,3 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x3)

Ok im no expert, but something about the device ID on your screenshot showing 0x73af and not 0x73bf means thats the SSDT-BRG0.aml file isn't being injected properly.. mac OS is still seeing the card as the unsupported device id and isn't being spoofed. looking at your PCI path to GFX0 it doesn't look like you need to edit the SSDT-BRG0.aml at all - but only thing to double check is have you added SSDT-BRG0.aml to ACPI section in OpenCore Configurator? See attached screenshot. Also try the .aml file I have used successfully (attached) which is the same path as yours. And also worth downloading latest whatevergreen kext as well? And if that doesn't work try latest OpenCore release while your at it?
 

Attachments

  • ACPI.png
    ACPI.png
    93.7 KB · Views: 252
  • SSDT-BRG0.aml
    108 bytes · Views: 242
I would buy POWERCOLOR AXRX 6900XT 16GBD6-3DHE/OC RX 6900 XT 16GB GDDR6 Red Devil. Does somebody try this card?

From a quick google search:

There are currently there are 6 XTXH models on the market:

1) ASRock AMD Radeon RX 6900 XT OC Formula 16GB

2) ASUS ROG-STRIX-LC- RX6900XT -T16G-GAMING

3) Gigabyte AORUS Radeon™ RX 6900 XT XTREME WATERFORCE WB 16G

4) PowerColor Liquid Devil AMD Radeon™ RX 6900 XT Ultimate 16GB GDDR6

5) PowerColor Red Devil AMD Radeon™ RX 6900 XT Ultimate 16GB GDDR6

6) Sapphire TOXIC AMD Radeon™ RX 6900 XT Extreme Edition

I've successfully spoofed the PowerColor Red Devil AMD Radeon™ RX 6900 XT Ultimate 16GB GDDR6 to work on a hackintosh. I don't know if you can get them to work in an actual MacPro or not.
 
Ok im no expert, but something about the device ID on your screenshot showing 0x73af and not 0x73bf means thats the SSDT-BRG0.aml file isn't being injected properly.. mac OS is still seeing the card as the unsupported device id and isn't being spoofed. looking at your PCI path to GFX0 it doesn't look like you need to edit the SSDT-BRG0.aml at all - but only thing to double check is have you added SSDT-BRG0.aml to ACPI section in OpenCore Configurator? See attached screenshot. Also try the .aml file I have used successfully (attached) which is the same path as yours. And also worth downloading latest whatevergreen kext as well? And if that doesn't work try latest OpenCore release while your at it?

Now it is working, the problem is that I had the monitor at a frequency of 165Hz and apparently it only supports up to 120Hz (My old Vega64 could use the screen at 165Hz without problems)

Many thanks!! Without your help I would never have done it!
 
Back
Top