[PATCH v4 00/39] Memory API, batch 2: PCI devices

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

 



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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux