Search code examples
linux-kernelarmyoctoboot

Yocto - Device tree incompatibility when changing Kernels in an ARM processor


I'm creating images for iMX chipsets and had downloaded the sources from NXP, and then created a core-image-minimal using Yocto. I then proceeded to sucessfully boot the image in a board.

After that, my interest was to apply the EVL project on an image. I did the following:

  1. Download the sources from EVL Core. Those sources consist of a Kernel with EVL on top of it.
  2. Created a workspace folder using devtool, and added the folder linux-imx, which contains the code for the kernel.
  3. Completely replaced the contents of the folder for those of EVL. The rest of Yocto files remained unchanged.
  4. Rebuilt the image and flashed it.

However, when booting, I get the following message:

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

I checked the EVL kernel code, and in arch/arm it contains no folder named plat-imx. This is rather confusing, since the problem appears in a line of code that doesn't exist in my workspace folder.

I tried checking the defconfig files in order to see where Yocto was taking the kernel code from, but couldn't find anything meaningful.

Any help is greatly appreciated.

Thanks in advance


Solution

  • As said in the comments, the problem was the following:

    I couldn't find the folder plat-imx because it was not in the Kernel folder, but rather in the OP-TEE folder.

    OP-TEE, which is a safety environment, runs before the boot checking the device tree and updating some memory addresses based on that.

    Since the device tree had changed, he was now unable to find some elements and therefore it crashed before boot.

    After adding some missing files to the DTS folder, the Bootloader worked correctly. Other problems during boot due to the kernel change appear remain to be solved.