Peter Maydell <peter.mayd...@linaro.org> writes: > Now we have virtio-pci, we can make the virt board's default block > device type be IF_VIRTIO. This allows users to use simplified > command lines that don't have to explicitly create virtio-pci-blk > devices; the -hda &c very short options now also work. > > This means we also need to set no_cdrom to avoid getting a > default cdrom device -- this is needed because the virtio-blk > device will fail if it is connected to a block backend with > no media, which is what the default cdrom device typically is. > Providing a cdrom with media via -cdrom will still work.
It'll create a virtio-blk device with non-removable medium, won't it? > Note that this change means that some command lines which used > to work (by accident) will stop working. Where a drive was connected > manually to a device but without 'if=none' being specified, we > used to treat this as an IDE drive, which we would then not autoplug > because the board doesn't support IDE. Now we will treat it as a > virtio disk and autoplug it, which means the attempt to use the > drive manually will fail: > qemu-system-arm: -drive file=img.qcow2,id=foo: Drive 'foo' is already > in use because it has been automatically connected to another device > (did you need 'if=none' in the drive options?) > The command line will be changed to include 'if=none', as the will have to be changed > error message suggests. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > hw/arm/virt.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index f1e85c8..7e643ba 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -966,6 +966,8 @@ static void virt_class_init(ObjectClass *oc, void *data) > mc->init = machvirt_init; > mc->max_cpus = 8; > mc->has_dynamic_sysbus = true; > + mc->block_default_type = IF_VIRTIO; > + mc->no_cdrom = 1; > } > > static const TypeInfo machvirt_info = {