qemu-devel
[Top][All Lists]
Advanced

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

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


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v4 00/39] Memory API, batch 2: PCI devices
Date: Mon, 08 Aug 2011 11:30:21 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Lightning/1.0b2 Thunderbird/3.1.10

On 08/08/2011 08:08 AM, Avi Kivity wrote:
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.

Applied all.  Thanks for taking this on, the results are very nice!

Regards,

Anthony Liguori


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(-)





reply via email to

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