Custom device tree from Bitbake in BSP 5.0, something has changed

For a custom device tree, I have added the dts file and, from bitbake -c devshell virtual/kernel, successfully recompiled the dtb file into arch/arm/boot/dts with make dtbs.

This new file doesn’t work on the Apalis because the format isn’t recognized. I note though that the file on the Apalis for imx6q-apalis-eval in arch/arm/boot/dts is only 57650 bytes long, but the deployed version from the module (and from image/boot) is 77851.

I think some sort of postprocessing is being done on the dtb file after it’s compiled into arch/arm/boot/dts… What is the secret to get this to happen? This seems to be new in BSP 5.0?

BTW I am aware of the ‘overlays’ idea and if the answer is to create an overlay instead of building my own DTB file I am willing to look into that. Specifically, I have three device tree changes from the basic set:

  • Dual-channel LVDS display (Data Modul 1920x720) on &ldb
  • Change RTC to a different chip at a different I2C address
  • Small GPIO changes

Thanks.

Hi @dgribben it seems that the openembedded devshell does not set DTC_FLAGS. It is available in the EXTRA_OEMAKE environment variable within the devshell but I couldn’t get make to function when called as make ${EXTRA_OEMAKE} dtbs. That resulted in a strange argument parsing error which probably had to do with shell globbing and such.

What did work for me was to simply invoke make DTC_FLAGS=-@ dtbs. This configures the DTBs to have device tree overlay compatibility.

Drew

That worked better, and the file looks like it is the right size. Thank you!

Perfect that your issue is solved. Thanks for the feedback.