How to use rootfs in nvme ssd?

I have an NVMe ssd populated on M.2 nvme port on jetson xavier. I want to use nvme ssd as my rootfs, but I couldn’t get nvme ssd mounted as rootfs.

Please note that I am NOT boot from nvme. I am still boot from emmc. Kernel, devicetree, coreboot, … are all stored on emmc. I just want to use nvme as rootfs

When my rootfs is emmc, I can see nvme ssd using “lsblk” command, and I can manually mount nvme ssd. So it has linux nvme support enabled and working.

I compiled coreboot with extlinux suport, so it can read extlinux.conf.
I specified root=/dev/nvme0n1 in “APPEND” line in extlinux.conf. I tried 2 cases, one without initrd, and one with initrd.

  1. without initrd: It does not have login console show up. But I can ping to its static ip address that I specified in network config file which is stored on rootfs in nvme. Don’t know why there is no login terminal.
  2. with initrd: I added line of “INITRD /boot/initrd” in extlinux.conf. I modified initrd provided by l4t pacakge. The /init script does not work for nvme drive, so I modified it to mount nvme drive, if root is nvme drive. But it still doesn’t work. It seems freezes at initrd. There is no login terminal, and I couldn’t ping to that static ip address either.
    Please note, the initrd that I created for sure works because if I set rootfs to emmc, it works.

Also, I am pretty confident with the rootfs in nvme. I followed the steps in:
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-322/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Frootfs_custom.html%23
So it should has all necessary nvidia script, libs.

Thanks,
Shuo

Hi lunarking1028,

Please reference Topic-1060950 steps to boot rootfs from NVMe.
The flash command is the same, need check your NVMe PARTUUID.
$ sudo ./flash.sh jetson-tx2 external