Hi Nxp
We have a SoM using the iMX8MP. During reboot and quick reboots tests, we are facing an endless reboot issue which occurs randomly. The only way out of this endless reboot issue is to reset the Board again. We still don't the exact root cause of the issue but we found the exact location in the code where it happens.
We are using the following U-Boot branch:https://github.com/nxp-imx/uboot-imx/tree/lf_v2022.04.
In this branch, the SoM runs in an exception in the following code from the file arch/arm/mach-imx/spl.c:358 spl_load_simple_fit_fix_load:
void *spl_load_simple_fit_fix_load(const void *fit)
{
struct ivt *ivt;
unsigned long new;
unsigned long offset;
unsigned long size;
u8 *tmp = (u8 *)fit;
offset = ALIGN(fdt_totalsize(fit), 0x1000);
size = ALIGN(fdt_totalsize(fit), 4);
size = board_spl_fit_size_align(size);
tmp += offset;
ivt = (struct ivt *)tmp;
if (ivt->hdr.magic != IVT_HEADER_MAGIC) {
debug("no IVT header found\n");
return (void *)fit;
}
debug("%s: ivt: %p offset: %lx size: %lx\n", __func__, ivt, offset, size);
debug("%s: ivt self: %x\n", __func__, ivt->self);
new = ivt->self;
new -= offset;
debug("%s: new %lx\n", __func__, new);
memcpy((void *)new, fit, size);
return (void *)new;
}
In case of error IVT found message is shown and then the SoM stays in endless loop, unless a power on/off or hardware reset is applied.
Do you know this behaviour?
I think IVT is for secure boot images but we don't have secure boot enabled. Why are we having this issue?
Thanks and best regards,
Jaski