Richard's Blog

Richard's Blog


Anything stupid

Tags


!NEC MPi400: CFexpress

Why I chose CFexpress instead of a m.2 NVME

CFexpress Logo (Source: Wikipedia)
Example CFexpress card (Source: Wikipedia)

Background

CFexpress is a standardized PCIe SSD engineered for use in digital cameras.
CFexpress cards are the descendants of CFast (SATA) and XDQ (PCIe) cards. It shares it's form factor with XDQ cards and is compatible with these (hardware wise).
Devices using XDQ can support CFexpress if they get a firmware update.

Big advantage for me is the small form factor which is around the size of 2230 NVME drives. Additionally it provides some nostalgia as all old WinCE handhelds used Compact Flash cards for user storage. 

I will not only store the home directory (user storage) but also the complete Linux root filesystem on the CFexpress card.

My main reason for using CFexpress is nostalgia and the possibility to use empty CFexpress cards housings with a socket for 2230 NVMEs. In this way I can use cheaper NVME drives instead of costly CFexpress cards. 
Second reason: I can simply swap between different Linux distributions with ease.

Hardware details

CFexpress uses the NVME v1.2 protocol over PCIe which is exactly the same as m2 SSDs are using.

This brings the advantage of using the single PCIe lane of the CM4 for direct communication.

Mechanical overview

CFexpress cards are a little bit smaller (38.5 × 29.8 × 3.8mm) than Compact Flash cards (43×36×5mm).

Example host side connector (Source: Attend)
Device side connector (Source: Wikipedia) Pin1 on the left
PinSignal PinSignal PinSignal
1GND 8Reserved 15GND
2PERn1 9PERST# 16PERn0
3PERp1 10+3.3V 17PERp0
4GND 11CLKREQ# 18GND
5PETn1 12INS# 19PETn0
6PETp1 13REFCLK- 20PETp0
7Reserved 14REFCLK+ 21GND
View Comments