qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH 0/9] Configurable PCI device addresses


From: Markus Armbruster
Subject: [Qemu-devel] [RFC PATCH 0/9] Configurable PCI device addresses
Date: Thu, 22 Jan 2009 20:23:08 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

This patch series makes PCI device addresses configurable for a number
of devices.  For now, I just covered the ones I consider important
and/or where the change is somewhat invasive.

Why is a configurable PCI device address useful?  Currently, QEMU
assigns a few device addresses statically, and the rest dynamically on
a first come, first serve basis[*].  If you add or remove a device,
all devices registering later change address.  I'm told a certain
operating system that can't be named in polite company can get rather
upset about that.

Making the device address configurable looks like the simplest
solution to this problem.  Only users who really mind changing
addresses have to deal with the new configuration parameter.

I started with Izik's proposal to "allow setting static slot values
for pci devices from the command line", see

    http://lists.gnu.org/archive/html/qemu-devel/2008-01/msg00601.html
    http://lists.gnu.org/archive/html/qemu-devel/2007-11/msg00620.html

but ended up doing it quite differently.

I'm just soliciting comments.  I do *not* ask for a commit of anything
right now.

The patch series consists of these parts:

[1/9] PCI device registration helpers
[2/9] Clean up handling of name=value,... part of -vga option argument
[3/9] Support pci=... in option argument of -vga
[4/9] Convert virtio_init_pci() to pci_register_device_2()
[5/9] Support pci=... in option argument of -net nic
[6/9] Make drives_opt[] accessible from device initialization
[7/9] Support pci=... in option argument of -drive if=virtio
[8/9] New option -audio as a more flexible alternative to -soundhw
[9/9] Support pci=... in option argument of -audio

Overall diffstat:

 hw/ac97.c           |   11 +---
 hw/audiodev.h       |    4 +-
 hw/cirrus_vga.c     |    6 +-
 hw/e1000.c          |    6 +-
 hw/eepro100.c       |   19 ++++----
 hw/es1370.c         |   11 +---
 hw/mips_malta.c     |   17 +++----
 hw/ne2000.c         |    7 +--
 hw/pc.c             |   23 ++++------
 hw/pc.h             |   11 +---
 hw/pci.c            |  109 ++++++++++++++++++++++++++++++++++++++++++++--
 hw/pci.h            |   25 ++++++----
 hw/pcnet.c          |    6 +-
 hw/ppc440_bamboo.c  |    5 +-
 hw/ppc_chrp.c       |    4 +-
 hw/ppc_oldworld.c   |    4 +-
 hw/ppc_prep.c       |    4 +-
 hw/r2d.c            |    8 ++--
 hw/realview.c       |    2 +-
 hw/rtl8139.c        |    7 +--
 hw/sun4u.c          |    4 +-
 hw/versatilepb.c    |    2 +-
 hw/vga.c            |   40 ++++++++--------
 hw/virtio-balloon.c |    2 +-
 hw/virtio-blk.c     |    4 +-
 hw/virtio-blk.h     |    2 +-
 hw/virtio-console.c |    2 +-
 hw/virtio-net.c     |    5 +-
 hw/virtio-net.h     |    2 +-
 hw/virtio.c         |    5 +-
 hw/virtio.h         |    2 +-
 hw/vmware_vga.c     |    7 ++-
 net.c               |    1 +
 net.h               |    1 +
 sysemu.h            |   13 +++++-
 vl.c                |  120 ++++++++++++++++++++++++++++++++-------------------
 36 files changed, 315 insertions(+), 186 deletions(-)


[*] To be precise: it assigns the dev.func part dynamically.  The
domain:bus: part is still statically assigned.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]