From: michael.nawrocki--- via <qemu-devel@nongnu.org>
To: <qemu-arm@nongnu.org>
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org,
	Mike Nawrocki <michael.nawrocki@gtri.gatech.edu>
Subject: [PATCH v2 0/1] target/arm: Fix SCR_EL3 migration issue
Date: Wed, 3 Feb 2021 11:55:51 -0500	[thread overview]
Message-ID: <20210203165552.16306-1-michael.nawrocki@gtri.gatech.edu> (raw)
The SCR_EL3 register reset value (0)  and the value produced when
writing 0 via the scr_write function (set as writefn in the register
struct) differ. This causes migration to fail.
Ultimately, this is due to incorrect handling of context-dependent
behavior of the RES1 bits of SCR_EL3. The FW and AW bits should be
forced to 1 only if there is no support for AArch32 at EL1 or above.
This patch improves the scr_write RES1 bit handling and adds a reset
function which will initialize SCR_EL3 to 0x30 on AArch64-only CPUs, and
0 if AArch32 is supported at EL1 or above.
Failing invocation:
$ qemu-system-arm -machine vexpress-a9 -cpu cortex-a9 -nographic
QEMU 5.2.0 monitor - type 'help' for more information
(qemu) migrate "exec:cat > img"
(qemu) q
$ qemu-system-arm -machine vexpress-a9 -cpu cortex-a9 -nographic -incoming "exec:cat img"
qemu-system-arm: error while loading state for instance 0x0 of device 'cpu'
qemu-system-arm: load of migration failed: Operation not permitted
Mike Nawrocki (1):
  target/arm: Fix SCR RES1 handling
 target/arm/cpu.h    |  5 +++++
 target/arm/helper.c | 16 ++++++++++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)
-- 
2.20.1
next             reply	other threads:[~2021-02-03 16:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-03 16:55 michael.nawrocki--- via [this message]
2021-02-03 16:55 ` [PATCH v2 1/1] target/arm: Fix SCR RES1 handling michael.nawrocki--- via
2021-02-03 18:28   ` Richard Henderson
2021-02-08 16:41   ` 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=20210203165552.16306-1-michael.nawrocki@gtri.gatech.edu \
    --to=qemu-devel@nongnu.org \
    --cc=michael.nawrocki@gtri.gatech.edu \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    /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
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
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).