Drives defined with if!=none, character devices defined with -serial and -parallel, network devices defined with -net nic are all for board initialization to wire up. Board code calls drive_get() or similar to find them, and creates devices with their qdev properties set accordingly.
Except a few devices go on fishing expeditions on their own instead of exposing a drive property for board code to set. We can't fix this in time for the release, so do the next best thing: contain the mistakes as far as possible so they don't become ABI: * Mark them all with suitable FIXME comments [PATCH 1-3]. * sdhci-pci is new, set cannot_instantiate_with_device_add_yet to make it unavailable with -device [PATCH 4]. * A few more aren't currently available with -device, set cannot_instantiate_with_device_add_yet to ensure they stay unavailable [PATCH 5]. * Left alone: m25p80-generic and its derivatives[*], ssi-sd, pc87312. I suspect these can't be used sanely with -device / device_add, and cannot_instantiate_with_device_add_yet for them would be just fine, but I feel we're too close to the release to argue this now. The following changes since commit b8a86c4ac4d04c106ba38fbd707041cba334a155: Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2015-04-01 11:31:31 +0100) are available in the git repository at: git://repo.or.cz/qemu/armbru.git tags/pull-hw-2015-04-02 for you to fetch changes up to 9f9bdf43cac28251f8cb33b77fed5e19225375c4: sysbus: Make devices picking up backends unavailable with -device (2015-04-02 15:30:44 +0200) ---------------------------------------------------------------- hw: Contain drive, serial, parallel, net misuse ---------------------------------------------------------------- Markus Armbruster (5): hw: Mark devices picking up block backends actively FIXME hw: Mark devices picking up char backends actively FIXME hw: Mark device misusing nd_table[] FIXME sdhci: Make device "sdhci-pci" unavailable with -device sysbus: Make devices picking up backends unavailable with -device hw/arm/allwinner-a10.c | 2 ++ hw/arm/spitz.c | 3 +++ hw/block/m25p80.c | 1 + hw/char/cadence_uart.c | 3 +++ hw/char/digic-uart.c | 3 +++ hw/char/etraxfs_ser.c | 3 +++ hw/char/lm32_juart.c | 3 +++ hw/char/lm32_uart.c | 3 +++ hw/char/milkymist-uart.c | 3 +++ hw/char/pl011.c | 3 +++ hw/char/stm32f2xx_usart.c | 3 +++ hw/char/xilinx_uartlite.c | 3 +++ hw/isa/pc87312.c | 4 ++++ hw/sd/milkymist-memcard.c | 3 +++ hw/sd/pl181.c | 3 +++ hw/sd/sdhci.c | 5 +++++ hw/sd/ssi-sd.c | 1 + 17 files changed, 49 insertions(+) -- 1.9.3