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
This commit is contained in:
parent
18a8c3b390
commit
b89918fceb
@ -92,8 +92,10 @@ typedef struct RAMInfo {
|
|||||||
* Flag values:
|
* Flag values:
|
||||||
* IS_ALIAS: this RAM area is an alias to the upstream end of the
|
* IS_ALIAS: this RAM area is an alias to the upstream end of the
|
||||||
* MPC specified by its .mpc value
|
* MPC specified by its .mpc value
|
||||||
|
* IS_ROM: this RAM area is read-only
|
||||||
*/
|
*/
|
||||||
#define IS_ALIAS 1
|
#define IS_ALIAS 1
|
||||||
|
#define IS_ROM 2
|
||||||
|
|
||||||
struct MPS2TZMachineClass {
|
struct MPS2TZMachineClass {
|
||||||
MachineClass parent;
|
MachineClass parent;
|
||||||
@ -209,6 +211,7 @@ static MemoryRegion *mr_for_raminfo(MPS2TZMachineState *mms,
|
|||||||
if (raminfo->mrindex < 0) {
|
if (raminfo->mrindex < 0) {
|
||||||
/* Means this RAMInfo is for QEMU's "system memory" */
|
/* Means this RAMInfo is for QEMU's "system memory" */
|
||||||
MachineState *machine = MACHINE(mms);
|
MachineState *machine = MACHINE(mms);
|
||||||
|
assert(!(raminfo->flags & IS_ROM));
|
||||||
return machine->ram;
|
return machine->ram;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,6 +220,9 @@ static MemoryRegion *mr_for_raminfo(MPS2TZMachineState *mms,
|
|||||||
|
|
||||||
memory_region_init_ram(ram, NULL, raminfo->name,
|
memory_region_init_ram(ram, NULL, raminfo->name,
|
||||||
raminfo->size, &error_fatal);
|
raminfo->size, &error_fatal);
|
||||||
|
if (raminfo->flags & IS_ROM) {
|
||||||
|
memory_region_set_readonly(ram, true);
|
||||||
|
}
|
||||||
return ram;
|
return ram;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user