Hi,
I'm building Linux 5.4 for an i.mx6ul-evk, I'm new to yocto and am somewhat confused by the file structure. I succeeded in building a core-image-base, but now I want to modify the device tree and I don't know which .dts file to modify. Here are all of the imx6ul-14x14.dts files that I have, which appear to be duplicates:
/opt/yocto/imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/linux-libc-headers/5.4-r0/linux-5.4/arch/arm/boot/dts/imx6ul-14x14-evk.dts
/opt/yocto/imx-yocto-bsp/build/tmp/work/x86_64-linux/qemu-native/4.1.0-r0/qemu-4.1.0/roms/u-boot/arch/arm/dts/imx6ul-14x14-evk.dts
/opt/yocto/imx-yocto-bsp/build/tmp/work/x86_64-linux/u-boot-tools-native/1_2019.07-r0/git/arch/arm/dts/imx6ul-14x14-evk.dts
/opt/yocto/imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-mx6ul-poky-linux-gnueabi/linux-imx-headers/5.4-r0/git/arch/arm/boot/dts/imx6ul-14x14-evk.dts
/opt/yocto/imx-yocto-bsp/build/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/1_2019.04-r0/git/arch/arm/dts/imx6ul-14x14-evk.dts
/opt/yocto/imx-yocto-bsp/build/tmp/work-shared/imx6ulevk/kernel-source/arch/arm/boot/dts/imx6ul-14x14-evk.dts
Which of these should I modify to change the device tree?
Thanks, that's very helpful.
I am using the imx-yocto-bsp.
In the NXP documentation when it refers to a folder without a full path such as " ... device trees are for now located in arch/arm/boot/dts", how would I know which parent folder they are referring to?
Hello Jay Hunt,
The documentation does not explain where on the Yocto BSP would these files be stored as Yocto is not meant for development but rather distribution of customized Linux Distributions.
When developing is a good practice to cross compile the kernel code outside of Yocto and work on development that way. The git for the kernel is below:
https://source.codeaurora.org/external/imx/linux-imx/
I asked which BSP you are using because the kernel source code it’s fetched as part of the kernel recipe. For the BSP releases it should be the recipe linux-kernel so the path would look like:
<BSP_DIR>/<BUILD_DIR>/tmp/work/MACHINE-poky-linux/linux-imx/<Kernel>/git/
If you have already baked linux-imx please check there for the kernel sources.
I hope this helps!
Regards,
Hello Jay Hunt,
I would like to confirm that you are using the FSL Community BSP.
The Device Tree sources you would need to change would be those of the first location
/opt/yocto/imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/linux-libc-headers/5.4-r0/linux-5.4/arch/arm/boot/dts/imx6ul-14x14-evk.dts
The u-boot device tree is independent. However, usually you won’t need to change the u-boot device tree unless some of the new hardware configuration would need to be reached from the bootloader.
Also, keep in mind that Yocto is not meant for development but rather distribution, so it won’t keep track of changes on the source code. You may want to try to run a bitbake clean and then bake again, but there is not guarantee that the changes you made won’t be discarded. It is recommended to cross compile from the source code to test your changes and then make an append to change the original recipe in Yocto.
I hope this helps!
Regards,