Colibri imx7 Dual V1.1D vs V1.1A compatibility

It was expected that the imx7 V1.1D (code 0033) and V1.1A (code 0081) would be compatible in production - that is loading the same image. But there are several small differences leading to boot failure.

original working V1.1D boot

CPU:   Freescale i.MX7D rev1.3 1000 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 35C
Reset cause: POR
DRAM:  512 MiB
PMIC:  RN5T567 LSIVER=0x01 OTPVER=0x0d
NAND:  512 MiB
MMC:   FSL_SDHC: 0
Loading Environment from NAND... OK
In:    serial
Out:   serial
Err:   serial
Model: Toradex Colibri iMX7 Dual 512MB V1.1D, Serial# 14782530
SEC0: RNG instantiated
Net:   eth0: ethernet@30be0000
Hit any key to stop autoboot:  0
Booting from NAND...
ubi0: default fastmap pool size: 200
ubi0: default fastmap WL pool size: 100
ubi0: attaching mtd5
ubi0: attached by fastmap
ubi0: fastmap pool size: 200
ubi0: fastmap WL pool size: 100
ubi0: attached mtd5 (name "ubi", size 508 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 4056, bad PEBs: 8, corrupted PEBs: 0
ubi0: user volume: 4, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 20/8, WL threshold: 4096, image sequence number: 1851270044
ubi0: available PEBs: 0, total reserved PEBs: 4056, PEBs reserved for bad PEB handling: 72
No size specified -> Using max size (7041512)
Read 7041512 bytes from volume kernel to 81000000
No size specified -> Using max size (49766)
Read 49766 bytes from volume dtb to 82000000
Kernel image @ 0x81000000 [ 0x000000 - 0x6b71e8 ]
## Flattened Device Tree blob at 82000000

=============================================

V1.1A with same image flashed from easyinstaller

CPU: Freescale i.MX7D rev1.3 1000 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 36C
Reset cause: POR
DRAM: 512 MiB
PMIC: RN5T567 LSIVER=0x01 OTPVER=0x0d
NAND: 512 MiB
MMC: FSL_SDHC: 0
Loading Environment from NAND... OK
In: serial
Out: serial
Err: serial
Model: Toradex *UNKNOWN MODULE V1.1A*, Serial# 15337877
SEC0: RNG instantiated
Net: eth0: ethernet@30be0000
Hit any key to stop autoboot: 0
Booting from NAND...
ubi0: default fastmap pool size: 200
ubi0: default fastmap WL pool size: 100
ubi0: attaching mtd5
ubi0: scanning is finished
ubi0: attached mtd5 (name "ubi", size 508 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 4060, bad PEBs: 4, corrupted PEBs: 0
ubi0: user volume: 4, internal volumes: 1, max. volumes count: 128
ubi0: *max/mean erase counter: 3/1*, WL threshold: 4096, image sequence number: 1913462415
ubi0: available PEBs: 0, total reserved PEBs: 4060, PEBs reserved for bad PEB handling: 76
No size specified -> Using *max size (7041464)*
Read 7041464 bytes from volume kernel to 81000000
Kernel image @ 0x81000000 [ 0x000000 - 0x6b71b8 ]
ERROR: Did not find a cmdline Flattened Device Tree
FDT and ATAGS support not compiled in - hanging
### ERROR ### Please RESET the board ###

========= our custom image.json ======================

{
    "config_format": "2",
    "autoinstall": false,
    "name": "Toradex Embedded Linux Minimal Image BDSK",
    "description": "Minimal image without graphical interface that just boots",
    "version": "5.4.260",
    "release_date": "2023-11-09",
    "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": [
        "0032",
        "0033",
        "0041",
	"0081"
    ],
    "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": "imx7d-colibri-eval-v3.dtb",
                                "product_ids": "0033"
                            },
                            {
                                "filename": "imx7d-colibri-eval-v3.dtb",
                                "product_ids": "0041"
                            }
                        ]
                    },
                    "size_kib": 128,
                    "type": "static"
                },
                {
                    "name": "m4firmware",
                    "size_kib": 896,
                    "type": "static"
                },
                {
                    "name": "rootfs",
                    "content": {
                        "filesystem_type": "ubifs",
                        "filename": "BDSK-rootfs.tar.gz",
                        "uncompressed_size": 187.8417969
                    }
                }
            ]
        }
    ]
}

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


The issue you’re experiencing with the Colibri iMX7 V1.1A module not booting correctly with the same image used for the V1.1D module could be due to several factors. Here are some potential areas to investigate:

  1. Device Tree Compatibility: The error message indicates a problem with the Flattened Device Tree (FDT). Ensure that the device tree blob (DTB) file is compatible with both module versions. The image.json file specifies the same DTB for both product IDs 0033 and 0041, but you should verify that the DTB is indeed suitable for the V1.1A module.

  2. Module Identification: The boot log for the V1.1A module shows “Toradex UNKNOWN MODULE V1.1A”. This suggests that the module is not being correctly identified. Check if there are any differences in the module’s identification process or if there are updates needed in the U-Boot environment or the image configuration to properly recognize the V1.1A module.

  3. U-Boot Environment: Since the environment is loaded from NAND, ensure that the U-Boot environment variables are correctly set for the V1.1A module. There might be differences in the environment that need to be addressed.

  4. Image Configuration: Review the image.json configuration to ensure that all necessary files and settings are correctly specified for both module versions. Pay special attention to the supported_product_ids and ensure that all necessary files are included and correctly referenced.

  5. Hardware Differences: Although the modules are expected to be compatible, there might be subtle hardware differences that require specific configurations or updates in the software stack.

  6. Software Updates: Ensure that you are using the latest version of the Toradex Easy Installer and the BSP that supports both module versions. There might be updates or patches that address compatibility issues.

If these suggestions do not resolve the issue, consider reaching out to Toradex technical support for further assistance, as they may have more specific insights or updates regarding compatibility between these module versions.

Please, also check if these links can help you solve your problem:

Unable to set I2C4 Alternate function on iMX7.

this was missing

{
“filename”: “imx7d-colibri-eval-v3.dtb”,
“product_ids”: “0081”
},

Dear @pfarre,

Thank you for sending us your solution. I am glad you were able to solve it.

Best regards,
Collin