Contribute
Register
Yep. It seems so. At least my FW. I cannot test anything else at the moment.
 
Maybe. Still figuring it out. It was just desperation and something I read on another forum.
Actually the cable should only provide additional features and not the affect the main input to the mainboard.
 
It works!!
Probably the cable is for USB-C connectivity and in this way it is lost (it does not matter).
However, it makes me understand a lot about strange behaviors that I had in my previous tests when I changed the values of the XHC controller through SSDT. At this point, it is there that we must work!

Test in progress...
 
Does your Thunderbolt device provide hot-swap? Mine does (after first boot with TH/FW device previously connected)...
 
Does your Thunderbolt device provide hot-swap? Mine does (after first boot with TH/FW device previously connected)...
Unfortunately, to have the hotplug the device must be connected before booting, otherwise the Thunderbolt card is not loaded and the ACPI path (see your IOReg) remains empty. However, if you already have a connected device (a Thunderbolt dock for example) the next ones are hotpluggable!
We'll work on it, I'm trying with various arbitrary injects in Clover
 
Yes...it has to be like that...otherwise it is not real hot-swap functioinality.
Fine. Thanks.
 
We will find the way! For now do not worry, if you use only one device I have the solution for you! When I get home, I post all the progress made so far
 
The "not using the cable-trick" is working for me but after sleep it's only se the first and last unit in chain. (Having TB3Dock>Lacie Disk>MOTU 828ES. And the sound interface is only partly working. It sees the device in Audio Setup but the software does not.

Haven't tried any SSDT's yet since I've never tried to apply one before and being afraid to screw things up.
Screen Shot 2018-04-24 at 22.29.05.png
 
After 3835648 tests and many hours lost, here are all the news!

I started by adapting the SSDTs used for the X299 chipset and by modifying some _DSM methods I got positive results.
For these changes I used the original Apple Thunderbolt SSDTs:
SSDT-Thunderbolt original iMac18,3 Download
SSDT-Thunderbolt original iMacPro Download

All the next SSDTs are based on my ACPI paths (PCI0.RP05.PXSX), if your paths are different you have to modify them on the ssdt.
I noticed that Apple uses a lot of variables and on this basis I realized this SSDT based on iMac18,3: SSDT V3 Download
Inserting the "PCI-Thunderbolt One" _DSM method in DSB1 makes it behave similarly to the SSDT V1 and V2


SSDT V1: Download
With this SSDT you can enable the hotplug of your Gigabyte card on the Thunderbolt port 1.
I inserted the "PCI-Thunderbolt One" _DSM Method on DSB1 and in this way you can hotplug one device at a time.
Precisely this is what happens:
STEP 1: UAD-2 Satellite and Apollo Twin connected and turned on at boot time.
STEP 2: I turned off and then turned on the only the Apollo Twin, which was reconnected properly.
STEP 3: I turned off and on both devices, but only the first (UAD-2 Satellite) connected correctly.

SSDT V1.png


SSDT V2: Download
This is similar to the SSDT V1, but I added the "PCIHotplugcapable Zero" _DSM Method on DSB2 (like in iMac18,3).
STEP 1: UAD-2 Satellite and Apollo Twin connected and turned on at boot time.
STEP 2: I turned off and on both devices, but only the first (UAD-2 Satellite) connected correctly, while the Apollo Twin is not recognized correctly.
The addresses of the devices change, in fact they are mixed in a strange way on IOReg.

SSDT V2.png


SSDT V1 and V2 work without using Arbitrary inject in Clover. If you have only one Thunderbolt device you can use them!
Both SSDTs add the PCI information to System info.
USB-C not tested, I do not know if it works.
Both ssdt work up to the second device, the next ones are not disconnected/reconnected correctly.


Now comes the interesting part!
As @crismac2013 suggested today, I removed the THB_C cable from my GC-Alpine Ridge and something strange happened.
If you turn on the computer without Thunderbolt devices connected the Thunderbolt PCI card is not loaded, see Ioreg:

Without THB_C and device.png

But if I have a device connected and turned on before boot the PCI card is recognized and loaded correctly, but not only, in this way you have the hotplug of all devices!
Without THB_C.png


For this to happen however, it is necessary to add these Arbitrary inject on Clover:
Arbitrary inject.png

The PciAddr is that of PXSX (See on your ioreg):
PXSX address.png


Or simply use the SSDT V3: Download

I use a Thunderbolt dock that turns on when I turn on the computer (to be precise, since I use Fix Shutdown, never turns off like my USB devices), and then the Thunderbolt PCI card is charged every time the computer is started and all the devices after the dock are hotpluggable.

Obviously this is not a solution, but it makes clear that the problems with the hotplug derive from the functions that add the THB_C cable, so we are faced with two ways:
1- Finding the way to make the PCI card load from the system even without a connected THB_C cable
2- Understand what features this cable provides and whether it can be found in ACPI paths to include it in the SSDT
 

Attachments

  • SSDT-Thunderbolt original iMac18,3.zip
    11.1 KB · Views: 1,648
  • SSDT-Thunderbolt original iMacPro.zip
    27 KB · Views: 1,667
  • SSDT-TB3 V1.zip
    1.5 KB · Views: 128
  • SSDT-TB3 V2.zip
    1.6 KB · Views: 137
  • SSDT-TB3 V3.zip
    1.6 KB · Views: 166
Last edited:
Back
Top