This is current sate of the patch series for people to comment on. I am using open firmware naming scheme to specify device path names. Names look like this on pci machine: /pci@i0cf8/ide@1,1/drive@1/disk@0 /pci@i0cf8/isa@1/fdc@03f1/floppy@1 /pci@i0cf8/isa@1/fdc@03f1/floppy@0 /pci@i0cf8/ide@1,1/drive@1/disk@1 /pci@i0cf8/ide@1,1/drive@0/disk@0 /pci@i0cf8/scsi@3/disk@0 /pci@i0cf8/ethernet@4/ethernet-phy@0 /pci@i0cf8/ethernet@5/ethernet-phy@0 /pci@i0cf8/ide@1,1/drive@0/disk@1 /pci@i0cf8/isa@1/ide@01e8/drive@0/disk@0 /pci@i0cf8/usb@1,2/network@0/ethernet@0 /pci@i0cf8/usb@1,2/hub@1/network@0/ethernet@0 and on isa machine: /isa/ide@0170/drive@0/disk@0 /isa/fdc@03f1/floppy@1 /isa/fdc@03f1/floppy@0 /isa/ide@0170/drive@0/disk@1 Instead of using get_dev_path() callback I introduces another one get_fw_dev_path. Unfortunately the way get_dev_path() callback is used in migration code makes it hard to reuse it for other purposes. First of all it is not called recursively so caller expects it to provide unique name by itself. Device path though is inherently recursive. Each individual element may not be unique, but the whole path will be. On the other hand to call get_dev_path() recursively in migration code we should implement it for all possible buses first. Other problem is compatibility. If we change get_dev_path() output format now we will not be able to migrate from old qemu to new one without some additional compatibility layer. Gleb Natapov (14): Introduce fw_name field to DeviceInfo structure. Introduce new BusInfo callback get_fw_dev_path. Keep track of ISA ports ISA device is using in qdev. Add get_fw_dev_path callback to ISA bus in qdev. Store IDE bus id in IDEBus structure for easy access. Add get_fw_dev_path callback to IDE bus. Add get_dev_path callback for system bus. Add get_fw_dev_path callback for pci bus. Record which USBDevice USBPort belongs too. Add get_dev_path callback for usb bus. Add bootindex parameter to net/block/fd device Add bootindex parameter to pci assigned device. Add notifier that will be called when machine is fully created. Pass boot device list to firmware. block_int.h | 4 ++- hw/cs4231a.c | 1 + hw/device-assignment.c | 7 ++++ hw/device-assignment.h | 1 + hw/e1000.c | 7 ++++ hw/eepro100.c | 6 +++ hw/fdc.c | 17 +++++++++ hw/fw_cfg.h | 1 + hw/gus.c | 4 ++ hw/ide/cmd646.c | 4 +- hw/ide/internal.h | 3 +- hw/ide/isa.c | 5 ++- hw/ide/piix.c | 4 +- hw/ide/qdev.c | 24 ++++++++++++- hw/ide/via.c | 4 +- hw/isa-bus.c | 41 ++++++++++++++++++++++ hw/isa.h | 4 ++ hw/lance.c | 1 + hw/m48t59.c | 1 + hw/mc146818rtc.c | 1 + hw/ne2000-isa.c | 3 ++ hw/ne2000.c | 6 +++ hw/parallel.c | 5 +++ hw/pc.c | 19 ++++++++++ hw/pci.c | 54 ++++++++++++++++++++++++++++ hw/pci_host.c | 2 + hw/pckbd.c | 3 ++ hw/pcnet.c | 6 +++ hw/piix_pci.c | 1 + hw/qdev.c | 32 +++++++++++++++++ hw/qdev.h | 9 +++++ hw/rtl8139.c | 7 ++++ hw/sb16.c | 4 ++ hw/serial.c | 1 + hw/sysbus.c | 30 ++++++++++++++++ hw/sysbus.h | 4 ++ hw/usb-bus.c | 38 ++++++++++++++++++++- hw/usb-hub.c | 3 +- hw/usb-musb.c | 2 +- hw/usb-net.c | 5 +++ hw/usb-ohci.c | 2 +- hw/usb-uhci.c | 2 +- hw/usb.h | 3 +- hw/virtio-blk.c | 4 ++ hw/virtio-net.c | 4 ++ hw/virtio-pci.c | 1 + net.h | 4 ++- sysemu.h | 5 +++ vl.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 49 files changed, 472 insertions(+), 17 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html