[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 205983: hw: Default -drive to if=ide explicit
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 205983: hw: Default -drive to if=ide explicitly where it w... |
Date: |
Tue, 21 Feb 2017 07:15:09 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 2059839baa8fbc4390eddf462c601165485ffa8f
https://github.com/qemu/qemu/commit/2059839baa8fbc4390eddf462c601165485ffa8f
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/alpha/dp264.c
M hw/arm/spitz.c
M hw/arm/tosa.c
M hw/i386/pc.c
M hw/mips/mips_fulong2e.c
M hw/mips/mips_malta.c
M hw/mips/mips_r4k.c
M hw/ppc/mac_newworld.c
M hw/ppc/mac_oldworld.c
M hw/ppc/prep.c
M hw/sh4/r2d.c
M hw/sparc64/sun4u.c
Log Message:
-----------
hw: Default -drive to if=ide explicitly where it works
Block backends defined with -drive if=ide are meant to be picked up by
machine initialization code: a suitable frontend gets created and
wired up automatically.
if=ide drives not picked up that way can still be used with -device as
if they had if=none, but that's unclean and best avoided. Unused ones
produce an "Orphaned drive without device" warning.
-drive parameter "if" is optional, and the default depends on the
machine type. If a machine type doesn't specify a default, the
default is "ide".
Many machine types default to if=ide, even though they don't actually
have an IDE controller. A future patch will change these defaults to
something more sensible. To prepare for it, this patch makes default
"ide" explicit for the machines that actually pick up if=ide drives:
* alpha: clipper
* arm/aarch64: spitz borzoi terrier tosa
* i386/x86_64: generic-pc-machine (with concrete subtypes pc-q35-*
pc-i440fx-* pc-* isapc xenfv)
* mips64el: fulong2e
* mips/mipsel/mips64el: malta mips
* ppc/ppc64: mac99 g3beige prep
* sh4/sh4eb: r2d
* sparc64: sun4u sun4v
Note that ppc64 machine powernv already sets an "ide" default
explicitly. Its IDE controller isn't implemented, yet.
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Commit: e0319b030256cfd64c599b1bbac5b3df92ebafe4
https://github.com/qemu/qemu/commit/e0319b030256cfd64c599b1bbac5b3df92ebafe4
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/arm/cubieboard.c
M hw/arm/xlnx-ep108.c
Log Message:
-----------
hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus
Machine types cubieboard, xlnx-ep108, xlnx-zcu102 have an onboard AHCI
controller, but neglect to set their MachineClass member
units_per_default_bus = 1. This permits -drive if=ide,unit=1, which
makes no sense for AHCI. It also screws up index=N for odd N, because
it gets desugared to unit=1,bus=N/2
Doesn't really matter, because these machine types fail to honor
-drive if=ide. Add the missing units_per_default_bus = 1 anyway,
along with a TODO comment on what needs to be done for -drive if=ide.
Also set block_default_type = IF_IDE explicitly. It's currently the
default, but the next commit will change it to something more
sensible, and we want to keep the IF_IDE default for these three
machines. See also the previous commit.
Cc: Beniamino Galvani <address@hidden>
Cc: Alistair Francis <address@hidden>
Cc: "Edgar E. Iglesias" <address@hidden>
Cc: Peter Maydell <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Acked-by: Alistair Francis <address@hidden>
Message-Id: <address@hidden>
Commit: a27fa28f039771574176a1efe0733b3ba3c7c47c
https://github.com/qemu/qemu/commit/a27fa28f039771574176a1efe0733b3ba3c7c47c
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M include/sysemu/blockdev.h
Log Message:
-----------
hw: Default -drive to if=none instead of ide when ide cannot work
Block backends defined with -drive if=ide are meant to be picked up by
machine initialization code: a suitable frontend gets created and
wired up automatically.
if=ide drives not picked up that way can still be used with -device as
if they had if=none, but that's unclean and best avoided. Unused ones
produce an "Orphaned drive without device" warning.
-drive parameter "if" is optional, and the default depends on the
machine type. If a machine type doesn't specify a default, the
default is "ide".
Many machine types implicitly default to if=ide that way, even though
they don't actually have an IDE controller. This makes no sense.
Change the implicit default to if=none. Affected machines:
* all targets: none
* aarch64/arm: akita ast2500 canon cheetah collie connex imx25
integratorcp kzm lm3s6965evb lm3s811evb mainstone musicpal n800 n810
netduino2 nuri palmetto realview romulus sabrelite smdkc210 sx1 sx1
verdex z2
* cris: axis-dev88
* i386/x86_64: xenpv
* lm32: lm32-evr lm32-uclinux milkymist
* m68k: an5206 dummy mcf5208evb
* microblaze/microblazeel: petalogix-ml605 petalogix-s3adsp1800
* mips/mips64/mips64el/mipsel: mipssim
* moxie: moxiesim
* or32: or32-sim
* ppc/ppc64/ppcemb: bamboo ref405ep taihu virtex-ml507
* ppc/ppc64: mpc8544ds ppce500
* sh4/sh4eb: shix
* sparc: leon3_generic
* sparc64: niagara
* tricore: tricore_testboard
* unicore32: puv3
* xtensa/xtensaeb: kc705 lx200 lx60 ml605 sim
None of these machines have an IDE controller, let alone code to
honor if=ide.
Cc: Peter Maydell <address@hidden>
Cc: address@hidden
Cc: Edgar E. Iglesias <address@hidden>
Cc: Stefano Stabellini <address@hidden>
Cc: Anthony Perard <address@hidden>
Cc: address@hidden
Cc: Michael Walle <address@hidden>
Cc: Laurent Vivier <address@hidden>
Cc: Anthony Green <address@hidden>
Cc: Jia Liu <address@hidden>
Cc: Alexander Graf <address@hidden>
Cc: address@hidden
Cc: Magnus Damm <address@hidden>
Cc: Fabien Chouteau <address@hidden>
Cc: Mark Cave-Ayland <address@hidden>
Cc: Artyom Tarasenko <address@hidden>
Cc: Bastian Koppelmann <address@hidden>
Cc: Guan Xuetao <address@hidden>
Cc: Max Filippov <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Acked-By: Artyom Tarasenko <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Commit: 7e465513c1c8a384003053eb8f8362039bbb7a2c
https://github.com/qemu/qemu/commit/7e465513c1c8a384003053eb8f8362039bbb7a2c
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/arm/realview.c
M hw/arm/vexpress.c
M hw/arm/xilinx_zynq.c
Log Message:
-----------
hw: Default -drive to if=none instead of scsi when scsi cannot work
Block backends defined with -drive if=scsi are meant to be picked up
by machine initialization code: a suitable frontend gets created and
wired up automatically.
if=scsi drives not picked up that way can still be used with -device
as if they had if=none, but that's unclean and best avoided. Unused
ones produce an "Orphaned drive without device" warning.
A few machine types default to if=scsi, even though they don't
actually have a SCSI HBA. This makes no sense. Change their default
to if=none. Affected machines:
* aarch64/arm: realview-pbx-a9 vexpress-a9 vexpress-a15 xilinx-zynq-a9
Cc: Peter Maydell <address@hidden>
Cc: "Edgar E. Iglesias" <address@hidden>
Cc: Alistair Francis <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-Id: <address@hidden>
Commit: 2a7ae4ee50002a2fb5ac67fc8c32cc9009335cd8
https://github.com/qemu/qemu/commit/2a7ae4ee50002a2fb5ac67fc8c32cc9009335cd8
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/arm/highbank.c
Log Message:
-----------
hw/arm/highbank: Default -drive to if=ide instead of if=scsi
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 <address@hidden>
Cc: Peter Maydell <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Commit: 664cc623bfe161759eabd263a1bf7668895b9e4a
https://github.com/qemu/qemu/commit/664cc623bfe161759eabd263a1bf7668895b9e4a
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M blockdev.c
Log Message:
-----------
blockdev: Improve message for orphaned -drive
We warn when a -drive isn't supported by the machine type (commit
a66c9dc):
$ qemu-system-x86_64 -S -display none -drive if=mtd
Warning: Orphaned drive without device: id=mtd0,file=,if=mtd,bus=0,unit=0
Improve this to point to the offending bit of configuration:
qemu-system-x86_64: -drive if=mtd: warning: machine type does not support
if=mtd,bus=0,unit=0
Especially nice when it's hidden behind -readconfig foo.cfg:
qemu-system-x86_64:foo.cfg:140: warning: machine type does not support
if=mtd,bus=0,unit=0
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: John Snow <address@hidden>
Commit: 720b8dc052ae2783d9b8cc2263eccc5bcec04418
https://github.com/qemu/qemu/commit/720b8dc052ae2783d9b8cc2263eccc5bcec04418
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M blockdev.c
M include/sysemu/blockdev.h
Log Message:
-----------
blockdev: Make orphaned -drive fatal
Block backends defined with "-drive if=T" with T other than "none" are
meant to be picked up by machine initialization code: a suitable
frontend gets created and wired up automatically.
If machine initialization code doesn't comply, the block backend
remains unused. This triggers a warning since commit a66c9dc, v2.2.0.
Drives created by default are exempted; use -nodefaults to get rid of
them.
Turn this warning into an error.
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: John Snow <address@hidden>
Commit: 8f2d75e81d5eb2715be653010258ce9d57549de7
https://github.com/qemu/qemu/commit/8f2d75e81d5eb2715be653010258ce9d57549de7
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/ide/core.c
M hw/mips/mips_jazz.c
M hw/sparc/sun4m.c
Log Message:
-----------
hw: Drop superfluous special checks for orphaned -drive
We've traditionally rejected orphans here and there, but not
systematically. For instance, the sun4m machines have an onboard SCSI
HBA (bus=0), and have always rejected bus>0. Other machines with an
onboard SCSI HBA don't.
Commit a66c9dc made all orphans trigger a warning, and the previous
commit turned this into an error. The checks "here and there" are now
redundant. Drop them.
Note that the one in mips_jazz.c was wrong: it rejected bus > MAX_FD,
but MAX_FD is the number of floppy drives per bus.
Error messages change from
$ qemu-system-x86_64 -drive if=ide,bus=2
qemu-system-x86_64: Too many IDE buses defined (3 > 2)
$ qemu-system-mips64 -M magnum,accel=qtest -drive if=floppy,bus=2,id=fd1
qemu: too many floppy drives
$ qemu-system-sparc -M LX -drive if=scsi,bus=1
qemu: too many SCSI bus
to
$ qemu-system-x86_64 -drive if=ide,bus=2
qemu-system-x86_64: -drive if=ide,bus=2: machine type does not support
if=ide,bus=2,unit=0
$ qemu-system-mips64 -M magnum,accel=qtest -drive if=floppy,bus=2,id=fd1
qemu-system-mips64: -drive if=floppy,bus=2,id=fd1: machine type does not
support if=floppy,bus=2,unit=0
$ qemu-system-sparc -M LX -drive if=scsi,bus=1
qemu-system-sparc: -drive if=scsi,bus=1: machine type does not support
if=scsi,bus=1,unit=0
Cc: John Snow <address@hidden>
Cc: "Hervé Poussineau" <address@hidden>
Cc: Mark Cave-Ayland <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: John Snow <address@hidden>
Commit: fb8b660e1718aaa77cccbda67af5727bb4a6250f
https://github.com/qemu/qemu/commit/fb8b660e1718aaa77cccbda67af5727bb4a6250f
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/scsi/esp-pci.c
M hw/scsi/esp.c
M hw/scsi/lsi53c895a.c
M hw/scsi/megasas.c
M hw/scsi/mptsas.c
M hw/scsi/scsi-bus.c
M hw/scsi/spapr_vscsi.c
M hw/scsi/virtio-scsi.c
M include/hw/scsi/scsi.h
M vl.c
Log Message:
-----------
hw/scsi: Concentrate -drive if=scsi auto-create in one place
The logic to create frontends for -drive if=scsi is in SCSI HBAs. For
all other interface types, it's in machine initialization code.
A few machine types create the SCSI HBAs necessary for that. That's
also not done for other interface types.
I'm going to deprecate these SCSI eccentricities. In preparation for
that, create the frontends in main() instead of the SCSI HBAs, by
calling new function scsi_legacy_handle_cmdline() there.
Note that not all SCSI HBAs create frontends. Take care not to change
that.
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Acked-By: Paolo Bonzini <address@hidden>
Commit: a64aa5785d5d26878d0a80ce64625b61be8fde60
https://github.com/qemu/qemu/commit/a64aa5785d5d26878d0a80ce64625b61be8fde60
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/arm/realview.c
M hw/arm/versatilepb.c
M hw/i386/pc.c
M hw/scsi/lsi53c895a.c
M hw/scsi/scsi-bus.c
M hw/scsi/spapr_vscsi.c
M include/hw/pci/pci.h
M include/hw/scsi/scsi.h
M vl.c
Log Message:
-----------
hw: Deprecate -drive if=scsi with non-onboard HBAs
Block backends defined with "-drive if=T" with T other than "none" are
meant to be picked up by machine initialization code: a suitable
frontend gets created and wired up automatically.
Drives defined with if=scsi are also picked up by SCSI HBAs added with
-device, unlike other interface types. Deprecate this usage, as follows.
Create the frontends for onboard HBAs in machine initialization code,
exactly like we do for if=ide and other interface types. Change
scsi_legacy_handle_cmdline() to create a frontend only when it's still
missing, and warn that this usage is deprecated.
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Commit: f778a82f0c179634892ea716970d4d35264dc841
https://github.com/qemu/qemu/commit/f778a82f0c179634892ea716970d4d35264dc841
Author: Markus Armbruster <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M hw/i386/pc.c
M qemu-options.hx
M tests/qemu-iotests/051.pc.out
Log Message:
-----------
hw/i386: Deprecate -drive if=scsi with PC machine types
The PC machines (pc-q35-* pc-i440fx-* pc-* isapc xenfv) automatically
create lsi53c895a SCSI HBAs and SCSI devices to honor -drive if=scsi.
For giggles, try -drive if=scsi,bus=25,media=cdrom --- this makes QEMU
create 25 of them.
lsi53c895a is thoroughly obsolete (PCI Ultra2 SCSI, ca. 2000), and
currently has no maintainer in QEMU. megasas is a better choice,
except with old OSes that lack drivers. virtio-scsi is a much better
choice when you have a driver, but only (newish) Linux comes with one
in the box. There is no good default that works for all guests.
Encourage users to pick a non-obsolete SCSI HBA that works for them by
deprecating -drive if=scsi.
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Acked-By: Paolo Bonzini <address@hidden>
Commit: a1cf5fac2b929ffa2abd1285401f2535ff8c6fea
https://github.com/qemu/qemu/commit/a1cf5fac2b929ffa2abd1285401f2535ff8c6fea
Author: Peter Maydell <address@hidden>
Date: 2017-02-21 (Tue, 21 Feb 2017)
Changed paths:
M blockdev.c
M hw/alpha/dp264.c
M hw/arm/cubieboard.c
M hw/arm/highbank.c
M hw/arm/realview.c
M hw/arm/spitz.c
M hw/arm/tosa.c
M hw/arm/versatilepb.c
M hw/arm/vexpress.c
M hw/arm/xilinx_zynq.c
M hw/arm/xlnx-ep108.c
M hw/i386/pc.c
M hw/ide/core.c
M hw/mips/mips_fulong2e.c
M hw/mips/mips_jazz.c
M hw/mips/mips_malta.c
M hw/mips/mips_r4k.c
M hw/ppc/mac_newworld.c
M hw/ppc/mac_oldworld.c
M hw/ppc/prep.c
M hw/scsi/esp-pci.c
M hw/scsi/esp.c
M hw/scsi/lsi53c895a.c
M hw/scsi/megasas.c
M hw/scsi/mptsas.c
M hw/scsi/scsi-bus.c
M hw/scsi/spapr_vscsi.c
M hw/scsi/virtio-scsi.c
M hw/sh4/r2d.c
M hw/sparc/sun4m.c
M hw/sparc64/sun4u.c
M include/hw/pci/pci.h
M include/hw/scsi/scsi.h
M include/sysemu/blockdev.h
M qemu-options.hx
M tests/qemu-iotests/051.pc.out
M vl.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/armbru/tags/pull-block-2017-02-21' into
staging
Changes to -drive without if= and with if=scsi
# gpg: Signature made Tue 21 Feb 2017 12:22:35 GMT
# gpg: using RSA key 0x3870B400EB918653
# gpg: Good signature from "Markus Armbruster <address@hidden>"
# gpg: aka "Markus Armbruster <address@hidden>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653
* remotes/armbru/tags/pull-block-2017-02-21:
hw/i386: Deprecate -drive if=scsi with PC machine types
hw: Deprecate -drive if=scsi with non-onboard HBAs
hw/scsi: Concentrate -drive if=scsi auto-create in one place
hw: Drop superfluous special checks for orphaned -drive
blockdev: Make orphaned -drive fatal
blockdev: Improve message for orphaned -drive
hw/arm/highbank: Default -drive to if=ide instead of if=scsi
hw: Default -drive to if=none instead of scsi when scsi cannot work
hw: Default -drive to if=none instead of ide when ide cannot work
hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus
hw: Default -drive to if=ide explicitly where it works
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/a0775e28cd6c...a1cf5fac2b92
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 205983: hw: Default -drive to if=ide explicitly where it w...,
GitHub <=