Full Virtualization with Trustzone

Adam Lackorzynski adam at os.inf.tu-dresden.de
Sun Nov 25 16:00:39 CET 2012


On Thu Nov 22, 2012 at 20:31:44 +0800, meng-qy wrote:
>  > Memory on imx51 is starting at 0x90000000. At 0x60000000 there are
> > pheripherals, i.e. there's no usable memory where something can be copied
> > to (or executed). 
>     
>    I think we make a wrong understanding about " l4sigma0_map_iomem() "  .
> 
> >If you want to execute something it needs to be in the
> > region 0x90000000-0xafffffff. A simple trick is to reduce the memory for
> > secure side (e.g. via imx51.conf) and use the rest for NS.
> 
>   Now, we use 0x90000000-0x9fffffff  to run secure side,  and revise the vm configuration as following:
>        Ram_base = 0xa1000000, 
>        Ram_size = 0x4000000, // 128 MB
>        Start_addr = Ram_base + 0x100000, // +1MB
>  
>     The l4_vm_state is set as:
>         state->pc = Start_addr;
>         state->cpsr = 0x13; //svc
>         state->r[0] = 0;  
>         state->r[1] = 0x84D; imx51 //arch num
> 
>      The NS bare app's entry is set as 0xa1100000, but we still stop at "VM run", we use some tracing 
> methods and find the system stop at:
> 
>  // set pending events
>  ldmia r0!, {r1}
>  and r1, r1, #0x1c0
>  mcr p15, 0, r1, c12, c1, 1  // ivt.S line:954, looks like some ISR pending control.

Hmm, I wonder how it can hang/stop there.
 
>    BTW, should we  write a virtual-interrupt layer to map the NS call with Secure side? I think maybe 
>  NS bare app can not visit the pheripherals address directly.

Yes, same thoughts.



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