aboutsummaryrefslogtreecommitdiff
path: root/hw/arm/mps2-tz.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-02-15 11:51:32 +0000
committerPeter Maydell <peter.maydell@linaro.org>2021-03-06 13:30:39 +0000
commitb89918fceb4041466d8a98400f173fb583f74899 (patch)
treecf1e85a86a6b5e50e1665c2cb0d47ea51fdfce49 /hw/arm/mps2-tz.c
parent18a8c3b390550601e5b88cf78e416353d23bc1eb (diff)
hw/arm/mps2-tz: Support ROMs as well as RAMs
The AN505 and AN521 don't have any read-only memory, but the AN524 does; add a flag to ROMInfo to mark a region as ROM. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210215115138.20465-19-peter.maydell@linaro.org
Diffstat (limited to 'hw/arm/mps2-tz.c')
-rw-r--r--hw/arm/mps2-tz.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index eaa430e953..333795b029 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -92,8 +92,10 @@ typedef struct RAMInfo {
* Flag values:
* IS_ALIAS: this RAM area is an alias to the upstream end of the
* MPC specified by its .mpc value
+ * IS_ROM: this RAM area is read-only
*/
#define IS_ALIAS 1
+#define IS_ROM 2
struct MPS2TZMachineClass {
MachineClass parent;
@@ -209,6 +211,7 @@ static MemoryRegion *mr_for_raminfo(MPS2TZMachineState *mms,
if (raminfo->mrindex < 0) {
/* Means this RAMInfo is for QEMU's "system memory" */
MachineState *machine = MACHINE(mms);
+ assert(!(raminfo->flags & IS_ROM));
return machine->ram;
}
@@ -217,6 +220,9 @@ static MemoryRegion *mr_for_raminfo(MPS2TZMachineState *mms,
memory_region_init_ram(ram, NULL, raminfo->name,
raminfo->size, &error_fatal);
+ if (raminfo->flags & IS_ROM) {
+ memory_region_set_readonly(ram, true);
+ }
return ram;
}