qemu/docs/system/arm
Gavin Shan f40408a9fe hw/arm/virt: Add 'compact-highmem' property
After the improvement to high memory region address assignment is
applied, the memory layout can be changed, introducing possible
migration breakage. For example, VIRT_HIGH_PCIE_MMIO memory region
is disabled or enabled when the optimization is applied or not, with
the following configuration. The configuration is only achievable by
modifying the source code until more properties are added to allow
users selectively disable those high memory regions.

  pa_bits              = 40;
  vms->highmem_redists = false;
  vms->highmem_ecam    = false;
  vms->highmem_mmio    = true;

  # qemu-system-aarch64 -accel kvm -cpu host    \
    -machine virt-7.2,compact-highmem={on, off} \
    -m 4G,maxmem=511G -monitor stdio

  Region             compact-highmem=off         compact-highmem=on
  ----------------------------------------------------------------
  MEM                [1GB         512GB]        [1GB         512GB]
  HIGH_GIC_REDISTS2  [512GB       512GB+64MB]   [disabled]
  HIGH_PCIE_ECAM     [512GB+256MB 512GB+512MB]  [disabled]
  HIGH_PCIE_MMIO     [disabled]                 [512GB       1TB]

In order to keep backwords compatibility, we need to disable the
optimization on machine, which is virt-7.1 or ealier than it. It
means the optimization is enabled by default from virt-7.2. Besides,
'compact-highmem' property is added so that the optimization can be
explicitly enabled or disabled on all machine types by users.

Signed-off-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Tested-by: Zhenyu Zhang <zhenyzha@redhat.com>
Message-id: 20221029224307.138822-7-gshan@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2022-12-15 11:18:19 +00:00
..
aspeed.rst docs: aspeed: Minor updates 2022-07-14 16:24:38 +02:00
collie.rst docs/system: Briefly document collie board 2020-07-20 11:35:17 +01:00
cpu-features.rst Fix some typos in documentation and comments 2022-11-05 20:35:45 +01:00
cubieboard.rst docs: Add skeletal documentation of cubieboard 2021-07-18 10:59:47 +01:00
digic.rst docs/system: Briefly document canon-a1100 board 2020-07-20 11:35:17 +01:00
emcraft-sf2.rst docs: Add skeletal documentation of the emcraft-sf2 2021-07-18 10:59:47 +01:00
emulation.rst target/arm: Implement FEAT_HAFDBS, access flag portion 2022-10-27 10:27:24 +01:00
gumstix.rst docs/system: Briefly document gumstix boards 2020-07-20 11:35:17 +01: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 docs/system: Add 'Arm' to the Integrator/CP document title 2020-05-21 20:00:18 +01:00
kzm.rst docs: Add documentation of Arm 'kzm' board 2021-08-02 11:42:38 +01:00
mainstone.rst docs: Add documentation of Arm 'mainstone' board 2021-08-02 11:42:38 +01:00
mps2.rst hw/arm/mps2-tz: Implement AN524 memory remapping via machine property 2021-05-10 17:21:54 +01:00
musca.rst docs/system: Document Musca boards 2020-05-21 20:00:18 +01:00
musicpal.rst docs: Be consistent about capitalization of 'Arm' 2020-03-12 11:20:20 +00:00
nrf.rst docs/system: arm: Add nRF boards description 2021-06-24 14:58:48 +01:00
nseries.rst docs: Be consistent about capitalization of 'Arm' 2020-03-12 11:20:20 +00:00
nuvoton.rst docs/nuvoton: Update URL for images 2022-10-10 14:52:24 +01:00
orangepi.rst docs: Render binary names as monospaced text 2021-11-22 15:02:38 +01:00
palm.rst docs: Be consistent about capitalization of 'Arm' 2020-03-12 11:20:20 +00:00
raspi.rst docs/system/arm: Document the various raspi boards 2020-11-23 10:53:02 +00:00
realview.rst docs: Be consistent about capitalization of 'Arm' 2020-03-12 11:20:20 +00:00
sabrelite.rst arm: Consistently use "Cortex-Axx", not "Cortex Axx" 2021-06-03 16:43:25 +01:00
sbsa.rst docs: Format literals correctly 2021-08-02 11:42:38 +01:00
stellaris.rst docs/system: Split target-arm.rst into sub-documents 2020-03-12 11:20:20 +00:00
stm32.rst docs/system: arm: Add stm32 boards description 2021-07-09 16:09:12 +01:00
sx1.rst docs: Be consistent about capitalization of 'Arm' 2020-03-12 11:20:20 +00:00
versatile.rst docs/system: document an example booting the versatilepb machine 2021-02-08 10:55:20 +00:00
vexpress.rst docs/system: document an example vexpress-a15 invocation 2021-02-08 10:55:20 +00:00
virt.rst hw/arm/virt: Add 'compact-highmem' property 2022-12-15 11:18:19 +00:00
xlnx-versal-virt.rst docs/system/arm: xlnx-versal-virt: BBRAM and eFUSE Usage 2021-09-30 13:42:10 +01:00
xscale.rst docs/system/arm: Document the Sharp Zaurus SL-6000 2020-11-23 10:53:18 +00:00