如何解决Yocto-在ARM处理器中更改内核时,设备树不兼容
我正在为iMX芯片组创建映像,并且已经从NXP下载了源代码,然后使用Yocto创建了最小核心映像。然后,我继续在板上成功引导映像。
之后,我的兴趣是在图像上应用EVL project。我做了以下事情:
- 从EVL Core下载源。这些资源包括一个带有EVL的内核。
- 使用devtool创建一个工作区文件夹,并添加文件夹linux-imx,其中包含内核代码。
- 完全用EVL替换了文件夹的内容。 Yocto的其余文件保持不变。
- 重建图像并刷新它。
但是,在启动时,我收到以下消息:
Starting kernel ...
E/TC:0 0 dt_find_ocram_tz_addr:71 Cannot find fsl,optee-lpm-sram node in the dev ice tree
E/TC:0 0 Panic at core/arch/arm/plat-imx/imx_ocram.c:73 <dt_find_ocram_tz_addr>
E/TC:0 0 Call stack:
E/TC:0 0 0x14005411
我检查了EVL内核代码,在arch / arm中没有包含名为plat-imx的文件夹。这相当令人困惑,因为问题出现在我的工作区文件夹中不存在的一行代码中。
我尝试检查defconfig文件以查看Yocto从何处获取内核代码,但找不到任何有意义的东西。
非常感谢您的帮助。
预先感谢
解决方法
如评论中所述,问题出在以下方面:
我找不到plat-imx文件夹,因为它不在Kernel文件夹中,而是在OP-TEE文件夹中。
OP-TEE是一种安全环境,在引导检查设备树并基于此更新一些内存地址之前运行。
由于设备树已更改,他现在无法找到某些元素,因此在启动前崩溃了。
将一些丢失的文件添加到DTS文件夹后,Bootloader可以正常工作。 Other problems during boot due to the kernel change appear remain to be solved.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。