hw/arm/mps2-tz: Implement AN524 memory remapping via machine property
commitf1dfab0d9b77b8649d60ded3d96870f88d0baccd
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 4 May 2021 12:09:12 +0000 (4 13:09 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 10 May 2021 16:21:54 +0000 (10 17:21 +0100)
tree32138b74a6069e2aa94d46b45bad6f0d7e2a6374
parent5bddf92e689c0a3da57f4fd17b83d4eb1e436b80
hw/arm/mps2-tz: Implement AN524 memory remapping via machine property

The AN524 FPGA image supports two memory maps, which differ in where
the QSPI and BRAM are.  In the default map, the BRAM is at
0x0000_0000, and the QSPI at 0x2800_0000.  In the second map, they
are the other way around.

In hardware, the initial mapping can be selected by the user by
writing either "REMAP: BRAM" (the default) or "REMAP: QSPI" in the
board configuration file.  The board config file is acted on by the
"Motherboard Configuration Controller", which is an entirely separate
microcontroller on the dev board but outside the FPGA.

The guest can also dynamically change the mapping via the SCC
CFG_REG0 register.

Implement this functionality for QEMU, using a machine property
"remap" with valid values "BRAM" and "QSPI" to allow the user to set
the initial mapping, in the same way they can on the FPGA, and
wiring up the bit from the SCC register to also switch the mapping.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20210504120912.23094-4-peter.maydell@linaro.org
docs/system/arm/mps2.rst
hw/arm/mps2-tz.c