Contribute
Register

[SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580

No matter what I do, I can't get Video Proc to show my Graphics Card, it just says N/A and I swear when it runs the test, the CPUs spike and not my GPU...

Your Image at least proves I'm not nuts, an AMD dGPU can be listed by VideoProc.

Video Proc shows nothing about my Vega but if I use activity monitor and encode something all the load is put on my Vega. Some of those things like it listing your card are just cosmetic.
 
We can re-enable the Kernel & Kext Patches directly from the Clover Boot Menu, like this:

Select Options:
View attachment 466948

Select Binaries patching
View attachment 466950

Select Custom kexts patches
View attachment 466951

Reenable the patches (your screen will look different from this)
View attachment 466953

Then press Esc several times to get back to Clover Boot Menu and try again. If it boots, then re-enable these patches in config.plist.

That did not fix my issue is it possible to change it back to imac 19,1 from that menu?
 

While I was typing this, @CaseySJ gave you a tip. Please favor his advice over mine. AYR/YMMV.

Regarding the reboot and after switching configurations, it may do that a couple times, but not as a regular event. Assuming you are using iMP 1,1, Clover, your EFI is correct, and that your monitor is connected to your dGPU, please try this as it's worked for me with my Z390 build:
  1. Shut it all down and switch off the PSU (power supply) button.
  2. Power off all Thunderbolt devices and disconnect the cables.
  3. Press the power-on button on the PC to drain any residual power from the PSU. Wait a minute. (My Seasonic PSU will still leave the board LEDs lit for nearly a minute even when the PSU is unplugged from the wall. YMMV)
  4. Reconnect all Thunderbolt devices' cables. Leave them off for now.
  5. Switch-on the PSU.
  6. Press the power-on button on the computer. It may take a minute for everything to start. Let it do its thing.
  7. Hammer away at the Delete key on a USB-attached keyboard to go into BIOS. (It'll resist, so tap, tap, tap, hold.)
  8. Make sure iGPU is set to Off -not on or Auto.
  9. Save the BIOS configuration as usual and reboot.
  10. Hammer away at F12 to make sure that the machine is loading the correct EFI from the correct volume.
  11. Press enter when the correct EFI from the correct volume has been selected.
  12. When you get to the Clover screen, select the appropriate MacOS and continue with the boot.
  13. If the machine boots normally, don't launch any apps yet. Just Shut Down from the menu.
  14. Shut Down the computer.
  15. Power-up all needed external devices, including Thunderbolt devices.
  16. Press the power-on button on the computer.
  17. Let computer do all the booting by itself. Let it do its thing.
 
Last edited:
We can re-enable the Kernel & Kext Patches directly from the Clover Boot Menu, like this:

Select Options:
View attachment 466948

Select Binaries patching
View attachment 466950

Select Custom kexts patches
View attachment 466951

Reenable the patches (your screen will look different from this)
View attachment 466953

Then press Esc several times to get back to Clover Boot Menu and try again. If it boots, then re-enable these patches in config.plist.


Ok, I got it to boot into the OS, but changing back to imac 19,1, turning my IGPU back on and re-enabling those kexts.
 
@CaseySJ I feel like a dummy, the reason it wouldn't work is because I selected Mac Pro 1,1 - not iMacPro 1,1. Sheeesh!
 
Casy, Alias, I have some questions to "DROM Decoded". Please...

Screenshot 2020-05-03 at 22.26.21.png
- why? I couldn't find a description of it. By me is '02 C5' - do I have to change it to 02 85?

I have a built-in TB-AlpineRidge on my motherboard (see my signature) and don't have any DisplayPort Adapter, only 2x TB ports. Therefore, my DROM is a little bit different:

drom_decode.png

upd:
- I don't understand what's between orange and gray. If '03 87 80', as explained, is "TBPortX PCI Down Adapter DSB4" then what does the other bytes '05 88 50 00 00 02 C9' mean? Is this a another switch - TBSwitch9?

- Does it make sense to customize a DROM and change the bytes in "Fixed 9-Byte Values assigned by PciThunderbolt.efi driver" by "iMac 18.3 string" bytes if I don't want to inject DROM via SSDT?
 
Last edited:
I've been carrying on tinkering with the SSDT-only approach to getting a full thunderbolt tree and have got as far as the very simple attached version which works great on built-in Alpine Ridge. It's based on the great work originally done by @Elias64Fr and @CaseySJ (all credit to them) and provides a full tree with working TBT and USB-C hot plug on cold and warm boot, TBT networking and target disk mode in the client computer. I was wondering if maybe we've been over-complicating things, might this work with built-in Titan Ridge as well? If you want to test it then you'll need to do a few things:
  • Change the RP05 Root Port number throughout the SSDT to whatever yours is and change the address on the first line of the MMBA method using the (PCI address * 8)+x formula. My thunderbolt RP05 is at 1C,4 so its (1C * 8)+4 = E4. There are no power methods as hot plug seems to be 100% consistent without them.
  • In the bios I have Force Power and ACPI RMV method enabled in the thunderbolt section. These might be hidden and so will need to be enabled using the grub approach. Note that I've removed DSB4 and only have one XHC2 SSP port as the AsRock Z370 itx/ac motherboard only has one thunderbolt port.
  • The GPE._E2C method will also need to be renamed according to the value in your system. Just dump your system DSDT using MacIASL and search for "Method (TINI, 2, Serialized)". Immediately above it you'll find the hot plug event method which will be named "_Exx".
  • The RP05._INI method in your DSDT will need to be renamed RP05.XINI using your OpenCore config.plist
  • The _GPE._Exx method in your DSDT will need to be renamed _GPE.XExx using your config.plist
As far as I can tell functionality is just the same as when I tried patched firmware but with the added bonus of TBT working normally with other operating systems. This approach might only work with built-in Alpine Ridge but it's worth trying...

@dgsga For bullet #4, if my root port is RP21, is the following change to config.plist correct?

XML:
          <dict>
                <key>Comment</key>
                <string>change RP21._INI to RP21.XINI for ICM disable</string>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>UlAyMQhMVFJaAAhPQkZaAAhMTVNMAAhMTlNMABQqX0lOSQ==</data>
                <key>Replace</key>
                <data>UlAyMQhMVFJaAAhPQkZaAAhMTVNMAAhMTlNMABQqWElOSQ==</data>
            </dict>
 
Casy, Alias, I have some questions to "DROM Decoded". Please...

View attachment 466949
- why? I couldn't find a description of it. By me is '02 C5' - do I have to change it to 02 85?
To enable TBSwitch5 we have to disable the 7th bit:
  • C5 = 1100 0101 where 7th bit is in red
  • 85 = 1000 0101 -- now 7th bit is turned off
I have a built-in TB-AlpineRidge on my motherboard (see my signature) and don't have any DisplayPort Adapter, only 2x TB ports. Therefore, my DROM is a little bit different:

View attachment 466963

upd:
- I don't understand what's between orange and gray. If '03 87 80', as explained, is "TBPortX PCI Down Adapter DSB4" then what does the other bytes '05 88 50 00 00 02 C9' mean? Is this a another switch - TBSwitch9?
Yes it looks like Switch 9. We've seen this before on Alpine Ridge, but we're not sure what it's for.
- Does it make sense to customize a DROM and change the bytes in "Fixed 9-Byte Values assigned by PciThunderbolt.efi driver" by "iMac 18.3 string" bytes if I don't want to inject DROM via SSDT?
Not sure I understand. Some comments:
  • If we flash the Thunderbolt firmware to activate Thunderbolt Bus, then we should modify the DROM and we should inject it via SSDT.
  • Although we can inject DROM via Clover (Devices --> Properties), its better to inject via SSDT because the SSDT is also responsible for defining the Thunderbolt tree structure ("UPSB", "DSB0", "NHI0", "DSB1", "XHC2", etc.) and enabling hot-plug.
  • If we modify the two parts of Thunderbolt DROM, we have to calculate the twochecksums:
    • CRC8 is calculated based on bytes 2-9. We can calculate this via the website in Thunderbolt DROM micro guide.
    • CRC32C is calculated based on everything after Byte 22. The only way we know how to calculate this is by using the Thunderbolt DROM as it is and letting macOS compute the CRC value. We can usually find it in the system log if we search for IOThunderboltFamily. But not all systems contain this log -- only 1 of my Hackintoshes has the log.
 
Last edited:
I've been carrying on tinkering with the SSDT-only approach to getting a full thunderbolt tree and have got as far as the very simple attached version which works great on built-in Alpine Ridge. It's based on the great work originally done by @Elias64Fr and @CaseySJ (all credit to them) and provides a full tree with working TBT and USB-C hot plug on cold and warm boot, TBT networking and target disk mode in the client computer. I was wondering if maybe we've been over-complicating things, might this work with built-in Titan Ridge as well? If you want to test it then you'll need to do a few things:
  • Change the RP05 Root Port number throughout the SSDT to whatever yours is and change the address on the first line of the MMBA method using the (PCI address * 8)+x formula. My thunderbolt RP05 is at 1C,4 so its (1C * 8)+4 = E4. There are no power methods as hot plug seems to be 100% consistent without them.
  • In the bios I have Force Power and ACPI RMV method enabled in the thunderbolt section. These might be hidden and so will need to be enabled using the grub approach. Note that I've removed DSB4 and only have one XHC2 SSP port as the AsRock Z370 itx/ac motherboard only has one thunderbolt port.
  • The GPE._E2C method will also need to be renamed according to the value in your system. Just dump your system DSDT using MacIASL and search for "Method (TINI, 2, Serialized)". Immediately above it you'll find the hot plug event method which will be named "_Exx".
  • The RP05._INI method in your DSDT will need to be renamed RP05.XINI using your OpenCore config.plist
  • The _GPE._Exx method in your DSDT will need to be renamed _GPE.XExx using your config.plist
As far as I can tell functionality is just the same as when I tried patched firmware but with the added bonus of TBT working normally with other operating systems. This approach might only work with built-in Alpine Ridge but it's worth trying...
Just started looking at this. Some comments:
  • There's a very nice thing in Gigabyte's DSDT that might or might not be present in yours as well. It's this:
    Screen Shot 2020-05-03 at 3.44.15 PM.png
    Screen Shot 2020-05-03 at 3.44.54 PM.png
    • In the first screenshot we see that for each PCIe slot there's an External PINI declaration. This PINI function is not defined in Gigabyte's firmware.
    • In the second screenshot we see the _INI method in which the code checks if a real PINI method exists (CondRefOf (PINI)) and if so, PINI is then called.
    • This means we don't have to rename _INI to XINI. Instead, we just create a new method in Scope (_SB.PCI0.RP05) called PINI. And that method will be invoked automatically.
  • I see that your TbtOnPch has ICMS, which toggles the state of the Internal Connection Manager (ICM). It resets the ICM.
  • But curiously you don't have ICMB, whose purpose is to make the Thunderbolt controller reveal itself to the operating system (OSUP). The Thunderbolt controller normally hides its Device/Vendor ID until OSUP or ICMB is called. Perhaps your BIOS option ACPI RMV is performing this function?
Regarding Titan Ridge:
  • Unfortunately the situation with Titan Ridge is far more difficult! Elias and I spent months and made some progress, but Thunderbolt devices would disconnect after about 20 seconds into boot.
  • We could activate Thunderbolt Bus, but we could not figure out why the controller would go down after 20 seconds.
 
Back
Top