Contribute
Register

Radeon RX 6950 XT

Basically what you are saying is to use Corpnewt's SSDTTime script to generate the missing PCI Bridge section, then try the spoof with deviceproperties to see if it just works that way.
No these are two different methods of spoofing the dGPU. You need to use one or the other, not both at the same time.

If you continue with the SSDT method to spoof the dGPU you need to use Corpnewt's SSDTTime to confirm the missing section of the IOReg device path (pci-bridge) and add the GFX0 part to the SSDT as well.

If you decide to use the DeviceProperties method, add a new section using the IOReg path to the DeviceProperties > Add section in your config.plist, along with a child entry for the fake dGPU device-id. Model name too if you want it named correctly.

PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
device-id > Data > <BF730000>​
model > String > Sapphire Radeon RX 6950 XT​
 
No these are two different methods of spoofing the dGPU. You need to use one or the other, not both at the same time.

I understood they were two different way of accomplishing the same thing, tried the kext file but I am getting panics after a couple of minutes. I'll try the SSDT method later, I wish the NootRX way worked. Thanks a lot.
 
update, I worked on this all evening, no way I can make NootRX work unfortunately, I get reboots every time with the error and EFI posted in my message on page 5.

So I used SSDTTime script to generate the missing PCI Bridge section and then followed instructions here:

PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
device-id > Data > <BF730000>model > String > Sapphire Radeon RX 6950 XT

System now recognize GPU and I am getting over 220 or so score in geekbench6 metal.

I hope tomorrow the system will be stable, did not have time to monitor it after I was done to see if it reboots on its own.

I wish NootRX would work because metal scores were a little higher but that's what it is for now.

Thanks again for all your help, I appreciate it.
 
nothing, unfortunately I keep getting panics with the 6950 installed. I tried NootRX, it works, card correctly recognized and performing well but after a few minutes the system reboots.

So I created the bridge with sstd time and used the device properties method, same thing, card working and performing well but panic after a few minutes.

I have been using this system for years with no panics with the rx570, don't know exactly where to go from here, will try some more tests later today. This is the last panic a few minutes ago when I was using the device propertie method.


panic(cpu 2 caller 0xffffff800e3b4f03): Kernel trap at 0xffffff8010cbdf10, type 14=page fault, registers:
CR0: 0x0000000080010033, CR2: 0x0000000000000058, CR3: 0x000000107486901f, CR4: 0x00000000003626e0
RAX: 0x0000000000000000, RBX: 0xffffff90c3aab858, RCX: 0x0000000000002000, RDX: 0x0000000000000015
RSP: 0xffffffd0e5de3ac0, RBP: 0xffffffd0e5de3af0, RSI: 0xffffff90c3aab858, RDI: 0xffffff872c9f5d80
R8: 0x0000000000000073, R9: 0xffffff959284f7b0, R10: 0x000000000000573f, R11: 0xffffffd0e5de3bc8
R12: 0xffffff800f0a3988, R13: 0x00000000e00002e2, R14: 0xffffff872c9f5d80, R15: 0xffffff959284f78c
RFL: 0x0000000000010246, RIP: 0xffffff8010cbdf10, CS: 0x0000000000000008, SS: 0x0000000000000010
Fault CR2: 0x0000000000000058, Error code: 0x0000000000000000, Fault CPU: 0x2, PL: 0, VF: 0

Panicked task 0xffffff8bf6451bf8: 3 threads: pid 83: systemstats
Backtrace (CPU 2), panicked thread: 0xffffff8beef1db30, Frame : Return Address
0xffffffd0e5de34a0 : 0xffffff800e270c7d mach_kernel : _handle_debugger_trap + 0x4ad
0xffffffd0e5de34f0 : 0xffffff800e3c4f54 mach_kernel : _kdp_i386_trap + 0x114
0xffffffd0e5de3530 : 0xffffff800e3b4a67 mach_kernel : _kernel_trap + 0x3b7
0xffffffd0e5de3580 : 0xffffff800e211971 mach_kernel : _return_from_trap + 0xc1
0xffffffd0e5de35a0 : 0xffffff800e270f5d mach_kernel : _DebuggerTrapWithState + 0x5d
0xffffffd0e5de3690 : 0xffffff800e270607 mach_kernel : _panic_trap_to_debugger + 0x1a7
0xffffffd0e5de36f0 : 0xffffff800e9db9ab mach_kernel : _panic + 0x84
0xffffffd0e5de37e0 : 0xffffff800e3b4f03 mach_kernel : _sync_iss_to_iks + 0x2c3
0xffffffd0e5de3960 : 0xffffff800e3b4bed mach_kernel : _kernel_trap + 0x53d
0xffffffd0e5de39b0 : 0xffffff800e211971 mach_kernel : _return_from_trap + 0xc1
0xffffffd0e5de39d0 : 0xffffff8010cbdf10 com.apple.iokit.IOPCIFamily : __ZNK11IOPCIDevice11getPropertyEPK8OSSymbol + 0x76
0xffffffd0e5de3af0 : 0xffffff800e8d8a44 mach_kernel : __ZNK15IORegistryEntry11getPropertyEPKc + 0x24
0xffffffd0e5de3b10 : 0xffffff801250520d as.vit9696.WhateverGreen : _orgVaddrPresubmitTrampoline + 0x73d8
0xffffffd0e5de3bc0 : 0xffffff800e8d8f5e mach_kernel : __ZNK15IORegistryEntry12copyPropertyEPKc + 0x4e
0xffffffd0e5de3bf0 : 0xffffff800e950343 mach_kernel : _is_io_registry_entry_get_property_bin_buf + 0x143
0xffffffd0e5de3c60 : 0xffffff800e37335f mach_kernel : _iokit_server_routine + 0x51cf
0xffffffd0e5de3cc0 : 0xffffff800e24b09a mach_kernel : _ipc_kmsg_send + 0x41a
0xffffffd0e5de3d60 : 0xffffff800e261e52 mach_kernel : _mach_msg_overwrite_trap + 0x592
0xffffffd0e5de3dd0 : 0xffffff800e2624d7 mach_kernel : _mach_msg2_trap + 0x3c7
0xffffffd0e5de3ef0 : 0xffffff800e39a383 mach_kernel : _mach_call_munger64 + 0x1f3
0xffffffd0e5de3fa0 : 0xffffff800e211dd6 mach_kernel : _hndl_mach_scall64 + 0x16
Kernel Extensions in backtrace:
com.apple.iokit.IOPCIFamily(2.9)[18153FB8-529A-32CC-9C31-57F159E58DC6]@0xffffff8010cac000->0xffffff8010cddfff
as.vit9696.WhateverGreen(1.6.6)[076490C9-E52A-386D-8DCC-A7BD151E6791]@0xffffff80124fd000->0xffffff801257cfff
dependency: as.vit9696.Lilu(1.6.7)[087C34D2-49F8-3FDA-8757-27E9425C9EE4]@0xffffff8012454000->0xffffff801247ffff
dependency: com.apple.iokit.IOPCIFamily(2.9)[18153FB8-529A-32CC-9C31-57F159E58DC6]@0xffffff8010cac000->0xffffff8010cddfff

Process name corresponding to current thread (0xffffff8beef1db30): systemstats
Boot args: keepsyms=1 debug=0x100 agdpmod=pikera -radcodec alcid=11 shikigva=80 -v

Mac OS version:
22G313

Kernel version:
Darwin Kernel Version 22.6.0: Wed Oct 4 21:25:26 PDT 2023; root:xnu-8796.141.3.701.17~4/RELEASE_X86_64
Kernel UUID: 6059599F-7994-349C-8DC6-03F3B60C83DE
roots installed: 0
KernelCache slide: 0x000000000de00000
KernelCache base: 0xffffff800e000000
Kernel slide: 0x000000000dedc000
Kernel text base: 0xffffff800e0dc000
__HIB text base: 0xffffff800df00000
System model name: iMac19,1 (Mac-AA95B1DDAB278B95)
System shutdown begun: NO
Panic diags file available: YES (0x0)
Hibernation exit count: 0

System uptime in nanoseconds: 626460821379
Last Sleep: absolute base_tsc base_nano
Uptime : 0x00000091dbf98f23
Sleep : 0x0000000000000000 0x0000000000000000 0x0000000000000000
Wake : 0x0000000000000000 0x0000002188d821c0 0x0000000000000000
Compressor Info: 0% of compressed pages limit (OK) and 0% of segments limit (OK) with 0 swapfiles and OK swap space
Zone info:
Zone map: 0xffffff80bfb37000 - 0xffffffa0bfb37000
. PGZ : 0xffffff80bfb37000 - 0xffffff80c7b38000
. VM : 0xffffff80c7b38000 - 0xffffff85934d1000
. RO : 0xffffff85934d1000 - 0xffffff872c804000
. GEN0 : 0xffffff872c804000 - 0xffffff8bf819d000
. GEN1 : 0xffffff8bf819d000 - 0xffffff90c3b36000
. GEN2 : 0xffffff90c3b36000 - 0xffffff958f4cf000
. GEN3 : 0xffffff958f4cf000 - 0xffffff9a5ae69000
. DATA : 0xffffff9a5ae69000 - 0xffffffa0bfb37000
Metadata: 0xffffff8091b27000 - 0xffffff80b1b27000
Bitmaps : 0xffffff80b1b27000 - 0xffffff80bdb27000
Extra : 0 - 0
 
You shouldn't need these boot arguments when using NootRX.kext.

agdpmod=pikera -radcodec shikigva=80

They are only required when using WhateverGreen.kext.

The Shikigva=80 boot argument doesn't work in recent releases of macOS. All Shikigva boot arguments have been dropped since Big Sur was released due to changes Apple made to the OS.
 
thanks @Edhawk. The error pasted in my previous message is the one when I was using whatevergreen.kext. I will remove Shikigva=80 in any case.
 
I think I figured it out. I have been using (for years now) the EFI that was in @CaseySJ golden build here


That EFI has some kext that are present but then disabled in the config file (for example: 3 different options for the USB ports so people can choose what they want to use).

When I tried to modified it to make the 6950 work, I was using the clean snapshot and that was then loading everything in the config file.

When I realized the problem, I followed the same steps as before but using the snapshot (not clean) so it would just updated the config instead of rebuilding everything.

Now the system seems to be working fine with three 4k monitors, no panics yet.

And it works both with NootRX kext and the device property method.

I am attaching my working final EFI (NootRX version) in case it can be useful to others.

Thanks again for the help, I would not have been able to figure it out on my own.
 

Attachments

  • EFI.zip
    15.2 MB · Views: 46
Last edited:
Hello everyone, I am writing because I am trying all day to get my new Sapphire 6950xt working without positive results. While I was trying to understand the counterfeiting of devices and the creation of an SSDT for the pci-bridge (which drives me crazy), thanks to @Edhawk I found out about the news from the guys at NootRX, very good work for many, in my case not It works, I removed allgreen and all graphical arguments but my system won't boot, it loops on constant boot, I'm doing something wrong because there are a lot of people who are enjoying this new work. Then I tried to continue with device spoofing, which I have done:

- I start Windows (without Opencore)
- I run SSDT Time and generate the DSDT (p) and then generate an SSDT for the PCI-Bridge (9)
- The SSDT-Time generates a bridge with the PXSX variant, but I don't think it will work for me because in my ioreg, I already have two entries with this name, I change it to BRG0
- I start in Ventura and add the SSDT-Brige in ACPI, activate it and restart again but when I enter ioreg I do not find changes in the pci-bridge, I look for BRG0 and it does not exist.

I cannot generate an appropriate route for the forgery.

I would appreciate if someone could help me understand the process of creating the necessary SSDTs. I would also like to know if, apart from the SSDT Bridge, changes need to be made to the config.plist. I attach the information of my computer.
 

Attachments

  • Data.zip
    8.5 MB · Views: 16
I removed allgreen and all graphical arguments but my system won't boot

ok that you removed whatevergreen and the boot argument but did you add nootrx to the config?
 
Back
Top