This is an extremely rough/quick sketch of a -cdrom/-hda desugaring fix for Q35/AHCI.
Before I spent any time on it, I wanted feedback from Markus or anyone else who had concerns about how this problem would get fixed. This is, then, rough approach #2. Highlights: (1) Add a board property (instead of a HBA property, sigh) that defines how we should map (index, (bus,unit)). (2) Modify drive_new to accept the MachineClass instead of the default interface type. This does not affect how default drives get added, because any over-rides to the "default type" get handled in options, so while it appears we have removed the type of default drives, we have not. (3) Create helpers for AHCI to assist the Q35 board in populating the AHCI device with the IDE drives. (4) Create a helper to whine at us for oversights and help bug reporters give us more meaningful information. John Snow (3): blockdev: Add function to search for orphaned drives Add units-per-idebus property ahci: implement -cdrom and -hd[a-d] blockdev.c | 29 +++++++++++++++++++++++++++-- device-hotplug.c | 2 +- hw/i386/pc_q35.c | 6 +++++- hw/ide/ahci.c | 31 +++++++++++++++++++++++++++++++ hw/ide/ahci.h | 3 +++ include/hw/boards.h | 3 ++- include/sysemu/blockdev.h | 3 ++- vl.c | 24 ++++++++++++++++-------- 8 files changed, 87 insertions(+), 14 deletions(-) -- 1.9.3