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



我正在为iMX芯片组创建图像,并从恩智浦下载了源代码,然后使用Yocto创建了一个最小核心图像。然后,我成功地将图像引导到板中。

之后,我的兴趣是将EVL项目应用到图像上。我做了以下事情:

  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从哪里获取内核代码,但找不到任何有意义的东西。

非常感谢您的帮助。

提前感谢

正如评论中所说,问题如下:

我找不到文件夹platimx,因为它不在Kernel文件夹中,而是在OP-TEE文件夹中。

OP-TEE是一个安全环境,它在启动前运行,检查设备树并基于此更新一些内存地址。

由于设备树已经更改,他现在无法找到一些元素,因此它在启动前崩溃。

将一些丢失的文件添加到DTS文件夹后,Bootloader工作正常。由于内核更改导致的引导过程中的其他问题似乎仍有待解决。

最新更新