M.2, which is also known as "Next Generation Form Factor" (NGFF) is the follow on to other small scale connectors like Mini PCI Express and mSATA. This new form factor is defined by the Peripheral Component Interconnect Special Interest Group (PCI-SIG) in the "PCI Express M.2 Specification Revision 1.0" and by The Serial ATA International Organization (SATA-IO) for M.2 SATA SSDs in the "Serial ATA Revision 3.2 Specification". The latter specification builds off of the PCI-SIG specification and can be purchased for only $25. However, expect to pay a lot more for the core PCI-SIG specification.
The Private Island platform makes use of two M.2 connectors for the primary purpose of supporting add-in WiFi and SSD modules. M.2 supports numerous configurations and protocols (e.g., PCIe x1, x2, x4, SATA, I2C, UART, USB, etc.), but our SoC is limited in what it can support.
M.2 defines at least twelve key configurations, but currently only four are well defined and in use: A, B, E, and M. Particular key configurations are implemented by removing 8 pins from the 75-position connector to yield 67 pins. Our Socket 1 Type M.2 connector, which is primarily provisioned for WiFi, will support PCIe x1 using an E Key connector. Our Socket 2 Type M.2 connector, which is provisioned primarily for SSD expansion, will utilize a B Key connector.
We find that M.2 SATA SSDs are typically dual-keyed for B and M sockets. However, very high performance PCIe SSD drives may only support the M keying option since this is the configuration that supports x4 PCIe. These high performance cards will also support NVM Express
Typical M.2 WiFi configurations are dual-keyed for A and E. Many of these cards are dual function (e.g., support both WiFi and Bluetooth).
Listed below is a summary of the keying for the popular slot options. Note, a key slot is 8 pins in width and these pins are removed on the socket:
- A: 8-15
- B: 12-19
- E: 24-31
- M: 59-66
The Private Island M.2 connectors are listed below. Note that TE Connectivy 4.2H connectors are being used, which allow for double sided M.2 cards. TE provides a wealth of information about M.2 on its web site The module lengths to be supported are TBD.
- Key E (Socket 1 Type, Connectivity) for WiFi : TE 2199230-4
- Key B (Socket 2 Type, SSD/Other) for SATA SSD: TE 2199230-3
Each M.2 connector has four CONFIG (0..3) pins that are used to detect the module type. The M.2 cards either ground these pins or leave them floating. The traces on the system are pulled up and are routed to GPIO.
SUSCLK, which is a 32KHz clock to enable low power states, is sourced from the FPGA.
Equipment for Testing and Prototyping
Listed below are some of the equipment that we have on our lab bench to test and prototype with M.2 PCI and M.2 SATA. We plan to update this further this month (April 2017)
DN M.2 (NGFF) Wireless Card to PCI-e 1X Adapter
Intel M.2 Dual Band Wireless-AC 8260 (8260NGW)
This M.2 Intel WiFi card supports both 802.11abgn+ac and Bluetooth. The highlights of the product are listed below: