Troubles running qemu64 target

ranquet guillaume ranquet.guillaume at
Thu Jun 28 06:46:20 PDT 2018


I'm pretty new to barebox and I'm having some troubles running the
qemu64 target.
to top it off, I'm also new to the ARM world... and this is my first
attempt at looking at a bootloader...

I'm having trouble porting some hardware to barebox... and while I'm
waiting for a JTAG probe, I though I could have some fun with qemu64

The boot stops pretty early in the flow. way before anything can be
printed on the serial. I have attached gdb to the qemu-system.
The "qemu-system" seems to be stuck when trying to execute an stp with
the stack pointer as the destination.

I'm having the feeling that I have a configuration issue because sp = 0x0

x27            0x0      0
x28            0x0      0
x29            0x0      0
x30            0x0      0
sp             0x0      0x0
pc             0x40000000       0x40000000 <start>
cpsr           0x400003c5       1073742789
fpsr           0x0      0
fpcr           0x0      0
(gdb) disassemble
Dump of assembler code for function start:
=> 0x0000000040000000 <+0>:     b       0x40000048 <start+72>
   0x0000000040000004 <+4>:     nop
   0x0000000040000008 <+8>:     nop
   0x000000004000000c <+12>:    nop
  0x0000000040000048 <+72>:    b       0x40013444 <barebox_arm_reset_vector>

then we are branching to <barebox_arm_reset_vector>
Dump of assembler code for function barebox_arm_reset_vector:
=> 0x0000000040013444 <+0>:     stp     x29, x30, [sp, #-16]!
   0x0000000040013448 <+4>:     mov     x29, sp
   0x000000004001344c <+8>:     bl      0x40000050 <arm_cpu_lowlevel_init>

with sp still equals to 0x0.

stepping from there seems to get me "stuck"...
when interrupting gdb (Ctrl-C) and dumping the registers, I'm getting
the feeling I'm out of barebox code with pc equals 0x200

x29            0x0      0
x30            0x0      0
sp             0x0      0x0
pc             0x200    0x200
cpsr           0x3c5    965
fpsr           0x0      0

It's probably some kind of configuration issue...? though I see no
code to set sp before that stp instruction.
I tried toying with the memory map, setting stack and text base
addresses, but it doesn't seem to fix my issue.
Or maybe it's okay to decrement sp while it's equal to 0x0?
Any ideas? comments?


running qemu:
 sudo qemu-system-aarch64 -m 4096M \
 -cpu cortex-a57 -machine virt \
-display none -serial stdio \
 -kernel qemu64/barebox -s -S
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config
Type: application/octet-stream
Size: 9336 bytes
Desc: not available
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: barebox_gdb.log
Type: application/octet-stream
Size: 6403 bytes
Desc: not available
URL: <>

More information about the barebox mailing list