I want to share this for everyone’s benefit (and help drive traffic to Fedora ).
When you try to include xhci kernel module into your initramfs with dracut in order to load USB3 functionality when loading Fedora, you will run into one or two problems, potentially.
First, the kernel modules you want to include with dracut must not be compiled into kernel and must be compiled as separate modules.
Second, you must explicitly instruct dracut to load every kernel module you are interested in. Dracut will not solve dependencies for you. For example, if you instruct dracut to include “xhci_hcd” kernel module it will include only that module, and your installation will not boot in USB3 mode. So, you must include xhci_hcd AND its dependency xhci_pci with dracut for USB3 to work during initramfs stage. This can be confusing because ehci_pci kernel module is included with dracut by default.
That’s actually a good question for devs. Can dracut be made to solve kernel module dependencies by scanning kernel config files?