bringup on RK3399

Stefan Kalkowski stefan.kalkowski at genode-labs.com
Tue Nov 10 15:02:47 CET 2020


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.

Regards
Stefan

> 
> Going to look up that esr.
> 
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users

-- 
Stefan Kalkowski
Genode labs

https://github.com/skalk | https://genode.org



More information about the users mailing list