I am currently using Linux kernel version v5.15-stm32mp-r2.tar.gz and U-Boot version v2021.10-stm32mp-r2.tar.gz for my project based on the STM32MP family. I have recently upgraded the Linux kernel to linux-5.15-stm32mp-r2.2.
However, I am unsure which U-Boot version is compatible with linux-5.15-stm32mp-r2.2. I tried using U-Boot version v2022.10-stm32mp-r2 with this kernel, but encountered the following error during compilation:
Error: arch/arm/dts/.stm32mp157c-ccb-mx.dtb.pre.tmp:1478.1-6 Label or path sram not found
FATAL ERROR: Syntax error parsing input tree
Check /home/vivekb/workspace/source/NGACEM-269/SSB-buildroot/output/build/uboot-custom/arch/arm/dts/.stm32mp157c-ccb-mx.dtb.pre.tmp for errors
make[4]: *** [scripts/Makefile.lib:336: arch/arm/dts/stm32mp157c-ccb-mx.dtb] Error 1
make[3]: *** [dts/Makefile:44: arch-dtbs] Error 2
make[2]: *** [Makefile:1173: dts/dt.dtb] Error 2
make[1]: *** [package/pkg-generic.mk:293: /home/vivekb/workspace/source/NGACEM-269/SSB-buildroot/output/build/uboot-custom/.stamp_built] Error 2
make: *** [Makefile:84: _all] Error 2
The error seems to be related to the device tree (stm32mp157c-ccb-mx.dtb - my top level dts file) and missing labels such as "sram". I noticed the sram label has got changed to sram4 in the new uboot. So I changed the sram label to sram4 in my dts as follows:
1478 &sram4{
1479
1480 dma_pool:dma_pool@0{
1481 reg = <0x50000 0x10000>;
1482 pool;
1483 };
1484 };
I am not sure whether this will work or not but just to get it compiled I did it. But unfortunately then I get into the following error:
DTC arch/arm/dts/stm32mp157c-ccb-mx.dtb
arch/arm/dts/stm32mp157c-ccb-mx.dtb: ERROR (phandle_references): /ahb/m4@10000000/m4_system_resources/can@4400e000: Reference to non-existent node or label "scmi_clk"
arch/arm/dts/stm32mp157c-ccb-mx.dtb: ERROR (phandle_references): /ahb/m4@10000000/m4_system_resources/can@4400f000: Reference to non-existent node or label "scmi_clk"
ERROR: Input tree has errors, aborting (use -f to force output)
Since I did not encounter any similar issues when upgrading the Linux kernel to linux-5.15-stm32mp-r2.2, I suspect that U-Boot version v2022.10-stm32mp-r2 might not be fully compatible with this updated kernel version.
Could anyone confirm if U-Boot v2022.10-stm32mp-r2 is indeed compatible with linux-5.15-stm32mp-r2.2? Also, I would appreciate any insights or suggestions on how to resolve this issue. Should I be using an earlier or different version of U-Boot that is more compatible with this kernel?
Any help or links to relevant documentation would be greatly appreciated!
Thanks in advance!
I have found the STM ecosystem release notes and that solves this issue. The release notes can be found here: https://wiki.st.com/stm32mpu-ecosystem-v4/wiki/STM32_MPU_OpenSTLinux_release_note_-_v4.1.0#Minor_release_updates
Using the correct component version for linux kernel, stm-uboot, optee and tf-a resolves the issue. Particularly the specific u-boot version has to be used with the kernel version 5.15-stm32mp-r2.2 with resolve the problem specified.