"How do I assure that the CPU and drivers for the controllers are correctly matched to the hardware?"
If they're not correctly matched those devices either won't be recognize, they'll be listed as "unknown" in the lspci output or they won't work. Also, there are cases when there might be a few or many kernel modules that support a piece of hardware. I've only had very limited experience with this and that was mostly only with sound cards, ethernet controllers and wifi chipsets. This would require a some research and/or testing on your part to determine which kernel module is best. "Along with PCI hardware devices, lspci can show what kernel driver modules are loaded with the -k option. I add this option to my lspci commands to view several pieces of information about my Nvidia devices. $ sudo lspci -nn -k -d 10de: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1) Subsystem: eVga.com. Corp. GK107 [GeForce GTX 650] [3842:2650] Kernel driver in use: nvidia Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia 01:00.1 Audio device [0403]: NVIDIA Corporation GK107 HDMI Audio Controller [10de:0e1b] (rev a1) Subsystem: eVga.com. Corp. GK107 HDMI Audio Controller [3842:2650] Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel Two additional lines are displayed: Kernel driver in use and Kernel modules. The second one lists the modules available to support the device." Lastly, "Keeping up to date New devices and vendors are constantly entering the market. If you see a device listed as unknown, your PCI device ID database may be outdated. There are two ways to check. The -Q option uses DNS to query the central database. This, of course, requires network connectivity. $ sudo lspci -Q You can also update your local PCI ID database by running the command update-pciids. $ sudo update-pciids Downloaded daily snapshot dated 2021-08-22 03:15:0" Reference - https://opensource.com/article/21/9/lspci-linux-hardware