On Fri, Dec 30, 2022 at 12:38:27PM +0100, Christian Schaubschläger wrote: > Ok, setting CONFIG_USB4=n makes everything work as expected! Even > hotplugging the dock works fine. Yes but things like power management does not. > Now I've tried this: CONFIG_USB4=m and blacklist the thunderbolt > module (because disabling CONFIG_USB4 in general is not an option for > me (I guess?) There's probably hardware out there where the firmware > doesn't set up the PCIe tunnels. Then I need the linux thunderbolt > driver to do this I suppose). You must have CONFIG_USB4=n because that makes the Linux ACPI core not to negotiate software connection manager support. Blaclisting the Thunderbolt driver does not do that as that code is always built-in. > So with CONFIG_USB=m and blacklisting the thunderbolt module this > happens: the tunnel is there before and after linux (PXE works), but > in linux none of the devices that sit behind the PCIe tunnel (network, > external display) are there... that's strange, because I would have > expected that CONFIG_USB4=m + blacklist thunderbolt would be the same > as CONFIG_USB4=n. Which obviously isn't the case. I've attached lspci > output from either case. See above. > Is there any other option to decide at boottime whether or not to use > the USB4 driver (besides using two different kernels)? No but this is not the "final" solution - just an experiment. Okay so we have this: - When both Linux and Windows uses the same firmware connection manager all work. - If you install Windows 11 (or whatever the fresh one is that actually supports USB4 and software connection manager) you end up in the exact same situation. Can you try following: 1. Go back to CONFIG_USB4=m 2. Boot the system up 3. Check that the PCIe tunneling is up and things work as expected 4. Unplug the dock 5. Unload the Thunderbolt driver # rmmod thunderbolt 6. Plug the dock back 7. Soft reboot the system Does this make the PXE boot see the connected device?