Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 4 Next »

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: https://github.com/NXPmicro/mfgtools/releases/latest.

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:

TBD: add link to the torizon_7.0.0-docker-imx8mp-navqp.tar.bz2 tarball

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-202503060946-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-202503060946-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.

  • No labels