Yocto-在ARM处理器中更改内核时,设备树不兼容

问题描述

我正在为iMX芯片组创建映像,并且已经从NXP下载了源代码,然后使用Yocto创建了最小核心映像。然后,我继续在板上成功引导映像。

之后,我的兴趣是在图像上应用EVL project。我做了以下事情:

  1. 从EVL Core下载源。这些资源包括一个带有EVL的内核。
  2. 使用devtool创建一个工作区文件夹,并添加文件夹linux-imx,其中包含内核代码。
  3. 完全用EVL替换了文件夹的内容。 Yocto的其余文件保持不变。
  4. 重建图像并刷新它。

但是,在启动时,我收到以下消息:

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.

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...