Contribute
Register

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

* TEST BENCH: Thunderbolt Interim Update *



Results:

  • Unlike my main system, all network devices are present and operational -- very surprised!

So TB networking is working? That's a milestone. Great!
I would like to join the volunteers, but I need my hack to work tonight, and even a change of a SMBIOS variable may totally upset my expensive copy protected software...
 
Looks like you are just getting underway but are you planning on actually at some point flashing the TB3 Firmware with apple TB3 Firmware?

Of course, a software solution without reprogramming hardware with specialised tools would be much better, and not void your warranty.
 
Looks like you are just getting underway but are you planning on actually at some point flashing the TB3 Firmware with apple TB3 Firmware?
Yes, but we're first trying to see whether SSDT alone can accomplish our goal. FYI, we cannot flash Apple’s firmware as-is. We look for certain differences in the first 0x1000 bytes of the active partition and copy those bytes into the original Gigabyte firmware.
 
Last edited:
*** Thunderbolt Volunteers Needed ***



After the last reboot my samsung disk TB3 doesn't appear on the desktop...
I have all my ethernet connections OK, and that :
Bus Thunderbolt :
Nom du fournisseur : GIGABYTE
Nom du périphérique : iMac
UID : 0x00ED000000000000
Chaîne de routage : 0
Version du programme interne : 33,0
UUID du domaine : B1D4FD90-AB00-46A2-85E3-53804E050815
Port :
État : Aucun périphérique connecté
État du lien : 0x101
Vitesse : Up to 0 Gb/s x2
Largeur du lien actif :
Réceptacle : 2
Port :
État : Aucun périphérique connecté
État du lien : 0x101
Vitesse : Up to 0 Gb/s x2
Largeur du lien actif :
Réceptacle : 1

My screenshots :
If you enter RP05 into the “Search” field in IORegistryExplorer, you will not see the full device tree on left side. It’s better to clear the search field after the search is done.
 
So TB networking is working? ...
It’s showing up as an available network device, but I haven’t attempted to connect it to another Mac. That’s a good idea actually...
 
*** Thunderbolt Volunteers Needed ***

Purpose:
  • To see if Thunderbolt Local Node and Thunderbolt Bus can be reproduced on your system.
  • To test future updates of the Thunderbolt SSDT.
Prerequisites:
  • Gigabyte Designare Z390 motherboard. The test files are specific to this board.
  • A stable system running macOS Catalina 10.15.2.
  • Clover 5xxx (not OpenCore).
  • SMBIOS iMac19,1.
  • Must have one true Thunderbolt 3 device (not USB-C).
  • You must have a Reset button on your PC case. If you use the SilverStone Remote, it has a Reset button which can also be used.
Level of Expertise Needed:
  • Intermediate level of expertise needed. Not for beginners.
  • Must be comfortable with Clover, EFI, config.plist, etc.
  • But no tech support will be provided.
  • If you follow the guide below, but nothing happens, please try to remedy the problem by yourself or discontinue.
  • Support will be provided if you have success with this.


Preparation:
  • Make a backup copy of your EFI Folder.
    • You may use USB flash disk or main macOS SSD.
  • Delete all files in the CLOVER/ACPI/patched folder and copy all .aml files in attached ZIP to that folder.
  • Copy the config-Elias64Fr-NHI0-Casey.plist into the CLOVER folder.
    • You may rename it to config.plist
  • Copy your existing Serial Number, Board Serial Number, System UUID into the empty fields in SMBIOS.
  • Copy your existing Board Serial Number into MLB field in RtVariables.
  • Click Generate under ROM field in RtVariables.
  • Save the file.
  • Copy ACPIDebug.kext (attached) to the CLOVER/kexts/Other folder.
View attachment 446624 View attachment 446625

BIOS Settings:
  • Same settings as Mojave/Catalina build guide except for the following:
    • Thunderbolt --> GPIO3 Force Power --> disabled.
Procedure:
  • Part 1:
    • Shutdown computer and flip power switch to OFF.
    • Disconnect all Thunderbolt devices.
    • After 10 seconds, power the system up.
    • Login to Catalina.
    • Open IORegistryExplorer and post screenshot only of RP05 section.
  • Part 2:
    • Get ready to connect one Thunderbolt device, but do not connect it yet.
    • Reboot the computer (warm boot).
    • After the computer restarts, but before Clover Boot Menu appears, connect the Thunderbolt device.
    • At Clover Boot Menu, boot macOS. Thunderbolt device must be connected before macOS is booted.
    • Login to Catalina.
    • Open IORegistryExplorer and post screenshot only of RP05 section.
  • Part 3:
    • Now unplug the Thunderbolt device.
    • Your computer should immediately hang. Total freeze.
    • Do NOT power off.
    • Click the reset button to reboot the computer.
    • Quickly connect the Thunderbolt device (must be done before macOS boot process starts).
    • Boot into Catalina and log in.
    • Open IORegistryExplorer and post screenshot only of RP05 section.
    • At this point you should have Thunderbolt Local Node and Thunderbolt Bus.
      • You will probably have no network.
      • Not everything will work.
You may undo the changes and restore your original files at any time.

Updates:
  • See Preparation section: Copy ACPIDebug.kext
Hi @CaseySJ and all,

Your test bench is amazing ! Love it !
As I see on the config.plist Clover configuration, there is a mistake on TunderboltConfig property compared to my previous post Here. This should be tested like that, as reminder, extracted properties are from iMac19,1.

We should also resolve XHC2 problem with SSP2 at 0x03 instead of 0x09 .. you should confirm under Windows that effectively we have Companion on XHC main USB controller by plugging (for each port) one USB3.1gen2, USB3.0 and another USB2.0 on USB-C/thunderbolt connector ! This last one should appear under XHC instead of XHC2.

UPDATE:

Like I See under original "SSDT-8-A M I.aml":
Code:
Device (SS01)
                            {
                                Name (_ADR, One)  // _ADR: Address
                                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                                {
                                    Return (TUPC (Zero, Zero))
                                }

                                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                                {
                                    Return (TPLD (Zero, Zero))
                                }
                            }

                            Device (SS02)
                            {
                                Name (_ADR, 0x02)  // _ADR: Address
                                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                                {
                                    Return (TUPC (Zero, Zero))
                                }

                                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                                {
                                    Return (TPLD (Zero, Zero))
                                }
                            }

                            Device (SS03)
                            {
                                Name (_ADR, 0x03)  // _ADR: Address
                                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                                {
                                    Return (TUPC (One, 0x0A))
                                }

                                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                                {
                                    Return (TPLD (One, 0x08))
                                }
                            }

                            Device (SS04)
                            {
                                Name (_ADR, 0x04)  // _ADR: Address
                                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                                {
                                    Return (TUPC (One, 0x0A))
                                }

                                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                                {
                                    Return (TPLD (One, 0x0D))
                                }
                            }

We have first / second port (Addr 0x1 and 0x2) seeming to be defined as USB2.0 device and third / fourth port (Addr 0x3 and 0x4) seeming to be defined as USB-C device

Another remark compared to my config (also on rMac), when a thunderbolt device is plugged-in, we should have an under-tree under:
  • IOThunderboltPort@1 and/or IOThunderboltPort@2 in case of first thunderbolt connector (appearing under DSB1
  • IOThunderboltPort@3 and/or IOThunderboltPort@4 in case of second thunderbolt connector (appearing under DSB4)
Unfortunately, I can't show how it look like under IOReg, currently I'm not at home with my eGPU thunderbolt device.

Again, Great test bench Set-up !
 
Last edited:
Hi, I have a Designare z390. Intel Core i9-9900K, Radeon Vega VII 16GB, 32Gb Ram, 970 Evo Plus for System.
I followed each step but the maqujan hangs between 16 minutes or 1 hour. Any recommendations to correct this?
Thank you.
Because you have Samsung 970 EVO Plus, have you checked whether it contains latest firmware? Please see NOTE 5a in Post #1:

Screen Shot 2020-01-26 at 2.47.35 AM.png
 
Back
Top