Contribute
Register

[Success] AMD RX6000 Series working in macOS

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.
 
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.
 
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: 366
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.
 
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:
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)
 
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:
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?
 
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:

 
Back
Top