From: Jean-Christophe DUBOIS <jcd@tribudubois.net> To: Peter Maydell <peter.maydell@linaro.org> Cc: qemu-arm <qemu-arm@nongnu.org>, QEMU Developers <qemu-devel@nongnu.org> Subject: Re: Qemu and ARM secure state. Date: Thu, 4 Nov 2021 22:11:22 +0100 [thread overview] Message-ID: <c8b89685-7490-328b-51a3-48711c140a84@tribudubois.net> (raw) In-Reply-To: <CAFEAcA89YQ_vN-JpCeB+L==F5g1hM=CNMBzjaf5c3EHF19NVyQ@mail.gmail.com> [-- Attachment #1: Type: text/plain, Size: 2244 bytes --] Le 04/11/2021 à 12:11, Peter Maydell a écrit : > On Wed, 3 Nov 2021 at 13:27, Jean-Christophe DUBOIS<jcd@tribudubois.net> wrote: >> I have a little application that is designed to work on the i.MX6UL processor. >> >> I developed it and tested it on the mcimx6ul-evk platform emulated by Qemu. >> >> This application used to work "flawlessly" on Qemu 5.0.50 and is working on Qemu 6.0.0 (available as a pre-built package on the latest Ubuntu). >> >> But when I try to run the exact same command line on a Qemu version I compile myself from main/latest of github (Qemu 6.1.50), my application fails to start. >> >> So a little background: >> >> My application expects to start in "secure" state and supervisor mode (which is the default state of i.MX6UL when booting barebone [without u-boot]). >> >> From this state the application tries to get to "non secure" / hypervisor mode which imply going to the "secure" / monitor state before being able to drop to "non secure" / hypervisor. To do so is runs a "smc 0" operand (from "secure" / supervisor). >> >> This "smc" instruction is processed "as expected" by Qemu 5.0.50 and Qemu 6.0.0 (getting to "secure" / monitor mode) but on Qemu 6.1.50 (latest from github) it is as if the smc operand was a no-op. It doesn't trigger any exception and the processor just get to the next instruction after the "smc" instruction. So I am a bit puzzled. >> >> Is there something that changed in Qemu (since Qemu 6.0.0) when it comes to the "secure" world/state? >> Is there some additional command line parameters to use (I search in the documentation but without luck) to get secure world behavior ? >> Is it necessary to "adapt" the emulated platform (i.MX6UL/mcimx6ul-evk) in some way (it looks like the "virt" machine with "secure=on" does work for arm platform)? > Could you try doing a bisect to find the QEMU commit that caused > your guest to stop working ? OK, I did the bisect and the commit that break the i.MX6UL behavior for my program is commit 9fcd15b9193e819b6cc2fd0a45e3506148812bb4 (arm: tcg: Adhere to SMCCC 1.3 section 5.2). Before it the SMC instruction would trigger a monitor exception. After it the SMC instruction is acting like a no-op. Thanks JC > > thanks > -- PMM > [-- Attachment #2: Type: text/html, Size: 3309 bytes --]
next prev parent reply other threads:[~2021-11-04 21:13 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <07e63acb-b756-2586-2ba2-b54b837f7fc8@tribudubois.net> 2021-11-04 11:11 ` Peter Maydell 2021-11-04 21:11 ` Jean-Christophe DUBOIS [this message] 2021-11-06 10:04 ` Jean-Christophe DUBOIS 2021-11-06 13:04 ` Jean-Christophe DUBOIS 2021-11-06 18:11 ` Jean-Christophe DUBOIS 2021-11-08 14:14 ` Alex Bennée 2021-11-08 22:06 ` Jean-Christophe DUBOIS 2021-11-08 14:50 ` Peter Maydell 2021-11-08 22:09 ` Jean-Christophe DUBOIS 2021-11-09 10:55 ` Peter Maydell 2021-11-09 19:06 ` Jean-Christophe DUBOIS 2021-11-09 19:20 ` Peter Maydell
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=c8b89685-7490-328b-51a3-48711c140a84@tribudubois.net \ --to=jcd@tribudubois.net \ --cc=peter.maydell@linaro.org \ --cc=qemu-arm@nongnu.org \ --cc=qemu-devel@nongnu.org \ --subject='Re: Qemu and ARM secure state.' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).