[lx2160a] Fuse provisioning firmware image boot up failed

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

[lx2160a] Fuse provisioning firmware image boot up failed

659 Views
Jeffrey_Lai
Contributor II

I want to do blown fuse by fuse provisioning firmware image for secure boot according to the LSD20.04 user guide 6.4.4 and 6.4.5. After my LX2160 power up, the console log stops at BL2 stage.

After traced source code and find out it stops at  plat_get_image_source() in /atf/plat/nxp/common/ls_io_storage.c

if (image_id < ARRAY_SIZE(policies)) {
        policy = &policies[image_id];
        result = policy->check(policy->image_spec);
        if (result == 0) {
                *image_spec = policy->image_spec;
        *dev_handle = *(policy->dev_handle);
}
} else {
        result = plat_get_alt_image_source(image_id, dev_handle,
        image_spec);
}

the image_id > ARRAY_SIZE(policies) and stops at plat_get_alt_image_source()

Is the function flow correct ? or LSDK20.04 does not support fuse provision by firmware ?

 

0 Kudos
1 Reply

642 Views
yipingwang
NXP TechSupport
NXP TechSupport

The fuse provisioning image would run until it tried to load the fuse provisioning image (FUSE_PROV_IMAGE_ID). This failure occurs in ddr_io_storage.c in plat_get_alt_image_source(). This gets called from plat_get_image_source() and it would appear it expects plat_get_alt_image_source() to return an error if necessary. As written, the processor never returns from the call to plat_get_alt_image_source().

Adding the following code to plat_get_alt_image_source() after the initial assert fixes this problem and allows the image to run and program the fuses.

if(image_id >- ARRAY_SIZE(ddr_policies))

{ return -ENOENT; }

 

You could use LSDK 2012, LX2160ARDB is supported by the Fuse provision utility.

 

0 Kudos