Can't change dtb file via U-Boot on Colibri iMX6ULL

I’m trying to change the device tree file loaded by U-Boot on a Colibri iMX6ULL to the Aster dtb.

This should be done by modifying the “fdt_board” env variable from “eval-v3” to “aster”, but this doesn’t work, eval dtb is still loaded.

The “boot” command runs “run ubiboot”, which is:

run setup; setenv bootargs ${defargs} ${ubiargs} ${setupargs} ${vidargs}; echo Booting from NAND...; ubi part ubi &&ubi read ${kernel_addr_r} kernel && ubi read ${fdt_addr_r} dtb && run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}

I see that the bootloader is reading the volume dtb and loading this on ${fdt_addr_r}, so apparently “fdt_board” does nothing since the device actually boots after running ubiboot.

So I checked image.json in the Tezi image and there’s this:

{
    "content": {
        "rawfiles": [
            {
                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                "product_ids": "0045"
            },
            {
                "filename": "imx6ull-colibri-eval-v3.dtb",
                "product_ids": "0044"
            },
            {
                "filename": "imx6ull-colibri-eval-v3.dtb",
                "product_ids": "0036"
            },
            {
                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                "product_ids": "0040"
            }
        ]
    },
    "name": "dtb",
    "size_kib": 128,
    "type": "static"
},

So apparently imx6ull-colibri-aster.dtb and imx6ull-colibri-wifi-aster.dtb aren’t even being loaded to the dtb volume.
I’ve managed to work around this by changing

{
    "filename": "imx6ull-colibri-eval-v3.dtb",
    "product_ids": "0036"
},

to

{
    "filename": "imx6ull-colibri-aster.dtb",
    "product_ids": "0036"
},

in image.json so the Aster dtb is loaded by default. But this isn’t ideal since one should be able to select which dtb is loaded via U-Boot.

I suppose this happens on all modules using UBI.

What would be the correct way to do this?

Thanks,

Gustavo.

I don’t think there is currently any easy solution for this. There already was some discussion about this. A possible solution may be a device tree selection UI in Tezi. However, such integration is not really planned as of yet.