qemu/docs/system/arm
Gustavo Romero 374cdc8efe target/arm: Enable FEAT_CMOW for -cpu max
FEAT_CMOW introduces support for controlling cache maintenance
instructions executed in EL0/1 and is mandatory from Armv8.8.

On real hardware, the main use for this feature is to prevent processes
from invalidating or flushing cache lines for addresses they only have
read permission, which can impact the performance of other processes.

QEMU implements all cache instructions as NOPs, and, according to rule
[1], which states that generating any Permission fault when a cache
instruction is implemented as a NOP is implementation-defined, no
Permission fault is generated for any cache instruction when it lacks
read and write permissions.

QEMU does not model any cache topology, so the PoU and PoC are before
any cache, and rules [2] apply. These rules state that generating any
MMU fault for cache instructions in this topology is also
implementation-defined. Therefore, for FEAT_CMOW, we do not generate any
MMU faults either, instead, we only advertise it in the feature
register.

[1] Rule R_HGLYG of section D8.14.3, Arm ARM K.a.
[2] Rules R_MZTNR and R_DNZYL of section D8.14.3, Arm ARM K.a.

Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20241104142606.941638-1-gustavo.romero@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2024-11-05 10:10:00 +00:00
..
aspeed.rst docs/system/arm: Split fby35 out from aspeed.rst 2024-10-29 15:04:46 +00:00
b-l475e-iot01a.rst hw/display : Add device DM163 2024-04-30 16:02:43 +01:00
bananapi_m2u.rst hw/arm: Add watchdog timer to Allwinner H40 and Bananapi board 2024-01-26 11:30:47 +00:00
collie.rst
cpu-features.rst target/arm: Implement FEAT_PACQARMA3 2023-09-08 12:50:44 +01:00
cubieboard.rst hw/arm: Add SPI to Allwinner A10 2024-10-15 15:16:17 +01:00
digic.rst
emcraft-sf2.rst docs: Add skeletal documentation of the emcraft-sf2 2021-07-18 10:59:47 +01:00
emulation.rst target/arm: Enable FEAT_CMOW for -cpu max 2024-11-05 10:10:00 +00:00
exynos.rst docs/system/arm: Add placeholder doc for exynos4 boards 2024-10-29 15:04:46 +00:00
fby35.rst docs/system/arm: Split fby35 out from aspeed.rst 2024-10-29 15:04:46 +00:00
highbank.rst docs: Add skeletal documentation of highbank and midway 2021-07-18 10:59:47 +01:00
imx25-pdk.rst docs: Add documentation of Arm 'imx25-pdk' board 2021-08-02 11:42:38 +01:00
integratorcp.rst
kzm.rst docs: Add documentation of Arm 'kzm' board 2021-08-02 11:42:38 +01:00
mcimx6ul-evk.rst docs/system/arm: Add placeholder docs for mcimx6ul-evk and mcimx7d-sabre 2024-10-29 15:04:47 +00:00
mcimx7d-sabre.rst docs/system/arm: Add placeholder docs for mcimx6ul-evk and mcimx7d-sabre 2024-10-29 15:04:47 +00:00
mps2.rst docs: Add documentation for the mps3-an536 board 2024-02-15 14:32:39 +00:00
musca.rst
musicpal.rst
nrf.rst docs/system: arm: Add nRF boards description 2021-06-24 14:58:48 +01:00
nuvoton.rst docs/system/arm: Don't use wildcard '*-bmc' in doc titles 2024-10-29 15:04:46 +00:00
orangepi.rst hw/arm: Add WDT to Allwinner-H3 and Orangepi-PC 2023-04-20 10:21:14 +01:00
raspi.rst docs/system: Remove ADC from raspi documentation 2024-05-28 14:20:48 +01:00
realview.rst
sabrelite.rst arm: Consistently use "Cortex-Axx", not "Cortex Axx" 2021-06-03 16:43:25 +01:00
sbsa.rst hw/arm/sbsa-ref: Enable CPU cluster on ARM sbsa machine 2024-06-21 16:24:46 +01:00
stellaris.rst
stm32.rst docs/system/arm/stm32: List olimex-stm32-h405 in document title 2024-10-29 15:04:46 +00:00
sx1.rst
versatile.rst docs/system: document an example booting the versatilepb machine 2021-02-08 10:55:20 +00:00
vexpress.rst hw/arm/vexpress-a9: Remove useless mapping of RAM at address 0 2023-11-06 15:00:29 +00:00
virt.rst hw/arm/virt: allow creation of a second NonSecure UART 2024-06-21 14:01:59 +01:00
xenpvh.rst docs: clean-up the xenpvh documentation 2023-12-12 08:02:39 -05:00
xlnx-versal-virt.rst hw: Replace anti-social QOM type names (again) 2023-12-20 10:29:23 +01:00
xlnx-zcu102.rst docs/system/arm: Add placeholder doc for xlnx-zcu102 board 2024-10-29 15:04:46 +00:00
xlnx-zynq.rst docs/system/arm: Add a doc for zynq board 2024-07-01 15:40:54 +01:00