I haven't seen any activity from goodwin_c as of late. Lets see if he's still around.
Putting device-id in DSM is enough to make AppleUSBXHCIAR load instead of AppleUSBXHCI.
I might write a USCI USB driver for MacOS, this would allow us to be notified in a cross system compatible way of any cable plugs/unplugs. That would be a good leverage point to potentially undertake activities with regards to PCI rescanning on those events.
As topic for my lovely 9550 was banned on Tony - i have stopped most of my activity here, except of some read-only
I'm trying to write here as less as possible. Viva la other forums.
As of powering on TBT on boot - best place ever, IMHO, is - _OSI method (or, as most are using - XOSI). Just add call to TBFP on the beginning of custom XOSI - and you are done with enabled TB on early stages (as fast as ACPI platform will get initialized by darwin core)
Regarding fully functional TBT... Guys, you are trying to invent workarounds. Sure, great if you can. But it's not really what we need.
Main problem is that TB controller (i'm talking about ICM - connection manager of TB) - is not working at all in Hackintosh. TB is complex system, with internal firmware, with ability to configure input-output lines, with full duplex messaging system between controller and OS. Just open IORegExplorer and check LocalNode and ThunderboltPort - they are not Matched. Also - open ThunderboltHAL and check Statistics - you will see that TB driver is not getting any "proper" responses from TB ICM.
I have some suggestions that needs deep digging, analysing and reverse engineering. First of all - good source for understanding TB internals is here -
https://github.com/torvalds/linux/tree/master/drivers/thunderbolt
Also, it's still not clear why there are communication problems as communication layer looks clean, it has no cryptography and on TB3 it is common for all hardware (doesn't matter is it mac or not). Maybe, something with ACPI. Maybe, hardware is not getting initialized in time. Or even maybe TB controller is not booted in correct mode and needs reset (still can't find enough time to investigate all this PCI-X config memory features to find out how to properly reset TB - it needs special sequence by writing command into ICM memory and later sending reset command to PCI device, you can see this in Linux driver)
Also, looks like TB driver has problems with internal TB enumeration - it should read DROM from controller and using this info - populate all Ports in IOreg. On early stages - Mac efi driver is writing device properthy with shorted version of DROM - it is easy to generate this part (done on my machine). But, i suggest that later driver reads real DROM from controller. And there is tricky thing - there is machine type and vendor in that string, and maybe (just maybe, i'm not sure) - driver doesn't like our "Dell" and "XPS" from there
Again, needs time, knowledge and digging