|
@@ -53,6 +53,7 @@
|
|
#include "hw/usb.h"
|
|
#include "hw/usb.h"
|
|
#include "hw/isa/isa.h"
|
|
#include "hw/isa/isa.h"
|
|
#include "hw/scsi/scsi.h"
|
|
#include "hw/scsi/scsi.h"
|
|
|
|
+#include "hw/sd/sd.h"
|
|
#include "hw/display/vga.h"
|
|
#include "hw/display/vga.h"
|
|
#include "hw/firmware/smbios.h"
|
|
#include "hw/firmware/smbios.h"
|
|
#include "hw/acpi/acpi.h"
|
|
#include "hw/acpi/acpi.h"
|
|
@@ -2661,12 +2662,27 @@ static void qemu_init_displays(void)
|
|
|
|
|
|
static void qemu_init_board(void)
|
|
static void qemu_init_board(void)
|
|
{
|
|
{
|
|
|
|
+ MachineClass *machine_class = MACHINE_GET_CLASS(current_machine);
|
|
|
|
+
|
|
/* process plugin before CPUs are created, but once -smp has been parsed */
|
|
/* process plugin before CPUs are created, but once -smp has been parsed */
|
|
qemu_plugin_load_list(&plugin_list, &error_fatal);
|
|
qemu_plugin_load_list(&plugin_list, &error_fatal);
|
|
|
|
|
|
/* From here on we enter MACHINE_PHASE_INITIALIZED. */
|
|
/* From here on we enter MACHINE_PHASE_INITIALIZED. */
|
|
machine_run_board_init(current_machine, mem_path, &error_fatal);
|
|
machine_run_board_init(current_machine, mem_path, &error_fatal);
|
|
|
|
|
|
|
|
+ if (machine_class->auto_create_sdcard) {
|
|
|
|
+ bool ambigous;
|
|
|
|
+
|
|
|
|
+ /* Ensure there is a SD bus available to create SD card on */
|
|
|
|
+ Object *obj = object_resolve_path_type("", TYPE_SD_BUS, &ambigous);
|
|
|
|
+ if (!obj && !ambigous) {
|
|
|
|
+ fprintf(stderr, "Can not create sd-card on '%s' machine"
|
|
|
|
+ " because it lacks a sd-bus\n",
|
|
|
|
+ machine_class->name);
|
|
|
|
+ abort();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
drive_check_orphaned();
|
|
drive_check_orphaned();
|
|
|
|
|
|
realtime_init();
|
|
realtime_init();
|