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 guest can also dynamically
change the mapping via the SCC CFG_REG0 register.
This patchset adds support for the feature to QEMU's model;
the user-sets-the-initial-mapping part is a new machine property
which can be set with "-M remap=QSPI".
This is needed for some guest images -- for instance the
Arm TF-M binaries -- which assume they have the QSPI layout.
Changes v1->v2: all in patch 3
* tweaked commit message to clarify that the MCC is external
* use memory_region_transaction_begin/commit
* make remap be bool rather than int
(All patches are reviewed, I'm just posting v2 because it
has changes made in response to the v1 review.)
thanks
-- PMM
Peter Maydell (3):
hw/misc/mps2-scc: Add "QEMU interface" comment
hw/misc/mps2-scc: Support using CFG0 bit 0 for remapping
hw/arm/mps2-tz: Implement AN524 memory remapping via machine property
docs/system/arm/mps2.rst | 10 ++++
include/hw/misc/mps2-scc.h | 21 ++++++++
hw/arm/mps2-tz.c | 108 ++++++++++++++++++++++++++++++++++++-
hw/misc/mps2-scc.c | 13 +++--
4 files changed, 148 insertions(+), 4 deletions(-)
--
2.20.1