- Joined
- Apr 20, 2012
- Messages
- 37
- Motherboard
- ASUS MAXIMUS VIII HERO
- CPU
- i7-6700K
- Graphics
- GTX 1080
- Mac
- Mobile Phone
The Radeon 5500M lists as GFX0 in the I/O Registry... I noticed that the 6900 XT listed two device-ids: <af 73 00 00> & <bf 73 00 00> in the I/O Registry. I found why: I typed "device_id" into the config.plist when it should've been "device-id" for DeviceProperties. I fixed that & tested it, but it still didn't work. I checked the I/O Registry and there's only 1 device-id now, but unfortunately, it's <af 73 00 00>.
The Radeon 5500M lists as GFX0 in the I/O Registry... I noticed that the 6900 XT listed two device-ids: <af 73 00 00> & <bf 73 00 00> in the I/O Registry. I found why: I typed "device_id" into the config.plist when it should've been "device-id" for DeviceProperties. I fixed that & tested it, but it still didn't work. I checked the I/O Registry and there's only 1 device-id now, but unfortunately, it's <af 73 00 00>.
/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG2@1,2/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/pci-bridge@0/IOPP/pci-bridge@0/IOPP/display@0
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRA0", "BRB0", "BRG0", 0x00000000)
/*
* This table provides an example of creating a missing ACPI device
* to ensure early DeviceProperty application. In this example
* a GPU device is created for a platform having an extra PCI
* bridge in the path - PCI0.PEG2.UPSB.DSB1.UPS0.BRA0.BRB0.BRG0.GFX1:
* PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
* Such tables are particularly relevant for macOS 11.0 and newer.
*/
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRA0", "BRB0", "BRG0", 0x00000000)
{
External (_SB_.PCI0.PEG2.UPSB.DSB1.UPS0, DeviceObj)
Scope (\_SB.PCI0.PEG2.UPSB.DSB1.UPS0)
{
/*
* This is a PCI bridge device present on PEGP.
* Normally seen as pci-bridge in I/O Registry.
*/
Device (BRA0)
{
Name (_ADR, Zero)
/*
* This is an actual GPU device present on the bridge.
* Normally seen as display in I/O Registry.
*/
Device (BRB0)
{
Name (_ADR, Zero) // _ADR: Address
Device (BRG0)
{
Name (_ADR, Zero)
Device (GFX1)
{
Name (_ADR, Zero)
}
}
}
}
}
}
I found the official documentation on ACPI... you're right the error is in the DefinitionBlock... you can't separate BRA0, BRB0, & BRG0 with commas as that field is a table id... in essence, you're saying the revision id=BRB0. Furthermore, deleting the commas is also invalid syntax even if group with "<>." This is because there can only be one entry for the table id.Hi @WrathOfThePast
This is kind of what I think you need to do to make an SSDT, although I really have no idea if this will work.
This is based on the ACPI path you specified earlier:
/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG2@1,2/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/pci-bridge@0/IOPP/pci-bridge@0/IOPP/display@0
I typed this out to name your pci-bridges, and I gave them random names "BRA0" "BRB0". Then I named your device "GFX1" since you're saying your existing Radeon 5500M is "GFX0"
Also, reading through your posts, you have an actual Mac? I'm not sure I would be mucking around with that.
Anyway, this SSDT doesn't compile, and it seems to be stuck on
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRA0", "BRB0", "BRG0", 0x00000000)
I'm not sure what is wrong. But the idea is there.
Code:/* * This table provides an example of creating a missing ACPI device * to ensure early DeviceProperty application. In this example * a GPU device is created for a platform having an extra PCI * bridge in the path - PCI0.PEG2.UPSB.DSB1.UPS0.BRA0.BRB0.BRG0.GFX1: * PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0) * Such tables are particularly relevant for macOS 11.0 and newer. */ DefinitionBlock ("", "SSDT", 2, "ACDT", "BRA0", "BRB0", "BRG0", 0x00000000) { External (_SB_.PCI0.PEG2.UPSB.DSB1.UPS0, DeviceObj) Scope (\_SB.PCI0.PEG2.UPSB.DSB1.UPS0) { /* * This is a PCI bridge device present on PEGP. * Normally seen as pci-bridge in I/O Registry. */ Device (BRA0) { Name (_ADR, Zero) /* * This is an actual GPU device present on the bridge. * Normally seen as display in I/O Registry. */ Device (BRB0) { Name (_ADR, Zero) // _ADR: Address Device (BRG0) { Name (_ADR, Zero) Device (GFX1) { Name (_ADR, Zero) } } } } } }
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRA0", 0x00000000)
Update: macOS 12.0.1 Monterey did not add support.I found the official documentation on ACPI... you're right the error is in the DefinitionBlock... you can't separate BRA0, BRB0, & BRG0 with commas as that field is a table id... in essence, you're saying the revision id=BRB0. Furthermore, deleting the commas is also invalid syntax even if group with "<>." This is because there can only be one entry for the table id.
Here's what the DefinitionBlock should be according my understanding:
Code:DefinitionBlock ("", "SSDT", 2, "ACDT", "BRA0", 0x00000000)
I am on genuine Mac which gave me an idea if this doesn't work:
I found the kext drivers Apple made for the 6800, 6800 XT, & 6900 XT and within each those I found a config.plist where they specified the applicable device-ids... I could simply add "0x73AF1200" to those each of those... however, those are in read-only System folder, so I'd have to indefinitely disable SIP & do some shenanigans which would break macOS update... on the plus side this would allow me to use Secure Boot and Fire Vault again.
macOS Monterey released today, so I'm installing it on my old MacBook Pro first to see if they added it before I do it myself.
/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG2@1,2/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/pci-bridge@0/IOPP/pci-bridge@0/IOPP/display@0
PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
@tedyun I just added the "model" to DeviceProperties & it successfully renamed my gpu, but the device-id still isn't spoofed. Very bizarre as this implies that things should be working in the current configuration.@WrathOfThePast :
There are two paths you need to specify in order for the spoof to work. The first is done using the SSDT-BRG0.aml, then the second path is specified in the config.plist under Device Properties.
The SSDT.BRG0.aml needs to be written so that you name all the pci-bridges in this path:
/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG2@1,2/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/pci-bridge@0/IOPP/pci-bridge@0/IOPP/display@0
Then using the DeviceProperties path here, you can spoof your device-id to the 73BF
PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
So where we're stuck is with how to write the SSDT-BRG0 to incorporate the extra pci-bridges.
I'm surprised that no one has offered to help. There are a number of people here that could help, and I'll try tagging them to see if they will help you out. If we can figure this out, then it will be incredibly useful to people using the eGPU's.
@CaseySJ @vandroiy @Gigamaxx , do you think you can help Wrath?
I just added the "model" to DeviceProperties & it successfully renamed my gpu, but the device-id still isn't spoofed. Very bizarre as this implies that things should be working in the current configuration.
It seems you’ve installed your NAVI GPU into a Thunderbolt eGPU. Spoofing the device-id is most likely failing for that reason.@tedyun I just added the "model" to DeviceProperties & it successfully renamed my gpu, but the device-id still isn't spoofed. Very bizarre as this implies that things should be working in the current configuration.