qemu/docs/system
Peter Maydell 13edcf591e hw/arm/vexpress-a9: Remove useless mapping of RAM at address 0
On the vexpress-a9 board we try to map both RAM and flash to address 0,
as seen in "info mtree":

address-space: memory
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-0000000003ffffff (prio 0, romd): alias vexpress.flashalias @vexpress.flash0 0000000000000000-0000000003ffffff
    0000000000000000-0000000003ffffff (prio 0, ram): alias vexpress.lowmem @vexpress.highmem 0000000000000000-0000000003ffffff
    0000000010000000-0000000010000fff (prio 0, i/o): arm-sysctl
    0000000010004000-0000000010004fff (prio 0, i/o): pl041
(etc)

The flash "wins" and the RAM mapping is useless (but also harmless).

This happened as a result of commit 6ec1588e in 2014, which changed
"we always map the RAM to the low addresses for vexpress-a9" to "we
always map flash in the low addresses", but forgot to stop mapping
the RAM.

In real hardware, this low part of memory is remappable, both at
runtime by the guest writing to a control register, and configurably
as to what you get out of reset -- you can have the first flash
device, or the second, or the DDR2 RAM, or the external AXI bus
(which for QEMU means "nothing there").  In an ideal world we would
support that remapping both at runtime and via a machine property to
select the out-of-reset behaviour.

Pending anybody caring enough to implement the full remapping
behaviour:
 * remove the useless mapped-but-inaccessible lowram MR
 * document that QEMU doesn't support remapping of low memory

Fixes: 6ec1588e ("hw/arm/vexpress: Alias NOR flash at 0 for vexpress-a9")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1761
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20231103185602.875849-1-peter.maydell@linaro.org
2023-11-06 15:00:29 +00:00
..
arm hw/arm/vexpress-a9: Remove useless mapping of RAM at address 0 2023-11-06 15:00:29 +00:00
devices docs/specs/ivshmem-spec: Convert to rST 2023-11-02 12:52:06 +00:00
i386 Update AMD memory encryption document links. 2023-10-11 14:19:45 +03:00
loongarch docs/system/loongarch: update loongson3.rst and rename it to virt.rst 2023-03-03 09:37:30 +08:00
openrisc docs/system: openrisc: Add OpenRISC documentation 2022-09-04 07:02:57 +01:00
ppc ppc/pnv: SMT support for powernv 2023-07-07 04:47:49 -03:00
riscv hw/riscv/virt: Restrict ACLINT to TCG 2023-07-10 22:29:15 +10:00
s390x docs/s390x/cpu topology: document s390x cpu topology 2023-10-20 07:16:53 +02:00
authz.rst docs: Drop deprecated 'props' from object-add 2021-11-22 15:02:38 +01:00
barrier.rst docs: Move user-facing barrier docs into system manual 2021-08-02 12:55:51 +01:00
bootindex.rst docs: Move bootindex.txt into system section and rstify 2021-08-02 12:55:51 +01:00
confidential-guest-support.rst docs: rstfy confidential guest documentation 2022-02-09 09:08:56 +01:00
cpu-hotplug.rst docs: Format literals correctly 2021-08-02 11:42:38 +01:00
cpu-models-mips.rst.inc docs/system: Update MIPS CPU documentation 2020-10-17 13:59:40 +02:00
cpu-models-x86-abi.csv docs: add a table showing x86-64 ABI compatibility levels 2021-06-17 14:11:06 -04:00
cpu-models-x86.rst.inc Fix some typos in documentation (found by codespell) 2021-11-22 15:02:38 +01:00
device-emulation.rst docs/system: add basic virtio-gpu documentation 2023-10-16 11:29:56 +04:00
device-url-syntax.rst.inc docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
gdb.rst docs: Document security implications of debugging 2023-07-03 12:52:34 +01:00
generic-loader.rst docs: Move licence/copyright from HTML output to rST comments 2021-08-02 11:42:38 +01:00
guest-loader.rst docs/system: remove excessive punctuation from guest-loader docs 2023-04-27 14:58:41 +01:00
images.rst docs: Render binary names as monospaced text 2021-11-22 15:02:38 +01:00
index.rst docs: Start documenting VM templating 2023-09-19 10:23:21 +02:00
introduction.rst accel: Remove HAX accelerator 2023-08-31 19:46:43 +02:00
invocation.rst docs: Split out sections for the manpage into .rst.inc files 2020-03-06 11:06:55 +00:00
keys.rst docs: Remove unused weirdly-named cross-reference targets 2023-05-12 15:43:38 +01:00
keys.rst.inc docs: Split out sections for the manpage into .rst.inc files 2020-03-06 11:06:55 +00:00
linuxboot.rst docs: Remove unused weirdly-named cross-reference targets 2023-05-12 15:43:38 +01:00
managed-startup.rst docs/system: convert managed startup to rST. 2020-03-06 10:05:12 +00:00
monitor.rst docs: Get rid of the weird _005f links in the man page 2020-11-20 13:19:08 +01:00
multi-process.rst docs: fix multi-process QEMU documentation 2023-06-07 10:21:53 -04:00
mux-chardev.rst docs: Get rid of the weird _005f links in the man page 2020-11-20 13:19:08 +01:00
mux-chardev.rst.inc docs: Split out sections for the manpage into .rst.inc files 2020-03-06 11:06:55 +00:00
pr-manager.rst docs/system/pr-manager.rst: Fix minor docs nits 2020-11-23 11:10:04 +00:00
qemu-block-drivers.rst docs/system: standardize man page sections to --- with overline 2021-09-13 13:56:26 +02:00
qemu-block-drivers.rst.inc docs/zoned-storage: add zoned device documentation 2023-05-15 08:17:34 -04:00
qemu-cpu-models.rst docs/system: standardize man page sections to --- with overline 2021-09-13 13:56:26 +02:00
qemu-manpage.rst docs/system: standardize man page sections to --- with overline 2021-09-13 13:56:26 +02:00
replay.rst docs/system/replay: do not show removed command line option 2023-09-07 13:32:37 +02:00
secrets.rst docs: document how to pass secret data to QEMU 2021-06-14 13:28:50 +01:00
security.rst docs/system: Convert security.texi to rST format 2020-03-06 10:05:12 +00:00
target-arm.rst hw/arm: introduce xenpvh machine 2023-06-15 16:46:47 -07:00
target-avr.rst docs: update to show preferred boolean syntax for -chardev 2021-02-25 14:14:33 +01:00
target-i386-desc.rst.inc hw/i386/pc_piix: Make PIIX4 south bridge usable in PC machine 2023-10-22 05:18:17 -04:00
target-i386.rst docs: Remove unused weirdly-named cross-reference targets 2023-05-12 15:43:38 +01:00
target-m68k.rst docs: Roll semihosting option information into qemu-options.hx 2020-03-06 10:05:12 +00:00
target-mips.rst docs/system: Remove "mips" board from target-mips.rst 2023-03-07 18:08:12 +01:00
target-openrisc.rst docs/system: openrisc: Add OpenRISC documentation 2022-09-04 07:02:57 +01:00
target-ppc.rst docs/system: ppc: Add documentation for ppce500 machine 2021-05-04 11:41:25 +10:00
target-riscv.rst docs/system/target-riscv.rst: tidy CPU firmware section 2023-07-19 14:30:04 +10:00
target-rx.rst docs: Document the RX target 2020-06-22 18:37:12 +02:00
target-s390x.rst docs/s390x/cpu topology: document s390x cpu topology 2023-10-20 07:16:53 +02:00
target-sparc.rst escc: emulate dip switch language layout settings on SUN keyboard 2023-06-28 10:54:25 +01:00
target-sparc64.rst docs: Roll -prom-env and -g target-specific info into qemu-options.hx 2020-03-06 10:05:18 +00:00
target-xtensa.rst docs: Roll semihosting option information into qemu-options.hx 2020-03-06 10:05:12 +00:00
targets.rst docs/system: openrisc: Add OpenRISC documentation 2022-09-04 07:02:57 +01:00
tls.rst misc: fix commonly doubled up words 2022-08-01 11:58:02 +02:00
virtio-net-failover.rst docs: Move virtio-net-failover.rst into the system manual 2020-11-23 11:07:41 +00:00
vm-templating.rst docs: Start documenting VM templating 2023-09-19 10:23:21 +02:00
vnc-security.rst docs: recommend SCRAM-SHA-256 SASL mech instead of SHA-1 variant 2021-06-14 13:28:50 +01:00