The Q35 board initialization does not currently bother to look for any drives added by the various syntactical sugar shorthands to be added to the AHCI HBA. These include -hda through -hdd, -cdrom, and -drive if=ide shorthands.
An obstacle to having implemented this sooner is debate over whether or not to add an additional interface type, and how to manage the different units-per-bus mappings of various HBA implementations. This patch series: (1) Does not add IF_AHCI, but reuses IF_IDE (2) Allows the if_max_devs table to be overridden (3) Adds this override to the Q35 board type. (4) Finally, adds implementation to Q35 initialization. History: V2: - Adjusted language in patch #1's commit message. (drive if=none will NOT trigger warnings) - Removed superfluous warning with bad phrasing in patch #1 - Removed if_get_max_devs from patch #2 and added to patch #4 - Added an assertion to patch #2 - Added more detail to patch #3's commit message - Specified that Patch #3 will affect old Q35 machine types - Changed fprintf to error_report in patch #4 - Replaced max_bus parameter in ide_drive_get with 'n', size of array - Updated calls to ide_drive_get in other boards - Adjusted language in patch #6's commit message. (Removed reference to patch #5.) V1: - Re-uses ide_drive_get instead of ahci_drive_get - Adds units-per-bus property to all Q35 machines - Changes orphan scanning to exclude IF_NONE and automatically added drives - Renames 'units-per-idebus' to 'units-per-default-bus' And allows override of any one IF type (block_default) RFC2: - Rewrote series to avoid the creation of IF_AHCI. John Snow (6): blockdev: Orphaned drive search blockdev: Allow overriding if_max_dev property pc/vl: Add units-per-default-bus property ide: Update ide_drive_get to be HBA agnostic qtest/bios-tables: Correct Q35 command line q35/ahci: Pick up -cdrom and -hda options blockdev.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++- hw/alpha/dp264.c | 2 +- hw/i386/pc.c | 1 + hw/i386/pc_piix.c | 2 +- hw/i386/pc_q35.c | 7 +++++- hw/ide/ahci.c | 15 +++++++++++++ hw/ide/ahci.h | 2 ++ hw/ide/core.c | 21 +++++++++++++----- hw/mips/mips_fulong2e.c | 2 +- hw/mips/mips_malta.c | 2 +- hw/mips/mips_r4k.c | 2 +- hw/ppc/mac_newworld.c | 2 +- hw/ppc/mac_oldworld.c | 2 +- hw/ppc/prep.c | 2 +- hw/sparc64/sun4u.c | 2 +- include/hw/boards.h | 2 ++ include/sysemu/blockdev.h | 5 +++++ tests/bios-tables-test.c | 10 ++++----- vl.c | 18 ++++++++++++++- 19 files changed, 131 insertions(+), 24 deletions(-) -- 1.9.3