diff --git a/hw/qdev.c b/hw/qdev.c index 0465632dff..d0cf66de56 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -1529,3 +1529,9 @@ void qdev_property_add_str(DeviceState *dev, const char *name, qdev_property_release_str, prop, errp); } + +void qdev_machine_init(void) +{ + qdev_get_peripheral_anon(); + qdev_get_peripheral(); +} diff --git a/hw/qdev.h b/hw/qdev.h index d5896be40e..2abb767389 100644 --- a/hw/qdev.h +++ b/hw/qdev.h @@ -616,4 +616,12 @@ void qdev_property_add_str(DeviceState *dev, const char *name, */ char *qdev_get_type(DeviceState *dev, Error **errp); +/** + * @qdev_machine_init + * + * Initialize platform devices before machine init. This is a hack until full + * support for composition is added. + */ +void qdev_machine_init(void); + #endif diff --git a/vl.c b/vl.c index da69f94dd1..78b790c919 100644 --- a/vl.c +++ b/vl.c @@ -3335,6 +3335,8 @@ int main(int argc, char **argv, char **envp) } qemu_add_globals(); + qdev_machine_init(); + machine->init(ram_size, boot_devices, kernel_filename, kernel_cmdline, initrd_filename, cpu_model);