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...