i.MX6 Secure Boot HAB API within U-Boot calls freezing

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

i.MX6 Secure Boot HAB API within U-Boot calls freezing

Jump to solution
1,915 Views
timstableford
Contributor I

I'm trying to call HAB API functions from within U-Boot on an i.MX6DL Quick Start board (Rev B3) and each time I do, U-Boot freezes (2009.08).
U-Boot has been booted using HAB and is at this point working and has the hab_status command from https://community.freescale.com/servlet/JiveServlet/download/325535-259256/secure_boot_on_imx6.pdf , this however, does work.

The first function I'm trying to call is hab_status_t(* entry )(void) - which I'm defining by doing this:

#define HAB_RVT_STATUS_ENTRY (*(uint32_t *) 0x00000098)

typedef hab_status_t hab_rvt_status_entry_t();

#define hab_rvt_status_entry ((hab_rvt_status_entry_t*)HAB_RVT_STATUS_ENTRY)

And then I'm calling hab_rvt_status_entry(); - this is where is freezes.

Other don't work either, I have tested status exit, status check, and image entry.

Any help or ideas would be appreciated

Labels (1)
0 Kudos
1 Solution
910 Views
timstableford
Contributor I

It was hanging because the clock for the CAAM isn't enabled by default and needs to be before calling HAB functions which use it.

View solution in original post

0 Kudos
2 Replies
911 Views
timstableford
Contributor I

It was hanging because the clock for the CAAM isn't enabled by default and needs to be before calling HAB functions which use it.

0 Kudos
910 Views
dwc
Contributor II

There seems to be a similar issue with the imx28.  The processor is hanging in at the same point in u-boot after the call to the HAB API rvt_status function.  Do you have any more details on your fix for the mx6 that might translate?  There is a hab_rvt_clock_init function defined in the mainline hab.c for the i.mx6 but doesn't appear to be called.

EDIT:  The reference manual RVT address was updated between document revison 1 (2010) and revision 2 (2013). 

0 Kudos