Booting to wrong dtb file

I’v been following “build-u-boot-and-linux-kernel-from-source-code” for my new Apalis iMX6D 512 on an ixora card. I think I’ve correctly built a new dtb file and it appears on the Apalis card:

/media/mmcblk0p1/imx6q-apalis_v1_0-ixora.dtb

however, there are three other dtb files in that folder:

imx6q-apalis-eval.dtb
imx6q-apalis-ixora.dtb
imx6q-apalis_v1_0-eval.dtb

On boot up I see on the terminal “reading imx6q-apalis-eval.dtb”. Did I miss something and it’s reading the wrong tree?

You are correct, there are 4 device trees for 4 different possible configurations. For whichever you decide to use, you must set the fdt_file variable in the U-boot environment accordingly. It is set to imx6q-apalis-eval.dtb by default.

setenv fdt_file imx6q-apalis-ixora.dtb
saveenv

Since you’re using the Ixora carrier board, its recommended to use one of the Ixora device trees.

Important to note: only use the v1_0 device trees if you have a V1.0 HW version of the Apalis iMX6 module. If you have a V1.1 version (or later) then use imx6q-apalis-ixora.dtb.

Be sure that you also build & copy the current device tree to the SD card prior to flashing it.

When you go to flash it, you can either use the u-boot update commands:

run setupdate
run update_uboot

Or you can simply mount the boot partition and copy the dtb file to the partition from Linux:

mount /dev/mmcblk0p0 /boot
cp imx6q-apalis-ixora.dtb /boot/imx6q-apalis-ixora.dtb

Thanks, this looked like it made sense until I ran:

colin@colin-Inspiron-5548:~/linux-toradex$ make imx6q-apalis-ixora.dtb

This brings up a whole lot of questions about the processor that I have no idea how to answer. See attached.

link text

It appears that the compiler thinks that you’re compiling for x86. Make sure to re-setup your cross-compiling environment (ie. re-export ARCH & any other cross compile environment variables). You should probably also re-run ‘make apalis_imx6_defconfig’.

Great, this fixed these issues–on to the next.