Flashing IMX6ULL NAND with TEZI

Hello,
We want to flash our IMX6ULL 512MB Wi-Fi / Bluetooth IT Board using the TEZI installer.
Our Partition Layout is a classic A/B/DATA layout which requires 3 partitions to be written.

  • A / B both should be flashed with our rootfs image.
  • DATA can be kept empty, we will mount it into /home later
    Now we are writing an image.json and are hesitant about some of the details:
  1. We assume that the usual mmcblk0 Is missing for our BoardType stated to be equipped with SLC NAND
  2. We also assume that all our planned partitions should be installed in the ubi volume at the end of NAND
  3. Our Plan would be to create our A/B/DATA ubi-volumes using ubicreate and fitting ?byte?-offsets for each of them [1]
  4. We assume we have to flash the volumes u-boot1 AND u-boot2 with a uboot created by yocto - our yocto creates a file called u-boot-nand.imx which we assume needs to be flashed to u-boot1 and u-boot2 (in all toradex images, however, the file is called u-boot.imx-rawnand and we dont know if its the same file-format)

We would be really happy if you could confirm the points 1.-4. above, and – if not– could correct us on our assumptions.

[1] How to make partitions on SLC NAND flash which uses ubifs? - #3 by stefan.tx

Hello @carriertronic,
Toradex easy installer provides the functionality you need. You can use the image.json file from our standard image as the base for your custom programming procedure.

https://artifacts.toradex.com:443/artifactory/tdxref-oe-prod-frankfurt/dunfell-5.x.y/release/18/colibri-imx6ull/tdx-xwayland/tdx-reference-minimal-image/teziimage/image.json

{
    "config_format": "2",
    "autoinstall": false,
    "name": "Toradex Embedded Linux Reference Minimal Image",
    "description": "Minimal image without graphical interface that just boots",
    "version": "5.6.0+build.18",
    "release_date": "2022-03-30",
    "u_boot_env": "u-boot-initial-env",
    "prepare_script": "prepare.sh",
    "wrapup_script": "wrapup.sh",
    "marketing": "marketing.tar",
    "icon": "toradexlinux.png",
    "license": "LA_OPT_NXP_SW.html",
    "supported_product_ids": [
        "0036",
        "0040",
        "0044",
        "0045"
    ],
    "mtddevs": [
        {
            "name": "u-boot1",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot2",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot-env",
            "erase": true,
            "content": {}
        },
        {
            "name": "ubi",
            "ubivolumes": [
                {
                    "name": "kernel",
                    "size_kib": 12288,
                    "type": "static",
                    "content": {
                        "rawfile": {
                            "filename": "zImage",
                            "size": 5
                        }
                    }
                },
                {
                    "name": "dtb",
                    "content": {
                        "rawfiles": [
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0036"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0040"
                            },
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0044"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0045"
                            }
                        ]
                    },
                    "size_kib": 128,
                    "type": "static"
                },
                {
                    "name": "m4firmware",
                    "size_kib": 896,
                    "type": "static"
                },
                {
                    "name": "rootfs",
                    "content": {
                        "filesystem_type": "ubifs",
                        "filename": "Reference-Minimal-Image-colibri-imx6ull.tar.xz",
                        "uncompressed_size": 108.703125
                    }
                }
            ]
        }
    ]
}

You can create partitions on your NAND flash, create and populate the contents of ubi volumes and also use it for factory programming with the auto installation features.

In the attached image.json you can see examples of how to create the partitions for both u-boot’s (MTD partitions with raw contents), and also the creation of the needed ubi volumes like the kernel and rootfs, but you can also add your data volume here.
In this article you’ll find more information about the available image.json configuration variables.

Best Regards,
Rafael Beims