[Guide] How to Enable ThunderBolt 3 Hotplug

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
GIGABYTE Z370 AROUS GAMING 3
CPU
Intel Core i9 9900K
Graphics
2xAMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
Android, iOS
How to Enable ThunderBolt 3 Hotplug

In my previous post, i covered a guide about implementation of Thunderbolt on macOS. This guide covers the implementation of Thunderbolt 3 Hotplug.

You can read about the implementation of Thunderbolt 3 here:

Implementation of Hotplug with Thunderbolt has been always a major issue with macOS. But Thanks to users like KGP who has been able to implement it on the hardware. The reason with the not working of Hotplug with the Thunderbolt is due to the working style of thunderbolt on both the platform i.e. Windows and Mac. On Windows hardware, the working of Thunderbolt is different as compared to a real Macintosh.

Before getting into it, let's get to know about the working of ThunderBolt on Mac and Windows hardware which will help you to understand about the working of Hotplug.

On Windows hardware, the Thunderbolt is only powered up when any Thunderbolt compatible Device is connected. The device triggers the thunderbolt to function and turns on the power to the connected device. Once, it's disconnected, the power to the port is also turned off.

On the other hand, on Mac, it's not the same. On Mac, the Thunderbolt is always on until the system is turned off. When any device is connected to the Thunderbolt port, the Device automatically connects to the thunderbolt and this is the reason the hotplug basically works. The Thunderbolt is always active as it keeps drawing the power.

On the Hackintosh, it's little bit different or you can say, it's mixed. The thunderbolt will function only if the device is connected before booting to macOS i.e preboot mode. If you disconnect it, the device no longer function and you need to restart the system again. Hence, the system is not capable of Hotplug.

But by using this guide, you would be able to implement Hotplug.

The method is supported on the following.

Supported Vendors
:
  • Intel (Onboard)
  • GIGABYTE Alpine Ridge
  • GIGABYTE GC-Titan Ridge
Requirements
  • Compatible Thunderbolt Chipset
  • Vanilla Thunderbolt kexts in /S/L/E
  • Any TB compatible Devices.
  • MaciASL
  • IOReg

Enabling hotplug can be quite complex process and time consuming. But if done correctly, you can have a working Thunderbolt with hotplug feature with the required speed and performance.

A Motherboard (Z390 AORUS ELITE) from GIGABYTE has been used as an example for this guide which features GIGABYTE GC-Titan Ridge Thunderbolt 3 addon Card. The two compatible devices which were used to check the Thunderbolt function are Element 88 from Apogeedigital and the second test device being a Thunderbolt capable Hard Drive from G-Technology having a capacity of 3TB.

Get ACPI path
Connect any TB device and boot the system in order to get the ACPI path for the Thunderbolt Card on your Motherboard.
Now once the system is up, the next step is to get the ACPI path. To check the ACPI path, just open IOReg and type Thunderbolt in the search bar.

You should see something similar like in the attached screenshot.
Screenshot 2020-01-28 at 5.52.53 AM.png

Once you have located Thunderbolt node, you can clear the search to get the complete node info.
Screenshot 2020-01-28 at 6.00.06 AM.png

If you check, in the above screenshot, we have some Thunderbolt and USB connectors listed. You need to locate your current connector which is driving the connection to the Thunderbolt. A simple way to find this out is to just find the connector having Thunderbolt properties with AppleThunderboltHAL. In our case, it is RP21@1B,4. Your system can have a different one. Make sure to locate the right one.

Changing the ACPI path
Now, we have got the ACPI path of the Thunderbolt. To enable the hotplug, you must change the ACPI path to match yours.

1. Download the SSDT from this guide. The files are attached below this post.
2. Open the SSDT
3. Simply replace RP05 with RP21 which is our ACPI path.
Screenshot 2020-01-28 at 7.50.41 AM.png

4. Once you change the ACPI path with yours, compile and save the SSDT.

Installing the SSDT
Now, the SSDT has our ACPI path. The next step is to install the SSDT.

1. Mount the EFI partition of the system
2. Open the EFI folder.
3. Navigate to ACPI/patched directory.
4. Place the SSDT-DTGP and SSDT-Z390-TB3HP.

Installing kext and driver
1. Download the following kext and driver.
ThunderboltReset
TbtForcePower.efi
2. After downloading the drivers, extract it.
3. Copy ThunderboltReset.kext to EFI/Kext/Other directory.
4. Copy the TbtForcePower.efi to EFI/Drivers/UEFI

Restart your System
Once all the above step is done, you need to restart the system.

Connect any TB Device and you're good to go!

Problem Reporting

Details
:
  1. Thunderbolt Model/hardware
  2. macOS version
  3. Copy of IOReg
Screen shots:
  • DPCIManager/PCI List
  • System Report/PCI
Clover Files:
  • Compress EFI/Clover, exclude the themes folder. Do not include complete EFI folder.
Put all files in a folder with your name, compress files as Zip and attach files using site attachments only. Do not use any external links.

Credits :
KGP

Sample Attachment

The ACPI files are attached below which has been used as a example in this guide.

The screenshot below is with no any Thunderbolt Device connected.
Screen Shot 2020-01-22 at 20.53.42.png


The screenshot below is with the Thunderbolt Drive connected using TB2 adapter to the Motherboard.

Screen Shot 2020-01-22 at 20.51.17.png

Once the TB device is connected, the PCI looks like the following.

Screen Shot 2020-01-22 at 20.53.42.png

The Storage looks like the following. As you can see, it says Thunderbolt. :)
Screen Shot 2020-01-22 at 21.04.32.png

Once the Element 88 is connected via Thunderbolt using a TB2 Adapter, the Audio looks like the following. As you can see, the transport method is TB :)
Screen Shot 2020-01-22 at 21.06.47.png

The screenshot below is with the Thunderbolt Audio Interface (Element 88) connected using TB2 adapter to the Motherboard.
Screen Shot 2020-01-22 at 21.08.09.png

In the System Preferences>Sound

Screen Shot 2020-01-22 at 21.09.50.png
Screen Shot 2020-01-22 at 21.10.33.png

The IOReg for the Thunderbolt Drive. As you can see, the TB Device is connected to RP21 and the Drive is connected to DSB4 node.


Screenshot 2020-01-22 at 1.09.32 PM.png


The IOReg for the Audio Interface (Element 88). As you can see, the TB Device is connected to RP21 and the Drive is connected to DSB4 node.

Screenshot 2020-01-22 at 1.07.15 PM.png
 

Attachments

  • Love
Reactions: Phichaucloud

bardaxx

New member
Joined
Apr 3, 2020
Motherboard
z170x-ud5-th
CPU
Intel i7 6700K
Graphics
AMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
iOS
Hello guys, thanks for the guide. Does this also work for my z170x-ud5-th? Do I need to use another SSDT? Thanks!
 

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
GIGABYTE Z370 AROUS GAMING 3
CPU
Intel Core i9 9900K
Graphics
2xAMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
Android, iOS
Hello guys, thanks for the guide. Does this also work for my z170x-ud5-th? Do I need to use another SSDT? Thanks!
Yes, it will work. Yes, you need to follow the guide to change the ACPI path.
 

bardaxx

New member
Joined
Apr 3, 2020
Motherboard
z170x-ud5-th
CPU
Intel i7 6700K
Graphics
AMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
iOS
Hello, I have tried but nothing happens. I mean, Thunderbolt works as usual but not the hotplug. Furthermore, I got an error on gigabyte bios screen on boot ”i2cwr device error” it's something related to the CPU. I rolled back my Clover folder and the error disappeared.
I will provide the screenshot and my Clover folder soon.
 

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
GIGABYTE Z370 AROUS GAMING 3
CPU
Intel Core i9 9900K
Graphics
2xAMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
Android, iOS
Hello, I have tried but nothing happens. I mean, Thunderbolt works as usual but not the hotplug. Furthermore, I got an error on gigabyte bios screen on boot ”i2cwr device error” it's something related to the CPU. I rolled back my Clover folder and the error disappeared.
I will provide the screenshot and my Clover folder soon.
Okay, sure.
 

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
GIGABYTE Z370 AROUS GAMING 3
CPU
Intel Core i9 9900K
Graphics
2xAMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
Android, iOS
The driver is missing. Check the guide. The configuration is not upto the mark. Grab the config.plist from here:

Change the SMBIOS to iMacPro1,1. The correct way to check TB Hotplug is. Boot the system. Connect TB, disconnect, connect. Check.

For the error during BIOS splash, is normal when using the above two drivers.
 

bardaxx

New member
Joined
Apr 3, 2020
Motherboard
z170x-ud5-th
CPU
Intel i7 6700K
Graphics
AMD RX 580 8GB
OS X/macOS
10.14.6
Bootloader
Clover (UEFI)
Mac
MacBook Pro
Mobile Phone
iOS
Which driver is missing? Can you be more specific? thanks