Yea it was a modified firmware for the intel NUC Alpine ridge I thought if it was Alpine ridge it was Alpine ridge. See this is the reason I need a Pro to hook up my cards, I would have just went and modified stuff and broke it.
Also is there a reason someone can not just make software that allows the TB3 to work in the same manner as it does under windows? Seems like all this work to get it to work the same way as a Mac but does not seem like anyone has tried to make the card engineered for windows to work in the same manner as it does in windows with software.
Thunderbolt controllers can be operated in two ways:
- With ICM (Intel Connection Manager that is part of the Thunderbolt firmware) doing all the work of hot-plug, link training, device I/O.
- Without ICM -- with the operating system drivers doing most of the work.
Windows operates in ICM mode and the firmware (BIOS) contains a simple method called WMI (Windows Management Interface) that allows Windows to handle some basic Thunderbolt functions.
MacOS can operate in both modes. The reason Thunderbolt with hot-plug is
already working on the Designare Z390 is because it's operating in ICM mode. But this mode cannot be used to enable the more advanced Thunderbolt functionality Apple has built into macOS, namely Thunderbolt Bus and Local Node.
To enable the full potential of Thunderbolt on a macOS system, we need to activate Thunderbolt Bus and Local Node, which then puts Apple's Thunderbolt drivers in complete control. Doing this is tricky because it requires us to disable ICM mode ourselves (via SSDT), configure Thunderbolt registers/devices (UPSB, DSB0, NHI0, DSB1, DSB2, DSB4, XHC2), and provide _PS0 (power-on) and _PS3 (power-off) functions for each of the above registers/devices. This also means responding to hot-plug events and handling link training functions via SSDT.
On Alpine Ridge systems it seems that creating the necessary SSDT functions is relatively straightforward. But on Titan Ridge the task is much harder. Maybe we haven't yet figured out how to configure all the relevant registers. Maybe there's some hidden interaction with the controller's firmware. It's a good mystery!