Contribute
Register

[Success] AMD RX6000 Series working in macOS

Joined
Jan 20, 2017
Messages
28
Motherboard
Gigabyte Z170X-UH3
CPU
i7-6700
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Air
  3. MacBook Pro
Mobile Phone
  1. iOS
thanks @CaseySJ
yes I think I read almost all the messages before getting bored
nothing is very clear, -weggoff, pikera or not, with some, not with others users.
I understand that it depends on smbios 7.1 or 19.1. HDMI or DP
output black screen during boot ... or during a new installation ... depend of brands.
0x73BF is the only thing certain now.
things got murky when the posts started talking about Bios XT, XTX and XTX (h). sometimes in contradiction according to the models of cards with the site technopowerup.
suddenly my hands started to get sweaty ...
that's why I preferred to ask you directly.
 

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
20,493
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
thanks @CaseySJ
yes I think I read almost all the messages before getting bored
nothing is very clear, -weggoff, pikera or not, with some, not with others users.
I understand that it depends on smbios 7.1 or 19.1. HDMI or DP
output black screen during boot ... or during a new installation ... depend of brands.
0x73BF is the only thing certain now.
things got murky when the posts started talking about Bios XT, XTX and XTX (h). sometimes in contradiction according to the models of cards with the site technopowerup.
suddenly my hands started to get sweaty ...
that's why I preferred to ask you directly.
Haha! I understand. :)

All 6800-series cards need a little bit of experimentation to see which product name (MacPro or iMac, etc) and which boot arguments work best. This card is 0x73BF, so it is natively supported in Big Sur. The devil is always in the little details. I just wish that this card contained one USB-C port because I have two 4K monitors with USB-C video input.
 
Joined
Dec 11, 2016
Messages
44
Motherboard
Asrock TRX40 Creator
CPU
AMD 3970x
Graphics
Sapphire RX 6900XT Toxic Extreme Edition (Device ID 0x73AF)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
SUCCESS: My Sapphire RX 6900XT Toxic Extreme Edition (Device ID 0x73AF) now works !!!!!!

I would like to thank the CaseySJ for providing the files needed to get my video card working.
These files and explanations are located at:
https://www.tonymacx86.com/threads/success-radeon-rx-6800-xt-big-sur.306736/post-2244068
and
https://www.tonymacx86.com/threads/success-radeon-rx-6800-xt-big-sur.306736/post-2244286
Also FakePCIID.kext is needed.

My EFI is attached.

Before EFI Changes:

Picture1.png



Picture2.png

My System: Using gfxutil:
03:00.0 1002:73af /PCI0@0/D0A0@1,1/D0A7@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I modified \ACPI\SSDT-Change-GPU-Device-ID.dsl to match my system and compiled with MaciASL.app to create SSDT-Change-GPU-Device-ID.aml. (This was to fake out the PCI-Bridge).

I used \Kexts\FakePCIID.kext & \Kexts\FakePCIID_RX6000_Graphics.kext with no changes.

After EFI changes:


Picture3.png



Picture4.png

IORegistryExplorer.app

Picture5.png
 

Attachments

  • EFI_Rocket88.zip
    24.8 MB · Views: 311
Joined
Dec 11, 2016
Messages
44
Motherboard
Asrock TRX40 Creator
CPU
AMD 3970x
Graphics
Sapphire RX 6900XT Toxic Extreme Edition (Device ID 0x73AF)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Wait you got it working without reflashing card with invalid bios? what sorcery is this? cause I'm running my clock 400mhz slower using wrong bios.
I couldn't flash my card. The AMD Flasher would not let me do this because of mismatches and when I tried to edit my own BIOS, it told me to jump in the lake. Actually it said Error FL001 or something like that.
 
Joined
Jun 15, 2012
Messages
517
Motherboard
Gigabyte Z370 AORUS Gaming 7-F13
CPU
i7-8700K OC @ 5.1Ghz
Graphics
RX 6900 XT
Mac
  1. MacBook Pro
  2. Mac Pro
Classic Mac
  1. Performa
Mobile Phone
  1. iOS
I finally got that method working. I was using an older version of DSL that had RM, in front of device ID changer, that's why it was only changing name and not ID. i got it working now and that means now my card should be running at it's full clock rate.
 
Last edited:
Joined
Mar 28, 2019
Messages
131
Motherboard
Gigabyte X299X Designare 10G
CPU
i9-10980XE
Graphics
RX 580
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
Can confirm that this worked for me as well. It's a bit strange since I did the exact same thing some Betas prior. Maybe something changed internally in how this is handled which somehow made this possible recently. Alternatively maybe I just overlooked something obvious and that's why it didn't work.

Either way, my card also now runs via the Spoofed ID. This has had two effects:
- I lost HDMI Audio
- The coil whine has severely reduced (likely because it can now run with the proper VBIOS)
 
Joined
Jun 15, 2012
Messages
517
Motherboard
Gigabyte Z370 AORUS Gaming 7-F13
CPU
i7-8700K OC @ 5.1Ghz
Graphics
RX 6900 XT
Mac
  1. MacBook Pro
  2. Mac Pro
Classic Mac
  1. Performa
Mobile Phone
  1. iOS
Found a caveat to the Spoofed Id method. It downgrades metal feature set to just basic. it doesn't list V1 or V2 family specific features anymore. The injected Id also injects a custom name, but I tried to make that match name it'd normally be and it wasn't enough. Something else must be injected into the fake device to make it recognize as a genuine V2 metal feature set card.

it could also just be cosmetic only to system profiler. trying to find a program or terminal command that lets me query metal feature set version card is running.
 
Last edited:
Joined
Oct 24, 2013
Messages
1,160
Motherboard
Asus ROG Z690 Formula
CPU
i9-13900K
Graphics
RX 6900 XT
Mac
  1. iMac
  2. MacBook
  3. MacBook Pro
Mobile Phone
  1. iOS
Found a caveat to the Spoofed Id method. It downgrades metal feature set to just basic. it doesn't list V1 or V2 family specific features anymore. The injected Id also injects a custom name, but I tried to make that match name it'd normally be and it wasn't enough. Something else must be injected into the fake device to make it recognize as a genuine V2 metal feature set card.

it could also just be cosmetic only to system profiler. trying to find a program or terminal command that lets me query metal feature set version card is running.
What are benchmarks like with the spoofed device id? If they’re normal then probably not much to worry about?
 
Joined
Apr 5, 2021
Messages
60
Motherboard
Asus ROG Z690i Gaming Wifi
CPU
i7-12700KF
Graphics
RX 6900XT
Mac
  1. MacBook Pro
  2. Mac mini
Mobile Phone
  1. Android
  2. iOS
hey, i have the same problem. i have msi rx6800xt gaming trio with lg ultra wide monitor. when boot i get oc picker and i get verbose for a while. then monitor go to no signal until the login screen. i tried everything you mentioned also hdmi. still no difference. i used Radeon vii which doesn't had this problem. also i noticed when update mac os with this gpu no signal until the fully install and boot.
I have the same problem, MSI RX6800, OC 0.7.0, Gigabyte Z590 Vision G, dual monitor attached to DP port. I was using RX5700 and didn't have the problem. I see this on the kernel log.

Code:
2021-06-17 10:14:09.180896+0700  localhost kernel[0]: (AppleACPIPlatform) <AppleACPIPlatform`AcpiOsVprintf> VFCT 0x0000000039464000 00B084 (v01 ALASKA A M I    00000001 AMD  31504F47)
2021-06-17 10:14:09.180896+0700  localhost kernel[0]: (AppleACPIPlatform) <AppleACPIPlatform`AcpiOsVprintf> VFCT 0x0000000039464000 00B084 (v01 ALASKA A M I    00000001 AMD  31504F47)
2021-06-17 10:14:22.409221+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AMDRadeonX6000_AmdRadeonControllerNavi10::probe(IOService*, int*)> [3:0:0] AMDRadeonX6000_AmdRadeonControllerNavi10::probe() !!! FAIL: Check ID! device_id:0x73bf rev_id:0xc3
2021-06-17 10:14:22.473806+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAsicInit *AmdAsicInit::createAsicInit(AmdAtomFwHelper *) --- tableIndex:0, V 2.1.
2021-06-17 10:14:22.473810+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdDisplayControllerInit *AmdDisplayControllerInit::createDisplayControllerInit(AmdAtomFwHelper *) --- tableIndex:0xd, V 2.1.
2021-06-17 10:14:22.473812+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdDmcuService *AmdDmcuService::createDmcuService(AmdAtomFwHelper *) --- tableIndex:0x42, V 1.1.
2021-06-17 10:14:22.473814+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomFirmwareInfo *AmdAtomFirmwareInfo::createFirmwareInfo(AmdAtomFwHelper *, uint32_t) --- V 3.4.
2021-06-17 10:14:22.473816+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomDcInfo *AmdAtomDcInfo::createDcInfo(AmdAtomFwHelper *, uint32_t) --- V 4.4.
2021-06-17 10:14:22.473818+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomSmuInfo *AmdAtomSmuInfo::createSmuInfo(AmdAtomFwHelper *, uint32_t) --- V 3.5.
2021-06-17 10:14:22.473820+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomPspDirectory *AmdAtomPspDirectory::createPspDirectory(AmdAtomFwHelper *, uint32_t) --- V 2.6.
2021-06-17 10:14:22.473916+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomVramInfo *AmdAtomVramInfo::createVramInfo(AmdAtomFwHelper *, uint32_t) --- V 2.5.
2021-06-17 10:14:22.473923+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomVramUsageByFw *AmdAtomVramUsageByFw::createVramUsage(AmdAtomFwHelper *, uint32_t) --- V 2.1.
2021-06-17 10:14:22.473925+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomObjectInfo *AmdAtomObjectInfo::createObjectInfo(AmdAtomFwHelper *, uint32_t) --- V 1.4.
2021-06-17 10:14:22.473928+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AmdAtomFwHelper::debugPrint(unsigned int, char const*, ...) const> [3:0:0][ATOM][LIB] static AmdAtomGpioPinLut *AmdAtomGpioPinLut::createGpioPinLutTable(AmdAtomFwHelper *, uint32_t) --- V 2.1.
2021-06-17 10:14:22.475486+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::initialize(_TtlLibraryInitializationInput*)> [AMD INFO] TTL Interface: Boot mode Normal.
2021-06-17 10:14:23.225692+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::initialize(_TtlLibraryInitializationInput*)> [AMD INFO] TTL Interface: Boot mode Normal.
2021-06-17 10:14:23.227185+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::cosWritePciConfigData(void*, cos_access_pci_config_data_input*, cos_access_pci_config_data_output*)> AMD TTL COS:  [3:0:0]: Write PCI Config offset 0x60 size 2 data 0x20
2021-06-17 10:14:23.227188+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::cosWritePciConfigData(void*, cos_access_pci_config_data_input*, cos_access_pci_config_data_output*)> AMD TTL COS:  [3:0:1]: Write PCI Config offset 0x60 size 2 data 0x20
2021-06-17 10:14:23.228692+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::getFirmware(char const*, _TtlFwInfo*)> AMD Error:
2021-06-17 10:14:23.228694+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::cosReadFirmware(void*, cos_read_fw_input*, cos_read_fw_output*)> AMD Error:
2021-06-17 10:14:23.228727+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::cosWritePciConfigData(void*, cos_access_pci_config_data_input*, cos_access_pci_config_data_output*)> AMD TTL COS:  [3:0:0]: Write PCI Config offset 0x60 size 2 data 0x100
2021-06-17 10:14:23.228730+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::cosWritePciConfigData(void*, cos_access_pci_config_data_input*, cos_access_pci_config_data_output*)> AMD TTL COS:  [3:0:1]: Write PCI Config offset 0x60 size 2 data 0x100
2021-06-17 10:14:23.252633+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::amd_log_psp(void*, cos_write_amdlog_input*, char const*)> AMD TTL AMDLOG: [3:0:0] PSP: event_id=0x100211 event_info:type=2 hw_id=0 event_specific_tag=0x0 pData=0x0 data_size=0 psp_hardware_initialization finished loading PSP FWs
2021-06-17 10:14:23.284164+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::amd_log_psp(void*, cos_write_amdlog_input*, char const*)> AMD TTL AMDLOG: [3:0:0] PSP: event_id=0x180209 event_info:type=2 hw_id=0 event_specific_tag=0x0 pData=0x0 data_size=0 psp_hdcp_resume finished
2021-06-17 10:14:23.449330+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::amd_log_psp(void*, cos_write_amdlog_input*, char const*)> AMD TTL AMDLOG: [3:0:0] PSP: event_id=0x180209 event_info:type=2 hw_id=0 event_specific_tag=0x0 pData=0x0 data_size=0 psp_hdcp_initialize finished
2021-06-17 10:15:15.684493+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AMDRadeonX6000_AmdLogger::writeLog(LogType, LogSeverity, char const*, ...) const> [3:0:0] [AGDC] AMDRadeonX6000_AmdAgdcServices::vendor_doDeviceAttribute() ??? Controller is NOT enabled so SKIP. cmd:[       3].
2021-06-17 10:15:15.686600+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AMDRadeonX6000_AmdLogger::writeLog(LogType, LogSeverity, char const*, ...) const> [3:0:0] [FB:0] AmdRadeonFramebuffer::setCursorImage() !!! Driver is offline.
2021-06-17 10:15:15.686602+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AMDRadeonX6000_AmdLogger::writeLog(LogType, LogSeverity, char const*, ...) const> [3:0:0] [FB:1] AmdRadeonFramebuffer::setCursorImage() !!! Driver is offline.
2021-06-17 10:15:15.686604+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AMDRadeonX6000_AmdLogger::writeLog(LogType, LogSeverity, char const*, ...) const> [3:0:0] [FB:2] AmdRadeonFramebuffer::setCursorImage() !!! Driver is offline.
2021-06-17 10:15:15.686605+0700  localhost kernel[0]: (AMDRadeonX6000Framebuffer) <AMDRadeonX6000Framebuffer`AMDRadeonX6000_AmdLogger::writeLog(LogType, LogSeverity, char const*, ...) const> [3:0:0] [FB:3] AmdRadeonFramebuffer::setCursorImage() !!! Driver is offline.
2021-06-17 10:15:31.999532+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::pmRequestPower(void*, _TtlPmReqPwrInput*)> AMD Error:
2021-06-17 10:15:32.015264+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::pmRequestPower(void*, _TtlPmReqPwrInput*)> AMD Error:
2021-06-17 10:15:32.060543+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::pmRequestPower(void*, _TtlPmReqPwrInput*)> AMD Error:
2021-06-17 10:15:32.065383+0700  localhost kernel[0]: (AMDRadeonX6800HWLibs) <AMDRadeonX6800HWLibs`AmdTtlServices::pmRequestPower(void*, _TtlPmReqPwrInput*)> AMD Error:

 
Top