From: Ruslan Ruslichenko <[email protected]> The patch registers FDT compatibility handlers and QOM aliases of memory subsystem, so that memory regions can be created from a device tree model.
The alias 'qemu:system-memory' could be used to attach subregion to root address space. Also 'qemu-memory-region' types can be used to create new memory regions. Signed-off-by: Ruslan Ruslichenko <[email protected]> --- system/memory.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/system/memory.c b/system/memory.c index 866c741973..867228922b 100644 --- a/system/memory.c +++ b/system/memory.c @@ -4077,3 +4077,27 @@ static void memory_register_types(void) } type_init(memory_register_types) + +static int sysmem_fdt_init(char *node_path, FDTMachineInfo *fdti, + void *priv) +{ + fdt_init_set_opaque(fdti, node_path, OBJECT(get_system_memory())); + return 0; +} + +fdt_register_compatibility(sysmem_fdt_init, "compatible:qemu:system-memory"); + +static const TypeInfo fdt_qom_aliases[] = { + { .name = "qemu-memory-region", .parent = "memory-region" }, +}; + +static void fdt_memory_types(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(fdt_qom_aliases); ++i) { + type_register_static(&fdt_qom_aliases[i]); + } +} + +type_init(fdt_memory_types) -- 2.43.0
