qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v3 00/39] Memory API, batch 2: PCI devices


From: Avi Kivity
Subject: [Qemu-devel] [PATCH v3 00/39] Memory API, batch 2: PCI devices
Date: Thu, 4 Aug 2011 16:05:56 +0300

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.

This patchset should be merged after

  memory: synchronize dirty bitmap before unmapping a range
  memory: use signed arithmetic

though there's no hard dependency.

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 (38):
  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: concert 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

Michael S. Tsirkin (1):
  virtio-pci: get config on init

 exec-memory.h      |    2 +
 exec.c             |   10 ++
 hw/ac97.c          |   88 ++++++-----
 hw/apb_pci.c       |    1 +
 hw/bonito.c        |    1 +
 hw/cirrus_vga.c    |  458 ++++++++++++++++-----------------------------------
 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      |   30 ++--
 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    |   14 +--
 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    |   45 ++++--
 hw/vga-isa.c       |   11 +-
 hw/vga-pci.c       |   27 +---
 hw/vga.c           |  179 ++++++++-------------
 hw/vga_int.h       |   18 +--
 hw/virtio-pci.c    |   93 +++++------
 hw/virtio-pci.h    |    3 +-
 hw/vmware_vga.c    |  153 +++++++++---------
 hw/wdt_i6300esb.c  |   43 ++++--
 hw/xen_platform.c  |   83 ++++++----
 79 files changed, 1658 insertions(+), 2082 deletions(-)

-- 
1.7.5.3




reply via email to

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