- Joined
- Jul 22, 2018
- Motherboard
- GIGABYTE Z370 AROUS GAMING 3
- CPU
- Intel Core i9 9900K
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 11.0.x
- Bootloader
-
- OpenCore
- Mac
-
- MacBook Pro
- Mobile Phone
-
- Android
- iOS
How to Enable Thunderbolt 3 Hotplug on macOS
An EliteMacx86 Exclusive Guide - This guide covers implementation of Thunderbolt 3 Hotplug on macOS
Overview
An EliteMacx86 Exclusive Guide - In our previous post, we 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.
Requirements
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.
Thunderbolt Status
Getting 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.
Once you have located Thunderbolt node, you can clear the search to get the complete node info.
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.
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
After performing all the above steps, restart your system for the applied changes to take effect.
Connect any TB Device and you're good to go!
Problem Reporting
Details:
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.
The screenshot below is with the Thunderbolt Drive connected using TB2 adapter to the Motherboard.
Once the TB device is connected, the PCI looks like the following.
The Storage looks like the following. As you can see, it says Thunderbolt.
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
The screenshot below is with the Thunderbolt Audio Interface (Element 88) connected using TB2 adapter to the Motherboard.
In the System Preferences>Sound
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.
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.
An EliteMacx86 Exclusive Guide - This guide covers implementation of Thunderbolt 3 Hotplug on macOS
Overview
An EliteMacx86 Exclusive Guide - In our previous post, we 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:
GUIDE - How to Enable ThunderBolt 3 on macOS [Clover/OpenCore]
How to Enable ThunderBolt 3 on maOS [Clover/OpenCore] An EliteMacx86 Exclusive Guide - This guide covers implementation of Thunderbolt 3 on macOS using Clover and OpenCore. Overview This guide covers the implementation of Thunderbolt 3. Thunderbolt isn't a necessary thing but for some users...
www.elitemacx86.com
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.
Requirements
Compatible Thunderbolt Chipset |
Vanilla Thunderbolt kexts in S/L/E |
Any Thunderbolt compatible Device to check and verify the status |
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.
Thunderbolt Status
Options | Thunderbolt Status |
---|---|
TB Boot | YES |
USB Boot | YES |
TB Hotplug | YES |
USB Hotplug | YES |
Cold Boot | NO |
Sleep | YES |
Wake | YES |
Getting 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.
Once you have located Thunderbolt node, you can clear the search to get the complete node info.
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.
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
After performing all the above steps, restart your system for the applied changes to take effect.
Connect any TB Device and you're good to go!
Problem Reporting
Details:
- Thunderbolt Chip and type
- macOS version
- Copy of IOReg
- Kextcache output
- Hackintool>PCIe
- System Report>PCI
- For Clover, compress EFI/Clover, exclude the themes folder.
- For OpenCore, compress EFI/OC.
- 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.
The screenshot below is with the Thunderbolt Drive connected using TB2 adapter to the Motherboard.
Once the TB device is connected, the PCI looks like the following.
The Storage looks like the following. As you can see, it says Thunderbolt.
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
The screenshot below is with the Thunderbolt Audio Interface (Element 88) connected using TB2 adapter to the Motherboard.
In the System Preferences>Sound
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.
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.
Attachments
Last edited: