All the SATA's are compatible with each other, they just wont run at the full speed so if you put a sata3 drive in a sata2 port it will only run at 3gb/s instead of 6gb/s.
I have that same laptop as well and i have put an ssd in it although its not the Samsung but a Corsair Neutron GTX (was on sale at the time)
Samsung support have not misinformed you, its just that they wont support you if something goes wrong and you have a part in that they have declared un-supported, or the person who replied to you doesn't know what they are talking about. But if your fine with that I would go ahead and buy an ssd
NVMe support on the motherboard is only about the firmware (BIOS/UEFI). That's because NVMe is not a physical connector or electronic transmission protocol like PCI Express. Instead, it is a way to talk to the SSD controller, much like AHCI is way to talk to the SATA HBA (or backwards-compatible PCIe SSDs).
It is also only about booting. After that, the operating system takes over.
With M.2/U.2, there are two types of connections:
- SATA (supported by U.2 ports and M.2 slots keyed B or M)
- PCIe (supported by U.2 ports and M.2 slots keyed A, B, E or M)
A SATA M.2/U.2 SSD interfaces with an external (not on the SSD but on the mainboard) SATA HBA (Host Bus Adapter) using the SATA protocol. The operating system typically talks to the SATA HBA using AHCI. Everything works the same as when connecting a SATA drive to a SATA port. With U.2, you are even using a regular SATA cable.
A PCIe M.2/U.2 SSD on the other hand comes in two varieties. It has an equivalent to the SATA HBA built-in. The host can talk to this controller using one of two standard:
- AHCI (none available with U.2, but still possible)
- NVMe
An AHCI controller has limited performance. However, it offers the best compatibility because virtually all (but very old) firmware already supports AHCI. As such, you can boot from such SSDs no problem. (Provided the SSD itself isn't somehow limited in that regard.)
The NVMe specification is more suitable for non-rotational drives like SSDs and offers better performance by reducing overhead and whatnot. However, until relatively recently, mainboard firmware did not support this standard and could not boot from NVMe SSDs. You could still access them from your operating system, provided appropriate drivers were available.
Wikipedia has a great image on this topic:
(Just ignore that it's apparently only about SATA Express/U.2, M.2 is mostly equivalent in this case.)
tl;dr: All NVMe SSDs use a PCI Express connection. As such, they appear the same to the BIOS, whether connected via U.2, M.2 or a full-size PCI Express slot.
However, having an M.2 or U.2 slot does not guarantee in any way that the firmware can boot from NVMe storage devices.
The manufacturer could provide a NVMe-boot-capable firmware later, yes.
Best Answer
The best way to determine compatibility is to check the motherboard and device manuals to identify what interfaces they use, or to try it.
"M.2" is a standard that outlines a number of connectors, and an important factor is the keying.
An "M.2" connector doesn't necessarily support all of the busses that can be carried, including PCI Express 3.0 (NVMe) SATA 3.0 or USB 3.0 (and thus USB 2.0).
For example the "B key" and "M key" variants are quite common, but they can be combined on the card-edge connector:
This keying gives you a hint at what interfaces might be supported:
However, ultimately it's up to the host (i.e: motherboard) to provide those interfaces.
As you've found, there are "M.2 storage devices" that use the SATA interface, but they will only work on a motherboard with a suitably keyed connector that actually wires up / provides the SATA interface.
Equally, an "M.2 storage device" that uses the PCI Express interface (and is thus likely NVMe, but could be AHCI) will need support from the motherboard.
This can become a complex topic...
It is entirely possible that the one connector on a motherboard will support both PCI Express (thus NVMe) and SATA.
SATA support over M.2 will often come at the cost of disabling a SATA connector, for example:
It is also quite possible that an M.2 NVMe device will share bandwidth with (or steal from) other PCI Express cards, for example