aarch64: implement fixup fault and backtrace

implement fixup fault and the backtrace functionality which is
its first simple user.

Signed-off-by: Jani Kokkonen <jani.kokkonen@huawei.com>

[claudio: added elf changes to allow lookup and demangling to work]

Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>
arch: move common fixup code to arch/common directory

Signed-off-by: Jani Kokkonen <jani.kokkonen@huawei.com>

[claudio: renamed fixup.hh to fault-fixup.hh]
Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>
runtime: for backtrace subtract instruction size from ret addr

we need to move one instruction back from the return address
to get the address we want to show. Also format the pointers
as long.

Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>
aarch64: loader: allow execution to main_cont

allow execution to flow until main_cont
so we can reach the backtrace.

Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>
loader: move leftover arch-dependent code to arch

move driver setup and console creation to arch-setup,
and ioapic init for x64 to smp_launch, so that we
can remove ifdefs and increase the amount of common code.

Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>
Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
aarch64: build.mk: enable real bootfs.bin

we start with only a tst-hello.so.

Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>
aarch64: bsd: atomic.h: change atomic_store_rel_int

revert to a simple implementation which is just atomic,
adding a barrier for the compiler.
The store release is used without load acquire.

Signed-off-by: Claudio Fontana <claudio.fontana@huawei.com>