qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>, qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH v4 00/39] Memory API, batch 2: PCI devices
Date: Mon,  8 Aug 2011 16:08:53 +0300	[thread overview]
Message-ID: <1312808972-1718-1-git-send-email-avi@redhat.com> (raw)

This is a mostly mindless conversion of all QEMU PCI devices to the memory API.
After this patchset is applied, it is no longer possible to create a PCI device
using the old API.

An immediate benefit is that PCI BARs that overlap each other are now handled
correctly: currently, the sequence

  map BAR 0
  map BAR 1 at an overlapping address
  unmap either BAR 0 or BAR 1

will leave a hole where the overlap exists.  With the patchset, the memory map
is restored correctly.

Note that overlaps of PCI BARs with memory or non-PCI resources are still not
resolved correctly; this will be fixed later on.

The vga patches have ugly intermediate states; however the result is fairly clean.

Changes from v3:
 - dropped virtio-pci config patch; will be fixed outside this patchset if
   necessary
 - minor style fixes

Changes from v2:
 - added patch from Michael simplifying virtio-pci config setup

Changes from v1:
 - cmd646 type fix
 - folded a fixlet into its parent

Avi Kivity (39):
  memory: rename PORTIO_END to PORTIO_END_OF_LIST
  pci: add API to get a BAR's mapped address
  vmsvga: don't remember pci BAR address in callback any more
  vga: convert vga and its derivatives to the memory API
  cirrus: simplify mmio BAR access functions
  cirrus: simplify bitblt BAR access functions
  cirrus: simplify vga window mmio access functions
  vga: simplify vga window mmio access functions
  cirrus: simplify linear framebuffer access functions
  Integrate I/O memory regions into qemu
  pci: pass I/O address space to new PCI bus
  pci: allow I/O BARs to be registered with pci_register_bar_region()
  rtl8139: convert to memory API
  ac97: convert to memory API
  e1000: convert to memory API
  eepro100: convert to memory API
  es1370: convert to memory API
  ide: convert to memory API
  ivshmem: convert to memory API
  virtio-pci: convert to memory API
  ahci: convert to memory API
  intel-hda: convert to memory API
  lsi53c895a: convert to memory API
  ppc: convert to memory API
  ne2000: convert to memory API
  pcnet: convert to memory API
  i6300esb: convert to memory API
  isa-mmio: convert to memory API
  sun4u: convert to memory API
  ehci: convert to memory API
  uhci: convert to memory API
  xen-platform: convert to memory API
  msix: convert to memory API
  pci: remove pci_register_bar_simple()
  pci: convert pci rom to memory API
  pci: remove pci_register_bar()
  pci: fold BAR mapping function into its caller
  pci: rename pci_register_bar_region() to pci_register_bar()
  pci: remove support for pre memory API BARs

 exec-memory.h      |    5 +
 exec.c             |   10 ++
 hw/ac97.c          |   88 ++++++-----
 hw/apb_pci.c       |    1 +
 hw/bonito.c        |    1 +
 hw/cirrus_vga.c    |  459 ++++++++++++++++-----------------------------------
 hw/cuda.c          |    6 +-
 hw/e1000.c         |  113 ++++++--------
 hw/eepro100.c      |  181 ++++-----------------
 hw/es1370.c        |   43 +++--
 hw/escc.c          |   42 +++---
 hw/escc.h          |    2 +-
 hw/grackle_pci.c   |    8 +-
 hw/gt64xxx.c       |    4 +-
 hw/heathrow_pic.c  |   29 ++--
 hw/ide.h           |    2 +-
 hw/ide/ahci.c      |   31 ++--
 hw/ide/ahci.h      |    2 +-
 hw/ide/cmd646.c    |  204 +++++++++++++++---------
 hw/ide/ich.c       |    3 +-
 hw/ide/macio.c     |   36 +++--
 hw/ide/pci.c       |   25 ++--
 hw/ide/pci.h       |   19 ++-
 hw/ide/piix.c      |   63 ++++++--
 hw/ide/via.c       |   64 ++++++--
 hw/intel-hda.c     |   35 +++--
 hw/isa.h           |    2 +
 hw/isa_mmio.c      |   29 ++--
 hw/ivshmem.c       |  158 +++++++------------
 hw/lance.c         |   31 ++--
 hw/lsi53c895a.c    |  257 +++++++-----------------------
 hw/mac_dbdma.c     |   32 ++--
 hw/mac_dbdma.h     |    4 +-
 hw/mac_nvram.c     |   39 ++---
 hw/macio.c         |   73 ++++-----
 hw/msix.c          |   64 +++-----
 hw/msix.h          |    6 +-
 hw/ne2000-isa.c    |   13 +--
 hw/ne2000.c        |   77 ++++++---
 hw/ne2000.h        |    8 +-
 hw/openpic.c       |   81 +++++-----
 hw/openpic.h       |    2 +-
 hw/pc.h            |    4 +-
 hw/pc_piix.c       |    6 +-
 hw/pci.c           |  133 +++++-----------
 hw/pci.h           |   26 ++--
 hw/pci_internals.h |    3 +-
 hw/pcnet-pci.c     |   74 +++++----
 hw/pcnet.h         |    4 +-
 hw/piix_pci.c      |   14 +-
 hw/ppc4xx_pci.c    |    1 +
 hw/ppc_mac.h       |   27 ++--
 hw/ppc_newworld.c  |   34 ++--
 hw/ppc_oldworld.c  |   27 ++--
 hw/ppc_prep.c      |    2 +-
 hw/ppce500_pci.c   |    7 +-
 hw/prep_pci.c      |    8 +-
 hw/prep_pci.h      |    4 +-
 hw/qxl-render.c    |    2 +-
 hw/qxl.c           |  129 ++++++----------
 hw/qxl.h           |    6 +-
 hw/rtl8139.c       |   70 ++++----
 hw/sh_pci.c        |    4 +-
 hw/sun4u.c         |   53 +++----
 hw/unin_pci.c      |   16 ++-
 hw/usb-ehci.c      |   36 +---
 hw/usb-ohci.c      |    2 +-
 hw/usb-uhci.c      |   41 +++--
 hw/versatile_pci.c |    2 +-
 hw/vga-isa-mm.c    |   46 ++++--
 hw/vga-isa.c       |   10 +-
 hw/vga-pci.c       |   27 +---
 hw/vga.c           |  178 +++++++-------------
 hw/vga_int.h       |   18 +--
 hw/virtio-pci.c    |   86 ++++------
 hw/virtio-pci.h    |    3 +-
 hw/vmware_vga.c    |  153 +++++++++---------
 hw/wdt_i6300esb.c  |   43 ++++--
 hw/xen_platform.c  |   82 ++++++----
 memory.h           |    2 +-
 80 files changed, 1650 insertions(+), 2085 deletions(-)

-- 
1.7.5.3

             reply	other threads:[~2011-08-08 13:09 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-08 13:08 Avi Kivity [this message]
2011-08-08 13:08 ` [Qemu-devel] [PATCH v4 01/39] memory: rename PORTIO_END to PORTIO_END_OF_LIST Avi Kivity
2011-08-08 15:12   ` Anthony Liguori
2011-08-08 13:08 ` [Qemu-devel] [PATCH v4 02/39] pci: add API to get a BAR's mapped address Avi Kivity
2011-08-08 13:08 ` [Qemu-devel] [PATCH v4 03/39] vmsvga: don't remember pci BAR address in callback any more Avi Kivity
2011-08-08 13:08 ` [Qemu-devel] [PATCH v4 04/39] vga: convert vga and its derivatives to the memory API Avi Kivity
2011-08-08 13:08 ` [Qemu-devel] [PATCH v4 05/39] cirrus: simplify mmio BAR access functions Avi Kivity
2011-08-08 13:08 ` [Qemu-devel] [PATCH v4 06/39] cirrus: simplify bitblt " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 07/39] cirrus: simplify vga window mmio " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 08/39] vga: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 09/39] cirrus: simplify linear framebuffer " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 10/39] Integrate I/O memory regions into qemu Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 11/39] pci: pass I/O address space to new PCI bus Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 12/39] pci: allow I/O BARs to be registered with pci_register_bar_region() Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 13/39] rtl8139: convert to memory API Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 14/39] ac97: " Avi Kivity
2011-08-09 10:09   ` malc
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 15/39] e1000: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 16/39] eepro100: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 17/39] es1370: " Avi Kivity
2011-08-09 10:10   ` malc
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 18/39] ide: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 19/39] ivshmem: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 20/39] virtio-pci: " Avi Kivity
2011-08-08 15:21   ` Anthony Liguori
2011-08-08 15:25     ` [Qemu-devel] [PATCH v4.1 " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 21/39] ahci: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 22/39] intel-hda: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 23/39] lsi53c895a: " Avi Kivity
2011-08-10 19:28   ` Gerhard Wiesinger
2011-08-11  6:11     ` Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 24/39] ppc: " Avi Kivity
2011-09-08 16:34   ` Alexander Graf
2011-09-08 16:47   ` Alexander Graf
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 25/39] ne2000: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 26/39] pcnet: " Avi Kivity
2011-08-09  6:55   ` Bob Breuer
2011-08-09  6:52     ` Avi Kivity
2011-08-09 12:42       ` Michael S. Tsirkin
2011-08-09 12:44         ` Avi Kivity
2011-08-09 12:48           ` Michael S. Tsirkin
2011-08-09 12:52             ` Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 27/39] i6300esb: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 28/39] isa-mmio: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 29/39] sun4u: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 30/39] ehci: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 31/39] uhci: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 32/39] xen-platform: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 33/39] msix: " Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 34/39] pci: remove pci_register_bar_simple() Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 35/39] pci: convert pci rom to memory API Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 36/39] pci: remove pci_register_bar() Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 37/39] pci: fold BAR mapping function into its caller Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 38/39] pci: rename pci_register_bar_region() to pci_register_bar() Avi Kivity
2011-08-08 13:09 ` [Qemu-devel] [PATCH v4 39/39] pci: remove support for pre memory API BARs Avi Kivity
2011-08-08 15:16 ` [Qemu-devel] [PATCH v4 00/39] Memory API, batch 2: PCI devices Michael S. Tsirkin
2011-08-08 16:30 ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1312808972-1718-1-git-send-email-avi@redhat.com \
    --to=avi@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).