[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-discuss] Segmentation fault of 32-bit process when returned from e

From: Максим Скопич
Subject: [Qemu-discuss] Segmentation fault of 32-bit process when returned from el3
Date: Mon, 26 Sep 2016 18:59:54 +0300

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?

Thank you!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]