bringup on RK3399
Michael Grunditz
michael.grunditz at gmail.com
Tue Nov 10 15:32:00 CET 2020
On Tue, 10 Nov 2020 at 14:24, Stefan Kalkowski
<stefan.kalkowski at genode-labs.com> wrote:
>
> On Tue, Nov 10, 2020 at 01:59:42PM +0000, Michael Grunditz wrote:
> > > Another reason might be some alignment constraints? To be really sure,
> > > what is going on, you could temporarily change the exception vector in
> > > file 'repos/base-hw/src/core/spec/arm_v8/exception_vector.s' at the
> > > very beginning to, e.g.:
> > >
> > > .section .text.crt0
> > >
> > > .rept 16
> > > mrs x0, elr_el1
> > > mrs x1, spsr_el1
> > > adr x2, .
> > > and x2, x2, #0xf80
> > > bl kernel
> > > .balign 128
> > > .endr
> > >
> > > And change the function kernel() to something like:
> > >
> > > extern "C" void kernel(void * ip, void * spsr, void * off, void * esr_el1)
> > > {
> > > Genode::raw("ip=", ip, " spsr=", spsr, " exc_off=", off, " esr_el1=", esr_el1);
> > > }
> > >
> > > Then the outcome of the first printing would be quite interesting to know.
> > >
> > > Regards
> > > Stefan
> > >
> >
> > Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x200
> > esr_el1=0xffffffe02ff22000
>
> Ok, the first three arguments are meaningful, and you can check the ip
> with you core binary. The core binary with debug information can be
> found in your build directory under 'var/run/[run-script-name].core'
>
> The ESR_EL1 argument is wrong. I forgot it in the assembler sippet
> above. The complete exception vector should be:
>
> .section .text.crt0
>
> .rept 16
> mrs x0, elr_el1
> mrs x1, spsr_el1
> mrs x3, esr_el1
> adr x2, .
> and x2, x2, #0xf80
> bl kernel
> .balign 128
> .endr
>
> Sorry, for the inconvenience, I'm afraid you have to give it a second
> try.
>
Kernel: ip=0xffffffc00008ed58 spsr=0x600003c5 exc_off=0x200 esr_el1=0x96000045
Thanks
More information about the users
mailing list