/
Installing Torizon OS to i.MX 8MPlus NAVQ+ Target

Installing Torizon OS to i.MX 8MPlus NAVQ+ Target

ย 

1. Overview

This page describes how to deploy the Torizon OS target images to i.MX 8MPlus NAVQ+ targets.

The procedure documented below will install the U-Boot firmware and the Torizon OS image, including the Linux kernel and filesystem images, to the eMMC boot media of the NAVQ+ target. Having completed the installation, the i.MX 8MPlus board will boot to Torizon OS from eMMC.

Note that the procedure will erase all data that might be present on the boot media previously.

2. Locating uuu Tool

The i.MX 8M NAVQ Plus kit software manufacturing procedure makes use of the NXP uuu tool running on the Linux development host. The uuu tool performs installation of the Yocto images from the development host to the kit using the USB Serial Downloader interface.

The recommended Linux distributions to use on a development host are Ubuntu 20.04 and Fedora 35.

A pre-built binary of the uuu tool can be found in the build directory:

If required, the recommended version of the uuu tool can be downloaded from the NXP github page: Release Release uuu_1.5.182 ยท nxp-imx/mfgtools.

3. Torizon OS install images

Download the torizon_7.0.0-docker-imx8mp-navqp.tar.bz2 archive with theย release imagesย for your target board from the Emcraft site and unpack them into an arbitrary directory on the Linux host:

torizon_7.0.0-docker-imx8mp-navqp.tar.bz2

The tarball consists of three images:

  1. imx-boot - the bootloader image for the i.MX 8MPlus NAVQ+ board

  2. imx8mp-navqp-sota.wks-202503061352-mmcblk.direct - the EMCC image with Torizon OS

  3. uuu - the uuu tool to install the EMMC image to the target board

If you are installing the images built by Yocto (as opposed to using the pre-built images available from the Emcraft web site), navigate to theย $BUILDDIR/deploy/images/$MACHINEย directory in the Yocto work directory. Refer to โ€‹Understanding Build Outcome for details on the files structure in the deploy directory.

4. Installing Using USB Serial Downloader Protocol (SDP)

Perform the following step-wise procedure to install the Yocto images to the i.MX 8M NAVQ Plus kit:

  1. Power the kit off by disconnecting the USB Type C cable from the development host.

  2. Set the target boot mode to the USB serial downloader mode by setting the boot switches as follows:

    • SW2.1 - 1

    • SW2.2 - 0

  3. Power the kit on by connecting the USB Type C cable to the development host. Use the kit port labeled USB1.

  4. Check that the new USB device has appeared on your development host:

    $ lsusb | grep -i nxp Bus 001 Device 025: ID 1fc9:0146 NXP Semiconductors
  5. On the host, go to the Torizon OS build directory:

    $ cd ~/yocto-workdir/build-imx8mp-navqp $ ls imx8mp-navqp-sota.wks*direct imx8mp-navqp-sota.wks-202503061352-mmcblk.direct $ ls deploy/images/imx8mp-navqp/imx-boot deploy/images/imx8mp-navqp/imx-boot
    • The images above are:

    • imx-boot - U-Boot-ATF-OPTEE boot image;

    • imx8mp-navqp-sota.wks-<timestamp>-mmcblk.direct - eMMC image with Torizon OS;

  6. Launch the uuu tool with appropriate script as a parameter for installing the bootable Linux image:

    $ sudo ~/uuu -v -b emmc_all deploy/images/imx8mp-navqp/imx-boot imx8mp-navqp-sota.wks-202503061352-mmcblk.direct Wait for Known USB Device Appear...
  7. The uuu tool will proceed to install the Production Yocto image to the storage device (EMMC) on the target board:

    uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.165-0-g7347a80 ... FB: ucmd setenv fastboot_dev mmc FB: ucmd setenv mmcdev ${emmc_dev} FB: ucmd mmc dev ${emmc_dev} FB: flash -raw2sparse all imx8mp-navqp-sota.wks-202503060946-mmcblk.direct FB: flash -scanterm -scanlimited 0x800000 bootloader deploy/images/imx8mp-navqp/imx-boot FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi; FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0 FB: done Wait for Known USB Device Appear... New USB Device Attached at 3:312 3:312>Start Cmd:SDPS: boot -scanterm -f deploy/images/imx8mp-navqp/imx-boot -scanlimited 0x800000 100%3:312>Okay (2.223s) New USB Device Attached at 3:312 3:312>Start Cmd:FB: ucmd setenv fastboot_dev mmc 3:312>Okay (0.098s) 3:312>Start Cmd:FB: ucmd setenv mmcdev ${emmc_dev} 3:312>Okay (0.122s) 3:312>Start Cmd:FB: ucmd mmc dev ${emmc_dev} 3:312>Okay (0.044s) 3:312>Start Cmd:FB: flash -raw2sparse all imx8mp-navqp-sota.wks-202503060946-mmcblk.direct 100%3:312>Okay (119.6s) 3:312>Start Cmd:FB: flash -scanterm -scanlimited 0x800000 bootloader deploy/images/imx8mp-navqp/imx-boot 0x400000003:312>Okay (0.188s) 3:312>Start Cmd:FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi; 3:312>Okay (0.01s) 3:312>Start Cmd:FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0 3:312>Okay (0.01s) 3:312>Start Cmd:FB: done 3:312>Okay (0s)
  8. When uuu has finished, the bootable Linux image has been installed to the on-module storage. Given proper setting of the boot switches, next power-on will boot the target board from the EMMC storage device.

5. Verifying New Installation

Perform the following step-wise procedure to verify boot of the newly installed Linux images from the on-module EMMC:

  1. Power the kit off by disconnecting the USB Type C cable from the development host.

  2. Select the appropriate boot mode by setting the boot switches as follows::

    • SW2.1 - 0

    • SW2.2 - 1

  3. Power the kit on by connecting the USB Type C cable to the development host.

  4. Verify that the following Linux boot-up messages appear on the serial console:

    U-Boot SPL 2023.04-1.1.14-446-01231723-fc6d7c3511+gef538bb0d8+p0 (Jan 01 1970 - 00:00:00 +0000) DDRINFO: start DRAM init DDRINFO: DRAM rate 3000MTS ... U-Boot 2023.04-1.1.14-446-01231723-fc6d7c3511+gef538bb0d8+p0 (Jan 01 1970 - 00:00:00 +0000) CPU: i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz) CPU: Commercial temperature grade (0C to 95C) at 48C Reset cause: POR Model: Voxelbotics NAVQPlus board DRAM: 4 GiB tcpc_init port 2 TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C3 0x52] SNK.Default on CC2 Power supply on USB2 Setup pd switch on port 2 tcpc_init port 1 TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C3 0x51] Setup pd switch on port 1 Core: 226 devices, 30 uclasses, devicetree: separate MMC: FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... *** Warning - bad CRC, using default environment ... Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] ... imx8mp-navqp-1f1a48008ba6d944 login:
  5. Login to the board using the torizon/torizon credentials.

ย