Q&A: How to enable MX28 HAB Problems?

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

Q&A: How to enable MX28 HAB Problems?

Q&A: How to enable MX28 HAB Problems?

Question:

How to enable HAB on the MX28, following the recommendations of AN4555 to get the "get_hab_status()" function working, but has run into an issue.

Question #1

They believe they have all the HAB components worked out that are inputs to the efltosb tool as they are able to successfully run U-boot to the interactive prompt.  However, at the point where they:

    - call the rvt_report_status() function, their board says "### ERROR ### Please RESET the board ###".
     - call the rvt_entry(), their board
prints some garbage characters on the screen and then hangs. This suggests that there is something wrong with the clock that in turn affects the baudrate on the serial console causing the above behavior.

Question #2
Is there a concept of a "Bound Signature" in HABv4 as there is in HABv3?

Any chance the addresses for the rvt_ calls are incorrect? Can you provide the u-boot source?

Either Bound signature verification or UID is never mentioned in the HABv4 Application Note. So I suppose it is not supported.

We have made assumptions about the RVT function pointer offsets.  The HAB 4 API does not explicitly say the offsets but uses a rvt_base::function_name notation.  We have assumed that function pointers are placed in order, at every word offset beyond the RVT header.  We have confirmed the RVT header exists at the latest address in the reference manual based on a memory dump but we cannot be certain the function offsets we have setup are correct.

As far as source code, we modeled our changes for our mx28 board off of the hab.c and hab.h files available from the mainline u-boot for the mx6 architecture. This is basically the same code get_hab_status code that is written in the AN4555 document.  We did HAB API function pointer addresses to match the updated RVT base address and assumed offsets.

Answer:

Here are the first 3 instructions from report_status(), could your customer check the instructions from the address which they called is correct?

<report_status>:

:   b087b570        addlt   fp, r7, r0, ror r5

:   1c0e1c05        stcne   12, cr1, [lr], {5}

:   22182433        andscs  r2, r8, #855638016      ; 0x33000000

Labels (1)
Tags (1)
Comments
dwc

This issue is resolved by using the correct RVT address.  The RVT address was updated in the reference manual between revision 1 and revision 2.

Hi Yixing and dwc,

  How should I call the HAB_API in the eboot of Wince on i.mx28?

In mx28 memory map ,the OCROM is located in the last 128KB memory address.

pastedImage_0.png

But when it goes in the eboot, the MMU is already enable.So it only can access the virtual address from 0x80000000 to 0x9FFFFFFF.

How can it call the the address  by         HAB_RVT_REPORT_EVENT    (*(UINT32 *)(HAB_RVT_BASE + 0x20))  //0xffff8af8+0x20  ?

Thanks

No ratings
Version history
Last update:
‎09-25-2013 06:43 PM
Updated by: