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
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.
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
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.