Created attachment 200058 [details]
VMD Driver Patch
At a high-level, "Intel® VMD enables hot swap replacement of NVMe* SSDs from the PCIe* bus without shutting down the system while standardized LED management helps provide quick identification of SSD status."
This is realized through the addition of a VMD controller on the PCIe bus of high-end systems (e.g., Xeon) which "hides" 1 to N PCIe ports underneath it. As you might imagine, this implies the need for a VMD driver which either delegates incoming NVMe requests to the appropriate drivers (e.g., NVMe, hot-plug, etc.) or a VMD driver which incorporates the NVMe, hot-plug, etc. functionality all on its own.
FreeBSD is missing either such type of VMD driver today, and consequently end-users like Netflix are getting the mistaken impression FreeBSD doesn't have a driver for their invisible NVMe devices or the NVMe devices are broken...
Attached to this bug report is a patch adding a VMD stub driver informing the end-user they should disable the VMD feature in their BIOS. This stub driver is a stop-gap measure to eventually be replaced with a full-fledged VMD driver (I work for the NVMe/VMD OSS driver team at Intel).
BTW, this patch was tested in a system with VMD enabled:
root@midnight-freebsd:/usr/src # dmesg | grep vmd
vmd0: Unsupported Volume Management Device (VMD) controller enabled.
I have a hacked up VMD driver limping along. I'd like to co-ordinate work on this. It's not full feature but I can do I/Os to SSD's in VMD mode and with VROC enabled. GRAID should be taught how to read the EFI variable from VROC
and get RAID 5 write support etc.
Checked in driver r353380.