VMD support for new devices.


VMD support for new devices.

Add support for some more Intel VMD controllers. Some of the
newer controller have a sparce bus space that can be figured
out by probing the HW. This gives the starting bus number.
When reading the PCI config. space behind the VMD controller,
the offset of the starting bus needs to be subtracted from
the bus being read.

Fixed a bug in which in which not all of the devices
directly attached to the VMD controller would be probed.
On my initial test HW, a switch was found at bus 0, slot 0
and function 0. All of the NVME drives were behind that
switch. Now scan for all slots and functions attached to
bus 0. If a something was found then run attach after the
scan. On detach also go through all slots and functions
on bus 0.

Tested with device ID's: 0x201d & 0x9a0b

Tested by: nc@
MFC: 5c689e21361
PR: 252253

(cherry picked from commit 0c852bb9b9282b30fd047ac1de398358f33777f4)


ambriskoAuthored on Jan 28 2021, 11:12 PM
rG1a2bc12c4b25: x86: use compiler intrinsics for bswap*