On Sat, Oct 02, 2021 at 12:44:47PM +0300, Antony Pavlov wrote: > On Sat, 2 Oct 2021 10:48:50 +0200 > Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > > Hi Sascha! > > > On Fri, Oct 01, 2021 at 02:24:53PM +0300, Antony Pavlov wrote: > > > Hi all! > > > > > > I have cloned barebox c67ada0024da (v2021.08.0) and found that > > > 'of_compatible' and 'model' imd records are unusable. > > > > > > E.g. > > > > > > barebox$ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- imx_v8_defconfig > > > barebox$ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- > > > ... > > > images built: > > > barebox-nxp-imx8mm-evk.img > > > barebox-prt-prt8mm.img > > > barebox-nxp-imx8mp-evk.img > > > barebox-nxp-imx8mq-evk.img > > > barebox-zii-imx8mq-dev.img > > > barebox-phytec-phycore-imx8mq.img > > > > > > barebox$ ./scripts/bareboximd images/barebox-nxp-imx8mm-evk.img > > > build: #1 Fri Oct 1 10:16:30 UTC 2021 > > > buildsystem version: > > > crc32: 0x00000000 > > > release: 2021.08.0 > > > barebox$ > > > > > > There is no 'of_compatible' and 'model' imd records in bareboximd output. > > > > > > So there is no chance to imd_find_type(..., IMD_TYPE_OF_COMPATIBLE) > > > (see common/bbu.c) in a barebox image file. > > > > > > scripts/gen-dtb-s puts IMD_TYPE_OF_COMPATIBLE and IMD_TYPE_MODEL > > > records into barebox_imd_0 section. > > > > > > BAREBOX_IMD macro (include/asm-generic/barebox.lds.h) > > > does not KEEP barebox_imd_0 section": > > > > This is done on purpose because otherwise... > > > > > > > > #define BAREBOX_IMD \ > > > STRUCT_ALIGN(); \ > > > KEEP(*(.barebox_imd_start)) \ > > > KEEP(*(.barebox_imd_1*)) \ > > > *(.barebox_imd_0*) \ > > > KEEP(*(.barebox_imd_end)) > > > > > > KEEPing barebox_imd_0 leads to several 'of_compatible' and 'model' records > > > in one barebox image file, e.g.: > > > > ...exactly this would happen. > > > > To get the of_compatible and model imd tags in an image you have to put > > IMD_USED_OF() explicitly into the entry function of the image handling > > this compatible, there's no way for the build process to know which > > image handles which device tree. See below for an example which adds the > > tags for the boards you are currently compiling. > > There are two remarks: > > 1. It looks like we still able to automatically add of_compatible and model imd tags. > Please see my message http://lists.infradead.org/pipermail/barebox/2021-October/037412.html I gave it a try, it works and looks like a good solution. We'll need another if [ "$imd" = "y" ]; then echo ".word __imd_${name}_start" fi at the end of scripts/gen-dtb-s to make it work with compressed dtbs as well. > > Can we automaticaly generate of_compatible and model imd tags for most of the boards > and explicitly generate tags with IMD_USED_OF() just for selected boards? With your approach we can drop IMD_USED_OF(), at least I see no more need for it. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox