Re: [PATCHv6 00/16] boot order specification

Gleb Natapov
2010-11-23T15:31:57Z

Anthony, Blue

No comments on this patch series for almost a week. Can it be applied?

On Wed, Nov 17, 2010 at 06:43:47PM +0200, Gleb Natapov wrote:
> I am using open firmware naming scheme to specify device path names.
> In this version: added SCSI bus support. Pass boot order list as file
> to firmware.
>
> 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,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
> /rom@genroms/linuxboot.bin
>
> 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 (16):
> 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 get_dev_path callback to scsi bus.
> Add bootindex parameter to net/block/fd device
> Change fw_cfg_add_file() to get full file path as a parameter.
> Add bootindex for option roms.
> 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/e1000.c | 4 ++
> hw/eepro100.c | 3 +
> hw/fdc.c | 12 ++++++
> hw/fw_cfg.c | 30 ++++++++------
> hw/fw_cfg.h | 4 +-
> 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 | 22 ++++++++++-
> hw/ide/via.c | 4 +-
> hw/isa-bus.c | 42 +++++++++++++++++++
> hw/isa.h | 4 ++
> hw/lance.c | 1 +
> hw/loader.c | 32 ++++++++++++---
> hw/loader.h | 8 ++--
> hw/m48t59.c | 1 +
> hw/mc146818rtc.c | 1 +
> hw/multiboot.c | 3 +-
> hw/ne2000-isa.c | 3 +
> hw/ne2000.c | 5 ++-
> hw/nseries.c | 4 +-
> hw/palm.c | 6 +-
> hw/parallel.c | 5 ++
> hw/pc.c | 7 ++-
> hw/pci.c | 110 ++++++++++++++++++++++++++++++++++++++++-----------
> 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 | 4 ++
> hw/sb16.c | 4 ++
> hw/scsi-bus.c | 23 +++++++++++
> hw/scsi-disk.c | 2 +
> hw/serial.c | 1 +
> hw/sysbus.c | 30 ++++++++++++++
> hw/sysbus.h | 4 ++
> hw/usb-bus.c | 45 ++++++++++++++++++++-
> hw/usb-hub.c | 3 +-
> hw/usb-musb.c | 2 +-
> hw/usb-net.c | 3 +
> hw/usb-ohci.c | 2 +-
> hw/usb-uhci.c | 2 +-
> hw/usb.h | 3 +-
> hw/virtio-blk.c | 2 +
> hw/virtio-net.c | 2 +
> hw/virtio-pci.c | 1 +
> net.h | 4 +-
> qemu-config.c | 17 ++++++++
> sysemu.h | 11 +++++-
> vl.c | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
> 56 files changed, 588 insertions(+), 80 deletions(-)
>
> --
> 1.7.2.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Gleb.