After poring over available Z170 motherboards I have been become confused when it comes to NVMe compatibility. Can you please clarify if my assumptions are correct or wildly misguided.
Consider motherboard X. It has an M.2 slot which supports "SSD and PCIe (3.0 x4)" mode. It has no U.2 connector, and there is no mention anywhere in the specs or manual of NVMe. Assumption: NVMe support is not guaranteed but it's a BIOS issue rather than a hardware drawback, i.e. it could be possible with a BIOS revision.
Consider motherboard Y. It has an M.2 slot which supports "SSD and PCIe (3.0 x4)" mode. It does have a U.2 connector but there is no mention, as above, in the specs or manual of NVMe. Assumption: NVMe support is implicit at least via the U.2 connector because you can't get U.2 drives that aren't NVMe. It follows that NVMe is supported for M.2 drives, too, akin the the assumption below.
Consider motherboard Z. It has an M.2 slot which supports "SSD and PCIe (3.0 x4)" mode. It does have a U.2 connector, and states in the advertising blurb that you can use NVMe drives via the U.2 connector, but fails to say anything about the M.2. Assumption: M.2 NVMe devices are equally compatible, due to the fact the the M.2 socket uses the same PCIe channels as the U.2.
The Samsung SM951 is available as AHCI and NVMe - both use PCIe which perhaps is what fuels my misunderstanding. In the above examples, X, Y and Z are based on the specifications of three real Z170 motherboards from the same manufacturer; I am relying on the consistency of their wording to get my head round this, which may or may not be a good idea.