2025-03-09 8:03 AM
We have changed the Yocto ecosystem of our builds from Kirkstone to mickledore.
Everything works smoothly if all the components from the boot chain are built with the same ecosystem (either Kirkstone or Mickledore). Which means is, if TF-A, U-BOOT, Kernel, and rootfs all are either Kirkstone based or Mickledore based in the the image, the system boots fine.
We have a different test base scenario, the deployed hardwares in the field are currently operational with kirkstone releases, we intend to update the components individually in the hardwares to avoid the software breaks and to enhance the rollback feature in case of update failure.
So, when we update either U-BOOT (kirstone to mickledore) and the kernel is of kirkstone based, the system doesn't boot and watch dog timer keeps resetting the system.
When we keep the U-BOOT at kirkstone version and update the kernel (kirkstone to mickledore), the system doesn't boot and the watchdog timer keeps resetting the system.
This boot fails after the "Starting Kernel ..." logs and nothing appears after these logs.
What we have tested until now is the different Kernel load address that are mentioned as UBOOT_ENTRYPOINT in the yocto variables. In the kirkstone image this address is set to 0xc0800000 while in mickledore it is set to 0xc4000000 . We believed that this conflict in different load addresses in kernel headers might be causing the issue.
We changed the kernel load address to 0xc0800000 in the Mickledore image and tried loading it with the kirkstone U-BOOT that tries loading the kernel from the same address (0xc0800000 ). Unfortunately, this attempt also failed.
Can you please discuss this scenario with your team? and provide us some help on how we can update our ecosystem from kirkstone to mickledore?
Many thanks in advance.
Kind Regards,
Umer