Getting Started
Cargt Provided Software Resources
Public Yocto Source Code Repositories
Cargt GitHub Organization – Public repositories for Yocto layers, example applications, and board support packages.
Public Package Repositories
Cargt Package Repository – Public repositories for pre-built packages and binaries for development with Cargt hardware designs.
Public Pre-compiled Images
Pre-built complete system images for supported Cargt hardware suitable for initial flashing or full system recovery.
Update images for SWUpdate (i.MX) and RAUC (STM32MP2), which replace the whole root file system in the field without reflashing the board.
Running Linux on a Cargt design
Flashing a Pre-compiled image to eMMC / SD card using UUU on an i.MX design
Note
CARGT recommends eMMC for performance and reliability. eMMC is the default. Using SD card requires changing U-Boot variables and expert knowledge.
Put the board into the UUU mode as per the hardware design’s user guide.
Option 1: For OSM-L based designs, this typically involves holding the BOOT button while powering on the board.
Option 2: If the board has no BOOT button, set
bootcmdin the U-Boot environment; see NXP - Enter UUU mode using U-Boot Environment Variable Method.
Connect the board to the host computer via USB and check the connection by running:
uuu -lsusbThe output should list the connected device.
Download these files for your machine from the Cargt Package Repository Images, for example from
wrynose/imx93-cargt-00363-00365/:imx-boot.tagged- the bootloadercargt-image-<type>-<machine>.rootfs.wic.zst- the full disk image (partition table and filesystems), compressed with zstdcargt-image-<type>-<machine>.rootfs.wic.bmap- optional, the block map that makes flashing much faster; see Faster Flashing with bmap
Note
Older releases named the bootloader file
imx-boot-tagged. Use whichever name is in the directory you downloaded from.Flash the bootloader and image. This erases everything on the target storage.
To eMMC:
uuu -b emmc_all imx-boot.tagged cargt-image-dev-imx93-cargt-00363-00365.rootfs.wic.zst
To an SD card:
uuu -b sd_all imx-boot.tagged cargt-image-dev-imx93-cargt-00363-00365.rootfs.wic.zst
Power cycle the board without holding the BOOT button. If you entered UUU mode by changing
bootcmd, restore it first (see below).
If uuu waits at Wait for Known USB Device Appear... or fails, see
Flashing Troubleshooting and Recovery.
Example session on Windows, flashing a board that is already in fastboot
mode (FB:):
C:\NXP\images>uuu -lsusb
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.201-0-g727fc2b
Connected Known USB Devices
Path Chip Pro Vid Pid BcdVersion Serial_no
====================================================================
4:2 FB: 0x1FC9 0x0152 0x0221 15FD978D21EA40AF
C:\NXP\images>uuu -b emmc_all imx-boot-tagged cargt-image-core.rootfs.wic.zst
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.201-0-g727fc2b
Success 1 Failure 0
4:2-15FD978D 8/ 8 [Done ] FB: done
Other UUU options:
-vprints verbose output.-l <log_file>writes a log of the session.uuuaccepts the image uncompressed (.wic) or compressed (.wic.zst,.wic.gz,.wic.bz2).Program only the bootloader:
uuu -b emmc imx-boot.tagged uuu -b sd imx-boot.tagged
Run the bootloader (SPL and U-Boot) from RAM without writing anything:
uuu imx-boot
Note
i.MX 95: uuu imx-boot and the built-in -b scripts stop after
the ROM stage on i.MX 95 and never load the SPL. Use an explicit
uuu script instead. Save this as imx95-boot.uuu:
uuu_version 1.5.0
SDPS: boot -f imx-boot
SDPV: write -f imx-boot -skipspl
SDPV: jump
and run uuu imx95-boot.uuu. The console shows DDR training output
followed by the SPL and U-Boot banners. Verified on the 00414 SOM in
serial download mode (October 2026).
Faster Flashing with bmap
The disk image is about 15 GB uncompressed, but most of it is empty space:
the second root partition, free space in the root file system, and
/data. Without help, uuu decompresses and scans all of it, and the
eMMC writes zeros to the empty areas. The .wic.bmap file published next
to each image lists the blocks that hold data (about 2.2 GB for
cargt-image-dev), and -bmap tells uuu to write only those:
uuu -bmap -b emmc_all imx-boot.tagged cargt-image-dev-imx93-cargt-00363-00428.rootfs.wic.zst
Keep the .wic.bmap file in the same folder as the image. For
<name>.wic.zst, uuu looks for <name>.wic.bmap. The built-in
emmc_all and sd_all scripts only use it when you pass -bmap.
Flashing cargt-image-dev to the eMMC of an i.MX 93 00363 on the 00428
carrier took 2 minutes 32 seconds with -bmap, and 15 to 20 minutes
without it.
To flash several boards at once, run uuu in daemon mode with -d; it
flashes every board that connects until you stop it. Each board needs
memory on the host computer: on a host with 2 GB of RAM, flashing three
boards at once ran out of memory, so flash one board at a time there with
-m <usb path> (the paths are listed by uuu -lsusb):
uuu -d -bmap -b emmc_all imx-boot.tagged <image>.wic.zst # all boards
uuu -m 1:12 -bmap -b emmc_all imx-boot.tagged <image>.wic.zst # one board
Flashing a Pre-compiled image on an STM32MP2
Each STM32MP2 image directory on the Cargt Package Repository Images
(for example scarthgap/stm32mp25-cargt-00395-02-00365/) contains
everything needed for both boot media:
eMMC: flash with STM32CubeProgrammer over USB, using this flash layout from the
flashlayout_cargt-image-dev/directory (here for the 00395-02):optee/FlashLayout_emmc_stm32mp257f-cargt-00395-02-00365-optee.tsv
It is the only eMMC layout with the A and B partitions that RAUC updates need (see RAUC A/B OTA Updates — STM32MP2 (00395-01-00365 / 00395-02-00365)). The layouts in
opteemin/, and the-glt*display variants in both directories, have a single set of partitions, so RAUC updates cannot work on a board flashed with them.SD card: write the
.wicimage from a Linux host.bmaptooluses the.wic.bmapfile next to the image and only writes the blocks that contain data:bmaptool copy cargt-image-dev-cargt-openstlinux-weston-stm32mp25-cargt-00395-02-00365.rootfs.wic.bz2 /dev/sdX
Replace
/dev/sdXwith the SD card device (check withlsblk). Everything on the card is erased.
A step-by-step STM32CubeProgrammer guide is planned. For the 00395 A/B partition layout, see RAUC A/B OTA Updates — STM32MP2 (00395-01-00365 / 00395-02-00365).
NXP - Enter UUU mode using U-Boot Environment Variable Method
- To enter UUU mode without using the BOOT button, you can set the U-Boot environment variable
bootcmdto boot into UUU mode on the next reboot.Use either
fw_setenvfrom Linux orsetenvat the U-Boot prompt; see U-Boot Environment for how to reach the prompt and which variables Cargt images use.# Using fw_setenv (from Linux shell) fw_setenv bootcmd 'fastboot auto' fw_printenv bootcmd # Verify the change reboot # Using setenv (from U-Boot console) setenv bootcmd 'fastboot auto' saveenv printenv bootcmd # Verify the change resetWarning
The board now enters fastboot on every boot until
bootcmdis restored. Flashing withuuudoes not necessarily reset the U-Boot environment. Before changing it, note the current value withfw_printenv bootcmd. To restore the default afterwards, stop at the U-Boot prompt and run:env default bootcmd saveenv reset