I’ve been testing an NVM Express SSD connected to my Jetson TX1 board with some success and some issues. I wanted to report findings here so others can benefit and also ask about a couple of issues I see. Here are the steps I undertook:
Stock Jetson TX1 install with 3.10.67-g3a5c467 kernel.
On a remote host I cross-compiled the stock TX1 kernel after running menuconfig to turn on NVM Express support (as a module). I had to make a couple of changes as noted in other threads to get the code to compile but it went pretty smooth.
scp’ed the nvme.ko from host to Jetson board.
sudo insmod nvme.ko
Installed the nvme-cli tool from source (https://github.com/linux-nvme/nvme-cli). There is a Ubuntu PPA for this but it does not support arm or aarch64 yet. I am working with Canonical to get that fixed.
sudo nvme list recognizes the attached device (a PMC NVM Express NVRAM card). Note this is a DRAM backed SSD which is why capacity seems small.
batesste@tegra-ubuntu:~$ sudo nvme list
Node Model Version Namepace Usage Format FW Rev
/dev/nvme0n1 MTR_MLC_TS_4GB 1.0 1 0.00 B / 4.26 GB 512 B + 0 B 2.05.36
Installed a EXT4 filesystem on the SSD and issue some IO using both dd and fio. All seems to work OK but performance seems a bit low (ping me if you want performance numbers).
I noticed messages like this in dmesg:
[ 7760.015863] process_cq did something
[ 7760.017047] mc-err: [mcerr] (0) csw_afiw: EMEM address decode error
[ 7760.023479] mc-err: [mcerr] status = 0x20010031; addr = 0x00000000
[ 7760.030281] mc-err: [mcerr] secure: no, access-type: write, SMMU fault: none
Does anyone have any idea what this is?