I am designing a motherboard that uses a SMARC format plugin card for the CPU. This card is based on an Intel Atom x6413E CPU. The SMARC CPU card has various interfaces available, including USB2.0, USB3.0, SDIO, PCIex4 (Gen 3), SATA (Gen 3), UART. We would like two M.2 sockets (X and Y) on our motherboard, one used for an SSD and the other used for WiFi/Bluetooth. I am not sure of the best key arrangement to use for each M.2 socket or what interfaces need connecting to each socket.
I think there are a few possible arrangements:
NVMe SSD in M.2 socket X (M.2X), using all four PCIe lanes (M-key card). WiFi/BT in M.2 socket Y (M.2Y E or A-key card). I am not sure if this would even work if the WiFi/BT card also uses the PCIe interface, since the SSD is using all of the available lanes. Maybe I could use the USB or SDIO interface for the WiFi/BT card, but this may restrict the choice of available WiFi/BT cards considerably.
SATA SSD in M.2X (B or M-key card) and WiFi/BT in M.2Y (E or A-key card). The SSD uses the SATA interface and the WiFi/BT uses PCIe. The SATA interface will allow 6Gbit/s which may be fast enough for our needs, but this format of SSD may not be available for much longer, as NVMe seems to be becoming standard.
Do we need to route all four PCIe lanes to both M.2 sockets? Maybe we could just bring two PCIe lanes to M.2X and two PCIe lanes to M.2Y, or three PCIe lanes to M.2X and one PCIe lane to M.2Y? Would the NVMe SSD work with only a two lane or one lane PCIe interface?
I have a very limited understanding of the PCIe interface and the M.2 format, so I have a few questions outlined below. It doesn't help that the PCIe M.2 specification isn't freely available. It seems that you need to pay PCI-SIG $2000 for a copy of the specification. Maybe this wouldn't help though.
Can anyone point me to some good sources of information on using and designing PCIe interfaces, along with the M.2 format?
Please can someone help answer my questions.