|
@@ -360,8 +360,7 @@ static inline DeviceState *gpex_pcie_init(MemoryRegion *sys_mem,
|
|
|
static void riscv_virt_board_init(MachineState *machine)
|
|
|
{
|
|
|
const struct MemmapEntry *memmap = virt_memmap;
|
|
|
-
|
|
|
- RISCVVirtState *s = g_new0(RISCVVirtState, 1);
|
|
|
+ RISCVVirtState *s = RISCV_VIRT_MACHINE(machine);
|
|
|
MemoryRegion *system_memory = get_system_memory();
|
|
|
MemoryRegion *main_mem = g_new(MemoryRegion, 1);
|
|
|
MemoryRegion *mask_rom = g_new(MemoryRegion, 1);
|
|
@@ -497,12 +496,31 @@ static void riscv_virt_board_init(MachineState *machine)
|
|
|
g_free(plic_hart_config);
|
|
|
}
|
|
|
|
|
|
-static void riscv_virt_board_machine_init(MachineClass *mc)
|
|
|
+static void riscv_virt_machine_instance_init(Object *obj)
|
|
|
{
|
|
|
- mc->desc = "RISC-V VirtIO Board (Privileged ISA v1.10)";
|
|
|
+}
|
|
|
+
|
|
|
+static void riscv_virt_machine_class_init(ObjectClass *oc, void *data)
|
|
|
+{
|
|
|
+ MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
+
|
|
|
+ mc->desc = "RISC-V VirtIO board";
|
|
|
mc->init = riscv_virt_board_init;
|
|
|
- mc->max_cpus = 8; /* hardcoded limit in BBL */
|
|
|
+ mc->max_cpus = 8;
|
|
|
mc->default_cpu_type = VIRT_CPU;
|
|
|
}
|
|
|
|
|
|
-DEFINE_MACHINE("virt", riscv_virt_board_machine_init)
|
|
|
+static const TypeInfo riscv_virt_machine_typeinfo = {
|
|
|
+ .name = MACHINE_TYPE_NAME("virt"),
|
|
|
+ .parent = TYPE_MACHINE,
|
|
|
+ .class_init = riscv_virt_machine_class_init,
|
|
|
+ .instance_init = riscv_virt_machine_instance_init,
|
|
|
+ .instance_size = sizeof(RISCVVirtState),
|
|
|
+};
|
|
|
+
|
|
|
+static void riscv_virt_machine_init_register_types(void)
|
|
|
+{
|
|
|
+ type_register_static(&riscv_virt_machine_typeinfo);
|
|
|
+}
|
|
|
+
|
|
|
+type_init(riscv_virt_machine_init_register_types)
|