Please note that this document is currently being reworked to reflect our development plans. We do intend to offer an M.2 shield for Darsena, which we would like to support two M.2 connectors provisioned for Wireless Ethernet (WiFi) and FLASH storage (SSD).
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. The M.2 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 a small fee. However, expect to pay a lot more for the core PCI-SIG specification.
Our goal is to build a single shield to host 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.).
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 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
Our provisioned 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.