]> git.proxmox.com Git - mirror_qemu.git/commit - qom/cpu.c
boards.h: Define new flag ignore_memory_transaction_failures
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 7 Sep 2017 12:54:54 +0000 (13:54 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 7 Sep 2017 12:54:54 +0000 (13:54 +0100)
commited860129acd3fcd0b1e47884e810212aaca4d21b
tree8f43a5a34b1a78c61128454bcb5e1b4594e56bd6
parentfb602cb726b3ebdd01ef3b1732d74baf9fee7ec9
boards.h: Define new flag ignore_memory_transaction_failures

Define a new MachineClass field ignore_memory_transaction_failures.
If this is flag is true then the CPU will ignore memory transaction
failures which should cause the CPU to take an exception due to an
access to an unassigned physical address; the transaction will
instead return zero (for a read) or be ignored (for a write).  This
should be set only by legacy board models which rely on the old
RAZ/WI behaviour for handling devices that QEMU does not yet model.
New board models should instead use "unimplemented-device" for all
memory ranges where the guest will attempt to probe for a device that
QEMU doesn't implement and a stub device is required.

We need this for ARM boards, where we're about to implement support for
generating external aborts on memory transaction failures. Too many
of our legacy board models rely on the RAZ/WI behaviour and we
would break currently working guests when their "probe for device"
code provoked an external abort rather than a RAZ.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
Message-id: 1504626814-23124-2-git-send-email-peter.maydell@linaro.org
include/hw/boards.h
include/qom/cpu.h
qom/cpu.c