Booting on Raspberry Pi

Adam Lackorzynski adam at os.inf.tu-dresden.de
Sun Sep 15 16:11:26 CEST 2013


On Thu Sep 12, 2013 at 17:13:07 +0200, Robert Kaiser wrote:
> Adam Lackorzynski wrote:
> >> Unfortunately, it *still* doesn't work. The last messages I see trying
> >> to run the bootstrap_hello example are:
> >>
> >> MOE: cmdline: moe --init=rom/hello
> >> MOE: Starting: rom/hello
> >> MOE: loading 'rom/hello'
> >> L4Re: unhandled exception: pc=0xffffff9c
> >>
> >> Any hints what could be wrong now?
> > 
> > Would be interesting to know where this is coming from (lr). Anyway,
> > this does not look so bad because quite a few things have happened
> > again.
> 
> I agree. (My problem here is that I am only just learning how to use
> JDB.) With pagefault monitoring enabled, the last lines of output look
> like this:
> 
> ......
> pf:  001d pfa=010191a4 ip=0100a7c8 (r-) spc=0xf12e56fc err=410007
> 
> pf:  001d pfa=000012e0 ip=0100a830 (w-) spc=0xf12e56fc err=410807
> 
> pf:  001a pfa=b000f070 ip=b000f070 (r-) spc=0xf12e56fc err=330007
> 
> L4Re: unhandled exception: pc=0xffffff9c
> 
> Am I right to interpret this as "last pagefault occured due to an opcode
> fetch at virtual address b000f070"? AFAIK, none of the modules in the

Yes.

> image has its text segment in the b0000000 range, so this must be the
> unhandled exception L4Re complains about (but if so, why does it say
> pc=0xffffff9c?).

The 'l4re' binary is linked to b0000000, so the pagefault looks ok. It's
your lokal region manager.

> spc=0xf12e56fc would be the faulting thread's number, right?

That's the space aka task. 0x1d and 0x1a are the threads. Check with
'lp'.

> 
> Giving an "s" command, I get:
> 
>        1 f00567b8 [Task   ] {KERNEL} R=2
>        7 f12e5770 [Task   ] {sigma0          } R=3
>        9 f12e5720 [Task   ] {moe             } R=3
>       19 f12e56d0 [Task   ] {hello           } R=3
> 
> 
> The thread number, f12e56fc, does not appear. It is closeest to
> f12e56d0, but does that really mean the fault happened in the hello task?

It happened in the hello task because that output can only come from
hello in your setup, and the thread numbers indicate that too.

> I would like to derive the program address where the fault occurs from
> this, but frankly, not being familiar with JDB I'm at a loss here.

In 'lp', press enter on the 1d thread, that will give you the tcb view
in which you can see the registers for example.

> JDB Single stepping does not seem to work on ARM platforms.

Indeed that does not work.

>  For which architecture version have you been building?

Looks good.


The problem is in the kernel-provided code that uses instructions that
are incompatible with rpi's CPU. I'll fix it.



Adam
-- 
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/




More information about the l4-hackers mailing list