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.