Message ID | 1435068107-12594-4-git-send-email-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
On 25 June 2015 at 08:40, Markus Armbruster <armbru@redhat.com> wrote: > Peter Maydell <peter.maydell@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? Yes, I think so. Mostly I cared that -cdrom won't make qemu die with a confusing error. (Without no_cdrom, qemu dies even if you don't say -cdrom, because of the default empty drive.) >> The command line will be changed to include 'if=none', as the > > will have to be changed Yes. -- PMM
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 = {
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. 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 error message suggests. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- hw/arm/virt.c | 2 ++ 1 file changed, 2 insertions(+)