diff options
author | Peter Maydell | 2022-10-03 18:23:13 +0200 |
---|---|---|
committer | Peter Maydell | 2022-10-10 15:52:25 +0200 |
commit | 104f703d93c9f12984a165985af653f83527c84e (patch) | |
tree | 9996b833143bf69ce234b5a8e25c205452e32753 /hw/virtio/vhost-user-i2c.c | |
parent | hw/arm/boot: set CPTR_EL3.ESM and SCR_EL3.EnTP2 when booting Linux with EL3 (diff) | |
download | qemu-104f703d93c9f12984a165985af653f83527c84e.tar.gz qemu-104f703d93c9f12984a165985af653f83527c84e.tar.xz qemu-104f703d93c9f12984a165985af653f83527c84e.zip |
target/arm: Don't allow guest to use unimplemented granule sizes
Arm CPUs support some subset of the granule (page) sizes 4K, 16K and
64K. The guest selects the one it wants using bits in the TCR_ELx
registers. If it tries to program these registers with a value that
is either reserved or which requests a size that the CPU does not
implement, the architecture requires that the CPU behaves as if the
field was programmed to some size that has been implemented.
Currently we don't implement this, and instead let the guest use any
granule size, even if the CPU ID register fields say it isn't
present.
Make aa64_va_parameters() check against the supported granule size
and force use of a different one if it is not implemented.
(A subsequent commit will make ARMVAParameters use the new enum
rather than the current pair of using16k/using64k bools.)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20221003162315.2833797-2-peter.maydell@linaro.org
Diffstat (limited to 'hw/virtio/vhost-user-i2c.c')
0 files changed, 0 insertions, 0 deletions