我目前在基于STM32MP系列的项目中使用Linux内核版本v5.15-stm32mp-r2.tar.gz和U-Boot版本v2021.10-stm32mp-r2.tar.gz。我最近将Linux内核升级到linux-5.15-stm32mp-r2.2。
但是,我不确定哪个 U-Boot 版本与 linux-5.15-stm32mp-r2.2 兼容。我尝试使用 U-Boot 版本 v2022.10-stm32mp-r2 与此内核,但在编译过程中遇到以下错误:
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
该错误似乎与设备树(stm32mp157c-ccb-mx.dtb - 我的顶级 dts 文件)和缺少“sram”等标签有关。我注意到新的 uboot 中 sram 标签已更改为 sram4。所以我在我的dts中将sram标签更改为sram4,如下所示:
1478 &sram4{
1479
1480 dma_pool:dma_pool@0{
1481 reg = <0x50000 0x10000>;
1482 pool;
1483 };
1484 };
我不确定这是否有效,但只是为了编译它,我这样做了。但不幸的是,我遇到了以下错误:
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)
由于我在将Linux内核升级到linux-5.15-stm32mp-r2.2时没有遇到任何类似问题,因此我怀疑U-Boot版本v2022.10-stm32mp-r2可能与此更新的内核版本不完全兼容。
有人可以确认 U-Boot v2022.10-stm32mp-r2 是否确实与 linux-5.15-stm32mp-r2.2 兼容吗?另外,我将不胜感激任何有关如何解决此问题的见解或建议。我应该使用与该内核更兼容的早期版本还是不同版本的 U-Boot?
任何帮助或相关文档的链接将不胜感激!
提前致谢!
我找到了 STM 生态系统发行说明,它解决了这个问题。发行说明可以在这里找到: https://wiki.st.com/stm32mpu-ecosystem-v4/wiki/STM32_MPU_OpenSTLinux_release_note_-_v4.1.0#Minor_release_updates
使用正确的 Linux 内核组件版本、stm-uboot、optee 和 tf-a 可以解决该问题。特别是特定的u-boot版本必须与内核版本5.15-stm32mp-r2.2一起使用才能解决指定的问题。