|
From: | Максим Скопич |
Subject: | Re: [Qemu-discuss] Segmentation fault of 32-bit process when returned from el3 |
Date: | Tue, 27 Sep 2016 12:59:14 +0300 |
Good day,
I am using qemu from head of https://git.linaro.org/virtualization/qemu-tz.git, armv8tz branch.
Yes, same code works ok on real device.
Unfortunately I haven't snippet for reproducing problem, only binary image with Linux and proprietary SWD OS.
BTW I can provide any logs if you need.
Thank you!
On 26 September 2016 at 08:59, Максим Скопич <address@hidden> wrote:Which version of QEMU are you using?
> 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?
Does the code you are using function correctly on real hardware?
Can you provide a reproducible test case for the issue?
thanks
-- PMM
[Prev in Thread] | Current Thread | [Next in Thread] |