qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [RFC v5 00/86] Memory API


From: Avi Kivity
Subject: [Qemu-devel] [RFC v5 00/86] Memory API
Date: Wed, 20 Jul 2011 19:49:10 +0300

New in this version:
  - more mindless conversions; I believe there are no longer any destructive
    operations in the tree (IO_MEM_UNASSIGNED)
  - fix memory map generation bug (patch 13)
  - proper 440FX PAM/SMRAM and PCI holes

Caveats:
- some devices (mostly boards) still grab a global memory region instead of
  inheriting it from their bus.  Seen in the code as #include "exec-memory.h"
- pc RAM initialization is a mess - needs to be refactored; this is because
  memory is set up before the memory controller.

Avi Kivity (86):
  xen: fix xen-mapcache build on non-Xen capable targets
  Hierarchical memory region API
  memory: implement dirty tracking
  memory: merge adjacent segments of a single memory region
  Internal interfaces for memory API
  memory: abstract address space operations
  memory: rename MemoryRegion::has_ram_addr to ::terminates
  memory: late initialization of ram_addr
  memory:  I/O address space support
  memory: add backward compatibility for old portio registration
  memory: add backward compatibility for old mmio registration
  memory: add ioeventfd support
  memory: separate building the final memory map into two steps
  exec.c: initialize memory map
  ioport: register ranges by byte aligned addresses always
  pc: grab system_memory
  pc: convert pc_memory_init() to memory API
  pc: move global memory map out of pc_init1() and into its callers
  pci: pass address space to pci bus when created
  pci: add MemoryRegion based BAR management API
  sysbus: add MemoryRegion based memory management API
  usb-ohci: convert to MemoryRegion
  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
  exec.c: fix initialization of system I/O memory region
  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
  Introduce QEMU_NEW()
  apb_pci: convert to memory API
  apic: convert to memory API
  arm_gic: convert to memory API
  arm_sysctl: convert to memory API
  arm_timer: convert to memory API
  armv7m: convert to memory API
  gt64xxx.c: convert to memory API
  tusb6010: move declarations to new file tusb6010.h
  omap_gpmc/nseries/tusb6010: convert to memory API
  onenand: convert to memory API
  pcie_host: convert to memory API
  ppc405_uc: convert to memory API
  ppc4xx_sdram: convert to memory API
  stellaris_enet: convert to memory API
  sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback
  sh_pci: convert to memory API
  arm11mpcore: use sysbus_init_mmio_cb2
  versatile_pci: convert to memory API
  ppce500_pci: convert to sysbus_init_mmio_cb2()
  sysbus: remove sysbus_init_mmio_cb()
  isa: add isa_address_space()
  pci: add pci_address_space()
  vga: drop get_system_memory() from vga devices and derivatives
  440fx: fix PAM, PCI holes

 Makefile.target     |    1 +
 exec-memory.h       |   28 ++
 exec.c              |   29 ++
 hw/ac97.c           |   88 +++--
 hw/apb_pci.c        |   86 ++---
 hw/apic.c           |   25 +-
 hw/arm11mpcore.c    |    7 +-
 hw/arm_gic.c        |   22 +-
 hw/arm_sysctl.c     |   27 +-
 hw/arm_timer.c      |   55 +--
 hw/armv7m.c         |   24 +-
 hw/armv7m_nvic.c    |    4 +-
 hw/bonito.c         |    5 +-
 hw/cirrus_vga.c     |  469 +++++++---------------
 hw/cuda.c           |    6 +-
 hw/devices.h        |    7 -
 hw/e1000.c          |  113 +++---
 hw/eepro100.c       |  181 ++-------
 hw/es1370.c         |   43 ++-
 hw/escc.c           |   42 +-
 hw/escc.h           |    2 +-
 hw/grackle_pci.c    |    9 +-
 hw/gt64xxx.c        |   42 +-
 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-bus.c        |    7 +
 hw/isa.h            |    3 +
 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/mips_jazz.c      |    4 +-
 hw/mpcore.c         |   37 +-
 hw/msix.c           |   64 +--
 hw/msix.h           |    6 +-
 hw/ne2000-isa.c     |   14 +-
 hw/ne2000.c         |   77 +++--
 hw/ne2000.h         |    8 +-
 hw/nseries.c        |    1 +
 hw/omap.h           |    3 +-
 hw/omap_gpmc.c      |   54 ++--
 hw/onenand.c        |   70 ++--
 hw/openpic.c        |   81 ++--
 hw/openpic.h        |    2 +-
 hw/pc.c             |   71 +++-
 hw/pc.h             |   27 +-
 hw/pc_piix.c        |   43 ++-
 hw/pci.c            |  113 +++---
 hw/pci.h            |   32 +-
 hw/pci_host.h       |    1 +
 hw/pci_internals.h  |    2 +
 hw/pcie_host.c      |   98 ++----
 hw/pcie_host.h      |   12 +-
 hw/pcnet-pci.c      |   74 ++--
 hw/pcnet.h          |    4 +-
 hw/piix_pci.c       |  123 +++++--
 hw/ppc405.h         |    9 +-
 hw/ppc405_boards.c  |   18 +-
 hw/ppc405_uc.c      |  129 +++----
 hw/ppc440.c         |    7 +-
 hw/ppc4xx.h         |    2 +
 hw/ppc4xx_devs.c    |   51 ++-
 hw/ppc4xx_pci.c     |    6 +-
 hw/ppc_mac.h        |   30 +-
 hw/ppc_newworld.c   |   35 +-
 hw/ppc_oldworld.c   |   28 +-
 hw/ppc_prep.c       |    3 +-
 hw/ppce500_pci.c    |   19 +-
 hw/prep_pci.c       |    9 +-
 hw/prep_pci.h       |    5 +-
 hw/qxl-render.c     |    2 +-
 hw/qxl.c            |  131 +++----
 hw/qxl.h            |    6 +-
 hw/realview_gic.c   |   38 +-
 hw/rtl8139.c        |   70 ++--
 hw/sh_pci.c         |   69 +++-
 hw/stellaris_enet.c |   29 +-
 hw/sun4u.c          |   53 +--
 hw/sysbus.c         |   36 ++-
 hw/sysbus.h         |    8 +-
 hw/tusb6010.c       |   32 +-
 hw/tusb6010.h       |   13 +
 hw/unin_pci.c       |   18 +-
 hw/usb-ehci.c       |   36 +--
 hw/usb-ohci.c       |   42 +--
 hw/usb-uhci.c       |   41 ++-
 hw/versatile_pci.c  |   96 +++---
 hw/vga-isa-mm.c     |   55 ++-
 hw/vga-isa.c        |   11 +-
 hw/vga-pci.c        |   31 +--
 hw/vga.c            |  180 +++------
 hw/vga_int.h        |   23 +-
 hw/virtio-pci.c     |   89 ++---
 hw/virtio-pci.h     |    3 +-
 hw/vmware_vga.c     |  160 ++++----
 hw/wdt_i6300esb.c   |   43 ++-
 hw/xen_platform.c   |   82 +++--
 ioport.c            |    4 +-
 memory.c            | 1112 +++++++++++++++++++++++++++++++++++++++++++++++++++
 memory.h            |  251 ++++++++++++
 qemu-common.h       |    3 +
 xen-mapcache.h      |   32 ++
 116 files changed, 3916 insertions(+), 2717 deletions(-)
 create mode 100644 exec-memory.h
 create mode 100644 hw/tusb6010.h
 create mode 100644 memory.c
 create mode 100644 memory.h

-- 
1.7.5.3




reply via email to

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