Endless boot in U-Boot due to not well handled exception in Software

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Endless boot in U-Boot due to not well handled exception in Software

Jump to solution
773 Views
jaskis
Contributor II

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

0 Kudos
Reply
1 Solution
717 Views
jaskis
Contributor II

Hi, we don't have this issue with the mainline U-Boot.

View solution in original post

0 Kudos
Reply
4 Replies
747 Views
jaskis
Contributor II

Hello, 

I am from the SoM Vendor Toradex. As I said, it is usually working but seen very rarely and randomly on some SoMs. I think the issue is related to the misalignment of reading of the FIT image. Have you done quick reboots on your side? A quick reboot is when you reset the SoM or the SoC on EVK every 1-30 seconds.

Best regards, 

Jaski

0 Kudos
Reply
752 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

 

Yes this issue is due to IVT is for secure boot, here you can check with SOM vendor if they have a uboot, since this works on EVK.

 

Regards

0 Kudos
Reply
718 Views
jaskis
Contributor II

Hi, we don't have this issue with the mainline U-Boot.

0 Kudos
Reply
736 Views
jaskis
Contributor II

It is a bit strange since we are not using at all Secure Boot for our regular images and we still see the error. 

0 Kudos
Reply