u-bootstm

STM U-Boot Version Compatibility with Linux 5.15-stm32mp-r2.2


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!


Solution

  • 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.