Hi to all,
we are using an LS1043A-RDB evaluation board, using LSDK21.08 as build environment
target and CodeWarrior (with a codewarrior TAP adapter too) as debug tool.
We built easily a set of images in order to boot Linux from SD with a custom RCW as
required from our target application, it boots linux without problems.
Then the hard section!
We started coding our custom application that should starts from u-boot, we don't have
to use Linux as OS, and the application should be at first a simple bare metal app ('hello
world' style...). It starts correctly when we execute it from CW ide & TAP.
But we are in trouble because, it doesn't not starts correctly when we run it from u-boot CLI.
The first things that seems to be wrong is that the EL level with which the application starts
is not correct! And this is what we get:
=> go 80000e00
## Starting application at 0x80000E00 ...
"Synchronous Abort" handler, esr 0x02000000
elr: 000000000a4e3e08 lr : 0000000082007760 (reloc)
elr: 0000000080000e08 lr : 00000000f7b24760
x0 : 0000000080000000 x1 : 00000000f7a56c28
x2 : 00000000f7a56c28 x3 : 0000000000000001
x4 : 00000000ffffffff x5 : 00000000f7a14ea8
x6 : 0000000000000030 x7 : 000000000000000f
x8 : 00000000f7a15318 x9 : 0000000000000008
x10: 00000000ffffffd0 x11: 0000000000000010
x12: 0000000000000004 x13: 0000000000000200
x14: 000000000000000f x15: 0000000000000001
x16: 0000000080000e00 x17: 0000000000000000
x18: 00000000f7a18da0 x19: 00000000f7a56c28
x20: 0000000080000e00 x21: 0000000000000002
x22: 00000000f7a56c20 x23: 0000000000000002
x24: 00000000f7be3974 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 00000000f7a56d10 x29: 00000000f7a15350
Code: 00000000 00000000 d5033fdf 10ff8fe0 (d51ec000)
Resetting CPU ...
resetting ...
Obviously 0x80000e00 is the entry point of the __start: symbol in the binary image.
Has anyone observed this, and solved it?!
Thanks in advance,
S.
You could start with u-boot source code examples/standalone/hello_world.c.