Hello,
I have a custom board based on LS1012ARDB. It appears to boot normally until it reaches "Welcome to LS1012 BL31 Phase" then it just stops.
I connected the Codewarrior TAP and imported the U-Boot executable file. I can step through the program and see that there appears to be a problem when it reaches the "lowlevel_init" function in
u-boot/arch/arm/cpu/armv8/fsl-layerscape/lowlevel.s.
The assembly code is shown below. It reaches the last line shown, which is line 84, and then there is an exception and it branches to exceptions.s line 139.
I stepped through the same U-Boot executable file using the LS1012ARDB instead of my board. It reaches lowlevel.s line 84 and then continues on to line 208 and goes on to boot correctly.
How do I determine what is causing the exception? Any help would be greatly appreciated, I'm stuck.
Thanks,
Joel
============================
ENTRY(lowlevel_init)
mov x29, lr /* Save LR */
/* unmask SError and abort */
msr daifclr, #4
/* Set HCR_EL2[AMO] so SError @EL2 is taken */
mrs x0, hcr_el2
orr x0, x0, #0x20 /* AMO */
msr hcr_el2, x0
isb
switch_el x1, 1f, 100f, 100f /* skip if not in EL3 */
=======================================================
> I connected the Codewarrior TAP and imported the U-Boot executable file
Is this image something you have built for your board, or are you trying to use an image built for the RDB ?
Typically with LSDK, a firmware image is built, which includes u-boot and a tiny Linux distro. Are you referring to this image ?
If not, please let us know what u-boot executable file you are referring to, and where it came from,
Have you reviewed chapter 5 (Bootloaders) in the Layerscape Software Development Kit User Guide ? This gives details of the boot process, including the meaning on BL31 Phase and so on.