bringup on RK3399

Michael Grunditz michael.grunditz at gmail.com
Tue Nov 10 15:39:55 CET 2020


On Tue, 10 Nov 2020 at 14:32, Michael Grunditz
<michael.grunditz at gmail.com> wrote:
>
> 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
>
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x200
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x280
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x300
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x380
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x400
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x480
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x500
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x580
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x600
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x680
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x700
esr_el1=0x96000045
Kernel: ip=0xffffffc00008ed60 spsr=0x600003c5 exc_off=0x780 esr_el1=0x96000045



More information about the users mailing list