Booting Torizon OS from NVMe on i.MX8MP

Hello guys,

I’m currently using the i.MX8MP with Torizon OS and planning to add an NVMe disk via PCIe. My goal is to install the full Linux system (Torizon OS and root filesystem) onto the NVMe drive, and use the eMMC only as a secondary disk for securely storing our application-specific files.

I have a few questions regarding this setup:

  1. Is it possible to configure the Toradex Easy Installer to install Torizon OS directly to the NVMe drive instead of the default eMMC?
  2. Is it currently possible to configure U-Boot to boot entirely from the NVMe drive?

I came across this older forum post, which mentions that booting from PCIe/NVMe was not supported at the time. Is this still the case?

Additionally, I found that NXP provides a patch for enabling PCIe support in U-Boot for i.MX8M Plus:
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Add-i-MX8MPlus-pci-driver-in-uboot/ta-p/1753246

Would it be possible to apply this patch and use it with Torizon OS to enable booting from NVMe?

Thank you very much in advance for your support!

Hello @Srimoki,

This may be possible if the Toradex Easy Installer has support for NVMe drives.
However, I will double-check this to confirm it.


The Verdin iMX8MP module is fused to always boot from the eMMC.
Therefore, at least the bootloader will need to be in the eMMC.


From a bootloader in the eMMC, you could boot to other media.
This requires that the other media is supported by u-boot.
The patch you pointed out may be needed, however I would recommend that you check for support of PCIe and NVMe in the u-boot version we have for the Verdin iMX8MP.
This information can be found here: Release Matrix - Kernel/U-Boot Version | Toradex Developer Center
Since Torizon OS/BSP 7, we use an upstream u-boot for the Verdin iMX8MP, so this patch is very unlikely to apply.


Storing the OS in an NVMe drive is not a use case we actively test and support, so it would be a custom implementation that will bring more maintenance work later.
Would it not be possible to do the opposite, use the eMMC for the OS and NVMe for the application-specific files?

Best Regards,
Bruno