qemu/docs
Peter Maydell cfe35fe60a target/arm: Don't let 'sme=on' downgrade SME
In our handling of the boolean 'sme' CPU property, we write this 0/1
value directly to ID_AA64PFR1_EL1.SME.  This worked when the only
valid values in that field were 0 (for no SME) and 1 (for SME1).
However, with the addition of SME2 the SME field can now also read 2.
This means that "-cpu max,sme=on" will result in an inconsistent set
of ID registers, where ID_AA64PFR1_EL1.SME claims SME1 but
ID_AA64SMFR0_EL1.SMEver claims SME2p1.  This isn't a valid thing to
report, and confuses Linux into reporting SME2 to userspace but not
actually enabling userspace access for it.

Fix this bug by having arm_cpu_sme_finalize() fix up the
ID_AA64PFR1_EL1.SME field to match ID_AA64SMFR0.SMEver.  This means
the "sme" property's semantics are "off" for "no SME" and "on" for
"enable at whatever the default SME version this CPU provides is".

Update the documentation to clarify what 'sve=on' and 'sme=on' do.
(We don't have the equivalent bug for 'sve=on' because
ID_AA64PFR0_EL1.SVE only has 0 and 1 as valid values, but the
semantics of the property are the same.)

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-id: 20260202133353.2231685-6-peter.maydell@linaro.org
(cherry picked from commit aeb3c147fc)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2026-02-19 22:27:21 +03:00
..
_templates docs: Add QEMU version information to HTML footer 2021-07-18 10:59:47 +01:00
about docs/about/emulation: Add documentation for hotblocks plugin arguments 2026-02-12 20:51:07 +03:00
config vl: recognize audiodev groups in configuration files 2023-09-22 17:35:11 +02:00
devel docs/devel: Update URL for make-pullreq script 2025-12-02 16:12:21 +03:00
interop docs/interop/firmware: Add riscv64 to FirmwareArchitecture 2025-10-04 09:57:06 +03:00
specs docs/specs/riscv-iommu: Fixed broken link to external risv iommu document 2025-03-28 16:49:57 +10:00
sphinx qapi: Fix undocumented return values by generating something 2025-07-14 12:03:03 +02:00
sphinx-static docs/qapi-domain: add CSS styling 2025-03-11 10:10:57 +01:00
spin treewide: fix paths for relocated files in comments 2025-07-02 18:26:27 +02:00
system target/arm: Don't let 'sme=on' downgrade SME 2026-02-19 22:27:21 +03:00
tools qemu-img: rebase: refresh options/--help (short option change) 2025-07-15 20:49:01 +02:00
user docs/user: expand section on threading 2025-07-26 23:04:35 +01:00
block-replication.txt docs/block-replication.txt: Fix replication top-id command demo 2021-12-17 11:35:00 +01:00
bypass-iommu.txt docs: Add documentation for iommu bypass 2021-07-16 11:10:45 -04:00
COLO-FT.txt chardev: finalize 'reconnect' deprecation 2024-10-28 14:37:25 +08:00
colo-proxy.txt colo: examples: remove mentions of script= and (wrong) downscript= 2024-01-30 21:20:20 +03:00
conf.py include/hw/boards: add warning about changing deprecation logic 2025-05-08 17:11:16 +01:00
defs.rst.inc docs: Fix typo in the default name of the qemu-system-x86_64 binary 2021-04-01 14:28:39 +02:00
glossary.rst docs: disambiguate cross-references 2025-03-11 10:26:52 +01:00
igd-assign.txt vfio/igd: Require host VGA decode for legacy mode 2025-07-28 17:52:34 +02:00
image-fuzzer.txt docs: Render binary names as monospaced text 2021-11-22 15:02:38 +01:00
index.rst docs: add a glossary 2025-01-17 10:45:54 +00:00
memory-hotplug.txt
meson.build 9p: remove 'proxy' filesystem backend driver 2024-10-03 19:33:25 +02:00
multi-thread-compression.txt docs tests: Fix use of migrate_set_parameter 2023-09-08 13:08:52 +03:00
multiseat.txt docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
nvdimm.txt docs/nvdimm: Update nvdimm option value in machine example 2021-09-27 10:57:21 +02:00
pci_expander_bridge.txt docs, tests: do not specify scsi=off 2024-06-05 11:00:56 +02:00
pcie.txt docs/pcie.txt: Replace ioh3420 with pcie-root-port 2023-01-28 06:21:30 -05:00
pcie_pci_bridge.txt docs: add slot when adding new PCIe root port 2021-07-03 03:12:35 -04:00
pcie_sriov.txt pcie_sriov: Fix broken MMIO accesses from SR-IOV VFs 2025-10-08 13:43:17 +03:00
qcow2-cache.txt docs/interop: convert text files to restructuredText 2025-05-29 17:45:10 +01:00
qdev-device-use.txt util: remove support -chardev tty and -chardev parport 2023-01-06 00:51:02 +01:00
qemu-option-trace.rst.inc
qemupciserial.inf
rdma.txt docs tests: Fix use of migrate_set_parameter 2023-09-08 13:08:52 +03:00
requirements.txt docs: Bump sphinx to 6.2.1 2025-07-16 17:02:46 +02:00
spice-port-fqdn.txt
throttle.txt docs: Drop deprecated 'props' from object-add 2021-11-22 15:02:38 +01:00
xbzrle.txt migrate: remove QMP/HMP commands for speed, downtime and cache size 2021-03-18 09:22:55 +00:00
xen-save-devices-state.txt