[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-discuss] Segmentation fault of 32-bit process when returned fr
Re: [Qemu-discuss] Segmentation fault of 32-bit process when returned from el3
Mon, 26 Sep 2016 09:38:18 -0700
On 26 September 2016 at 08:59, Максим Скопич <address@hidden> wrote:
> Dear all,
> I run qemu with trust zone emulation. 64 bit Linux is run in Normal world
> (NWD) EL1 and some proprietary code are run in EL3 and Secure World (SWD)
> EL1. Also i have such configuration for interrupts: 1) FIQ is assigned for
> SWD; 2) IRQ is assigned for NWD.
> Also there are three cases when nwd can be interrupted by FIQ: 1) NWD was
> executed in kernel mode (64-bit Linux) 2) NWD was executed in 64-bit user
> mode 3) NWD was executed in 32-bit user mode
> When FIQ is occured it trapped by EL3. Then NWD context is saved by EL3's
> code and handler of FIQ starts to execute. After returning from el3 to NWD
> for 1),2)cases all works good - interrupted process continues to work. But
> after returning from el3 to NWD for case 3) segmentaion fault occured for
> interrupted proccess. Also this is value of spsr_el3 register before
> returning from el3 to NWD EL0 - 0x600f0010 - looks ok. Also i have already
> compared saved and restored context in EL3 for case 3 and it also looks ok.
> Looks like qemu can't execute 32-bit code properly after returning from el3
> 64-bit code.
> Does some one know what is the problem? Is it some limitation of qemu?
Which version of QEMU are you using?
Does the code you are using function correctly on real hardware?
Can you provide a reproducible test case for the issue?