Yocto - 在 ARM 处理器中更改内核时设备树不兼容
Yocto - Device tree incompatibility when changing Kernels in an ARM processor
我正在为 iMX 芯片组创建映像并从 NXP 下载了源代码,然后使用 Yocto 创建了一个 core-image-minimal。然后我继续在板上成功启动映像。
之后,我的兴趣是在图像上应用 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,因为它不在内核文件夹中,而是在 OP-TEE 文件夹中。
OP-TEE,这是一个安全环境,在引导检查设备树之前运行,并根据它更新一些内存地址。
由于设备树已经改变,他现在无法找到一些元素,因此在启动之前就崩溃了。
将一些丢失的文件添加到 DTS 文件夹后,引导加载程序可以正常工作。
我正在为 iMX 芯片组创建映像并从 NXP 下载了源代码,然后使用 Yocto 创建了一个 core-image-minimal。然后我继续在板上成功启动映像。
之后,我的兴趣是在图像上应用 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,因为它不在内核文件夹中,而是在 OP-TEE 文件夹中。
OP-TEE,这是一个安全环境,在引导检查设备树之前运行,并根据它更新一些内存地址。
由于设备树已经改变,他现在无法找到一些元素,因此在启动之前就崩溃了。
将一些丢失的文件添加到 DTS 文件夹后,引导加载程序可以正常工作。