These machines have no onboard SCSI HBA, and no way to plug one. -drive if=scsi therefore cannot work. They do have an onboard IDE controller (sysbus-ahci), but fail to honor if=ide.
Change their default to if=ide, and add a TODO comment on what needs to be done to actually honor -drive if=ide. Cc: Rob Herring <r...@kernel.org> Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: qemu-...@nongnu.org Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> --- hw/arm/highbank.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c index 80e5fd4..0a4508c 100644 --- a/hw/arm/highbank.c +++ b/hw/arm/highbank.c @@ -363,6 +363,8 @@ static void calxeda_init(MachineState *machine, enum cxmachines machine_id) sysbus_connect_irq(SYS_BUS_DEVICE(dev), 2, pic[82]); } + /* TODO create and connect IDE devices for ide_drive_get() */ + highbank_binfo.ram_size = ram_size; highbank_binfo.kernel_filename = kernel_filename; highbank_binfo.kernel_cmdline = kernel_cmdline; @@ -405,7 +407,8 @@ static void highbank_class_init(ObjectClass *oc, void *data) mc->desc = "Calxeda Highbank (ECX-1000)"; mc->init = highbank_init; - mc->block_default_type = IF_SCSI; + mc->block_default_type = IF_IDE; + mc->units_per_default_bus = 1; mc->max_cpus = 4; } @@ -421,7 +424,8 @@ static void midway_class_init(ObjectClass *oc, void *data) mc->desc = "Calxeda Midway (ECX-2000)"; mc->init = midway_init; - mc->block_default_type = IF_SCSI; + mc->block_default_type = IF_IDE; + mc->units_per_default_bus = 1; mc->max_cpus = 4; } -- 2.7.4