hw/arm/virt: Make block devices default to virtio
commit4e2c0b2a4ab810c8989e181a010e75aeaa1c55f3
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 26 Jun 2015 13:22:37 +0000 (26 14:22 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 26 Jun 2015 13:22:37 +0000 (26 14:22 +0100)
tree5b2eaab933b6e00491c7df2f1265bd58c509090e
parent62f7dbde4c75e48921fd1b773865250130c57bd8
hw/arm/virt: Make block devices default to virtio

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 succeed, but silently
create a device with non-removable medium. this is probably
not really what the user wants, but is the best we can do now.

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 have to be changed to include 'if=none', as the
error message suggests.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 1435068107-12594-4-git-send-email-peter.maydell@linaro.org
hw/arm/virt.c