More Thunderbolt / PCIe adapter info

Some additional information continuing from my past post on the TH05.

Thunderbolt's implementation on Apple firmware does a few odd things that need to be worked around by Windows 7 and Linux. If your OS doesn't advertise itself as Darwin, the ACPI tables will not wake the controller unless a device is plugged in at boot. Exactly how the controller is woken up is still unknown, so waking it after boot isn't completely possible under Linux and I'm unaware of any Windows support (though it may exist with Windows laptops shipping Thunderbolt finally). Matthew Garrett has done the investation of how to replicate what happens when the OS is detected as Darwin during EFI loading, what's missing is later configuration of the controller once the OS has booted.

The practical implication of this is you have to boot with a device attached, or you won't get a usable PCIe link once Windows or Linux has booted. Reconnecting a device doesn't work either. For an eGPU on Apple hardware you are restricted to devices that do not interfere with the EFI loader or BIOS emulation, which at least for my 2012 MacBook Air means almost everything I've tried doesn't work in BIOS mode. An AMD GPU (Radeon 5750) didn't crash the BIOS, but it didn't allocate memory under Linux successfully. Another AMD GPU (Radeon 5830) hangs it. Every Nvidia GPU I tried hangs the BIOS (9800 GT, GTS 450, GTX 550 Ti). All of these load fine in EFI mode, though I've only extensively tried the GTX 550 Ti.

I'd like to try some other PCIe devices with less demanding memory requirements. Much like the laptops with crashing BIOS implementations using the PE4L, memory demands are probably why all these GPUs hang Apple's fragile BIOS emulation.