qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 62e9cd: macio: Convert to realize()


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 62e9cd: macio: Convert to realize()
Date: Thu, 04 Jun 2015 10:30:07 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 62e9cd771cc368a8fd0f152832b78c43557897a9
      
https://github.com/qemu/qemu/commit/62e9cd771cc368a8fd0f152832b78c43557897a9
  Author: Markus Armbruster <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/misc/macio/macio.c

  Log Message:
  -----------
  macio: Convert to realize()

Convert device models "macio-oldworld" and "macio-newworld".

Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 28f490b24af83a007937daacb9ea8bf7537f9084
      
https://github.com/qemu/qemu/commit/28f490b24af83a007937daacb9ea8bf7537f9084
  Author: Thomas Huth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M dtc

  Log Message:
  -----------
  dtc: Update dtc / libfdt submodule to version 1.4.0

Since some recent patches require libfdt version 1.4.0,
let's update the dtc submodule to this version.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 31ce0adb79655003465070fa90d7d20a5b8c2ff5
      
https://github.com/qemu/qemu/commit/31ce0adb79655003465070fa90d7d20a5b8c2ff5
  Author: Thomas Huth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: Check for libfdt version 1.4.0

Some recent patches require a function from libfdt version 1.4.0,
so we should check for this version during the configure step
already. Unfortunately, there does not seem to be a proper #define
for the version number in the libfdt headers. So alternatively,
we check for the availability of the required function
fdt_get_property_by_offset() instead instead.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 421b1b27f6e9135ac8f01db219e0d8c0cefd7e71
      
https://github.com/qemu/qemu/commit/421b1b27f6e9135ac8f01db219e0d8c0cefd7e71
  Author: David Gibson <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: Fix unsafe signed/unsigned comparisons

spapr_pci.c contains a number of expressions of the form (uval == -1) or
(uval != -1), where 'uval' is an unsigned value.

This mostly works in practice, because as long as the width of uval is
greater or equal than that of (int), the -1 will be promoted to the
unsigned type, which is the expected outcome.

However, at least for the cases where uval is uint32_t, this would break
on platforms where sizeof(int) > 4 (and a few such do exist), because then
the uint32_t value would be promoted to the larger int type, and never be
equal to -1.

This patch fixes these errors.  The fixes for the (uint32_t) cases are
necessary as described above.  I've made similar fixes to (uint64_t) and
(hwaddr) cases.  Those are strictly theoretical, since I don't know of any
platforms where sizeof(int) > 8, but hey, it's not that hard so we might
as well be strictly C standard compliant.

Reported-by: Markus Armbruster <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 12fd28535891572be7aaf862a03019257dafa425
      
https://github.com/qemu/qemu/commit/12fd28535891572be7aaf862a03019257dafa425
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_iommu.c

  Log Message:
  -----------
  spapr_iommu: Disable in-kernel IOMMU tables for >4GB windows

The existing KVM_CREATE_SPAPR_TCE ioctl only support 4G windows max as
the window size parameter to the kernel ioctl() is 32-bit so
there's no way of expressing a TCE window > 4GB.

We are going to add huge DMA windows support so this will create small
window and unexpectedly fail later.

This disables KVM_CREATE_SPAPR_TCE for windows bigger that 4GB.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: f1215ea702e6e6cb3876221cf1f7f60133e08c30
      
https://github.com/qemu/qemu/commit/f1215ea702e6e6cb3876221cf1f7f60133e08c30
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_iommu.c

  Log Message:
  -----------
  spapr_iommu: Make H_PUT_TCE_INDIRECT endian-safe

PAPR is defined as big endian so TCEs need an adjustment so
does this patch.

This changes code to have ldq_be_phys() in one place.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: c8545818b331e9a32e5dd47f0aefbcf2b93e41da
      
https://github.com/qemu/qemu/commit/c8545818b331e9a32e5dd47f0aefbcf2b93e41da
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_pci: Introduce a liobn number generating macros

We are going to have multiple DMA windows per PHB and we want them to
migrate so we need a predictable way of assigning LIOBNs.

This introduces a macro which makes up a LIOBN from fixed prefix,
PHB index (unique PHB id) and window number.

This introduces a SPAPR_PCI_DMA_WINDOW_NUM() to know the window number
from LIOBN. It is used to distinguish the default 32bit windows from
dynamic windows and avoid picking default DMA window properties from
a wrong TCE table.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 4290ca49eed5e239695ce85c925a770e4a7317a6
      
https://github.com/qemu/qemu/commit/4290ca49eed5e239695ce85c925a770e4a7317a6
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_vio.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_vio: Introduce a liobn number generating macros

This introduces a macro which makes up a LIOBN from fixed prefix and
VIO device address (@reg property).

This is to keep LIOBN macros rendering consistent - the same macro for
PCI has been added by the previous patch.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 3e1a01cb554412e8a9c25573126356596dc0c50f
      
https://github.com/qemu/qemu/commit/3e1a01cb554412e8a9c25573126356596dc0c50f
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c
    M include/hw/pci-host/spapr.h

  Log Message:
  -----------
  spapr_pci: Define default DMA window size as a macro

This gets rid of a magic constant describing the default DMA window size
for an emulated PHB.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: d9d96a3cc7267880fbccb6bc4018fc31909fc930
      
https://github.com/qemu/qemu/commit/d9d96a3cc7267880fbccb6bc4018fc31909fc930
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_iommu.c
    M include/hw/ppc/spapr.h
    M trace-events

  Log Message:
  -----------
  spapr_iommu: Add separate trace points for PCI DMA operations

This is to reduce VIO noise while debugging PCI DMA.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 46c5874e9cd752ed8ded31af03472edd8fc3efc1
      
https://github.com/qemu/qemu/commit/46c5874e9cd752ed8ded31af03472edd8fc3efc1
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c
    M include/hw/pci-host/spapr.h

  Log Message:
  -----------
  spapr_pci: Make find_phb()/find_dev() public

This makes find_phb()/find_dev() public and changed its names
to spapr_pci_find_phb()/spapr_pci_find_dev() as they are going to
be used from other parts of QEMU such as VFIO DDW (dynamic DMA window)
or VFIO PCI error injection or VFIO EEH handling - in all these
cases there are RTAS calls which are addressed to BUID+config_addr
in IEEE1275 format.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: fae807a2b182a613798fe619f9069bd0bbe3dc6a
      
https://github.com/qemu/qemu/commit/fae807a2b182a613798fe619f9069bd0bbe3dc6a
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_iommu.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_iommu: Make spapr_tce_find_by_liobn() public

At the moment spapr_tce_find_by_liobn() is used by H_PUT_TCE/...
handlers to find an IOMMU by LIOBN.

We are going to implement Dynamic DMA windows (DDW), new code
will go to a new file and we will use spapr_tce_find_by_liobn()
there too so let's make it public.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: ccf9ff8527a87ee485fbb6a0a73d28641cab5f60
      
https://github.com/qemu/qemu/commit/ccf9ff8527a87ee485fbb6a0a73d28641cab5f60
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: Rework device-tree rendering

This replaces object_child_foreach() and callback with existing
SPAPR_PCI_LIOBN() and spapr_tce_find_by_liobn() to make the code easier
to read.

This is a mechanical patch so no behaviour change is expected.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: dea1b3ce756d7242d4212c22b7d6e6a896495154
      
https://github.com/qemu/qemu/commit/dea1b3ce756d7242d4212c22b7d6e6a896495154
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_iommu.c

  Log Message:
  -----------
  spapr_iommu: Give unique QOM name to TCE table

Useful for debugging.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: f9ce8e0aa3fb55ae7a8ea34d3169e73e87feb337
      
https://github.com/qemu/qemu/commit/f9ce8e0aa3fb55ae7a8ea34d3169e73e87feb337
  Author: Thomas Huth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_iommu.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  hw/ppc/spapr_iommu: Fix the check for invalid upper bits in liobn

The check "liobn & 0xFFFFFFFF00000000ULL" in spapr_tce_find_by_liobn()
is completely useless since liobn is only declared as an uint32_t
parameter. Fix this by using target_ulong instead (this is what most
of the callers of this function are using, too).

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: a1a45612433edb0eb65c468f7ed579cd92358818
      
https://github.com/qemu/qemu/commit/a1a45612433edb0eb65c468f7ed579cd92358818
  Author: David Gibson <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  pseries: Add pseries-2.4 machine type

Now that 2.4 development has opened, create a new pseries machine type
variant.  For now it is identical to the pseries-2.3 machine type, but
a number of new features are coming that will need to set backwards
compatibility options.

Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 68fea5a0d7bac17fd74f0608ceed1d914eb0718e
      
https://github.com/qemu/qemu/commit/68fea5a0d7bac17fd74f0608ceed1d914eb0718e
  Author: Thomas Huth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  hw/ppc/spapr: Fix error message when firmware could not be loaded

When specifying a non-existing file with the "-bios" parameter, QEMU
complained that it "could not find LPAR rtas". That's obviously a
copy-n-paste bug from the code which loads the spapr-rtas.bin, it
should complain about a missing firmware file instead.
Additionally the error message was printed with hw_error() - which
also dumps the whole CPU state. However, this does not make much
sense here since the CPU is not running yet and thus the registers
only contain zeroes. So let's use error_report() here instead.
And while we're at it, let's also bail out if the firmware file
had zero length.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 730fce593bbaa9240a0be860616ac4366113194d
      
https://github.com/qemu/qemu/commit/730fce593bbaa9240a0be860616ac4366113194d
  Author: Thomas Huth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  hw/ppc/spapr: Use error_report() instead of hw_error()

hw_error() is designed for printing CPU-related error messages
(e.g. it also prints a full CPU register dump). For error messages
that are not directly related to CPU problems, a function like
error_report() should be used instead.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 11eec063f29733395846ba756ecd544876ef6839
      
https://github.com/qemu/qemu/commit/11eec063f29733395846ba756ecd544876ef6839
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    A docs/specs/ppc-spapr-hotplug.txt

  Log Message:
  -----------
  docs: add sPAPR hotplug/dynamic-reconfiguration documentation

This adds a general overview of hotplug/dynamic-reconfiguration
for sPAPR/pSeries guest.

As specified in PAPR+ v2.7.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: bbf5c878ab76a74f6277f99082c77bbdb1ad4c5b
      
https://github.com/qemu/qemu/commit/bbf5c878ab76a74f6277f99082c77bbdb1ad4c5b
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/Makefile.objs
    A hw/ppc/spapr_drc.c
    A include/hw/ppc/spapr_drc.h

  Log Message:
  -----------
  spapr_drc: initial implementation of sPAPRDRConnector device

This device emulates a firmware abstraction used by pSeries guests to
manage hotplug/dynamic-reconfiguration of host-bridges, PCI devices,
memory, and CPUs. It is conceptually similar to an SHPC device,
complete with LED indicators to identify individual slots to physical
physical users and indicate when it is safe to remove a device. In
some cases it is also used to manage virtualized resources, such a
memory, CPUs, and physical-host bridges, which in the case of pSeries
guests are virtualized resources where the physical components are
managed by the host.

Guests communicate with these DR Connectors using RTAS calls,
generally by addressing the unique DRC index associated with a
particular connector for a particular resource. For introspection
purposes we expose this state initially as QOM properties, and
in subsequent patches will introduce the RTAS calls that make use of
it. This constitutes to the 'guest' interface.

On the QEMU side we provide an attach/detach interface to associate
or cleanup a DeviceState with a particular sPAPRDRConnector in
response to hotplug/unplug, respectively. This constitutes the
'physical' interface to the DR Connector.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 094d20585ecdcd31959b1b88a390b4d2c4cfeab7
      
https://github.com/qemu/qemu/commit/094d20585ecdcd31959b1b88a390b4d2c4cfeab7
  Author: Nathan Fontenot <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_rtas.c

  Log Message:
  -----------
  spapr_rtas: add get/set-power-level RTAS interfaces

These interfaces manage the power domains that guest devices are
assigned to and are used to power on/off devices. Currently we
only utilize 1 power domain, the 'live-insertion' domain, which
automates power management of plugged/unplugged devices, essentially
making these calls no-ops, but the RTAS interfaces are still required
by guest hotplug code and PAPR+.

See docs/specs/ppc-spapr-hotplug.txt for a complete description of
these interfaces.

Signed-off-by: Nathan Fontenot <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 8c8639df32f19d5ca9bf6a823ac83e298a188fd1
      
https://github.com/qemu/qemu/commit/8c8639df32f19d5ca9bf6a823ac83e298a188fd1
  Author: Mike Day <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_rtas.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_rtas: add set-indicator RTAS interface

This interface allows a guest to control various platform/device
sensors. Initially, we only implement support necessary to control
sensors that are required for hotplug: DR connector indicators/LEDs,
resource allocation state, and resource isolation state.

See docs/specs/ppc-spapr-hotplug.txt for a complete description of
this interface.

Signed-off-by: Mike Day <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 886445a6ee808ee06533f9ecdf0f169c9ea83fbb
      
https://github.com/qemu/qemu/commit/886445a6ee808ee06533f9ecdf0f169c9ea83fbb
  Author: Mike Day <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_rtas.c

  Log Message:
  -----------
  spapr_rtas: add get-sensor-state RTAS interface

This interface allows a guest to read various platform/device sensors.
initially, we only implement support necessary to support hotplug:
reading of the dr-entity-sense sensor, which communicates the state of
a hotplugged resource/device to the guest (EMPTY/PRESENT/UNUSABLE).

See docs/specs/ppc-spapr-hotplug.txt for a complete description of
this interface.

Signed-off-by: Mike Day <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: ab316865db8ee97c53cd70c91b1b160c474102f8
      
https://github.com/qemu/qemu/commit/ab316865db8ee97c53cd70c91b1b160c474102f8
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: add rtas_st_buffer_direct() helper

This is similar to the existing rtas_st_buffer(), but for cases
where the guest is not expecting a length-encoded byte array.
Namely, for calls where a "work area" buffer is used to pass
around arbitrary fields/data.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 46503c2bc047bfe8c26440e17298fcbc59d7bbbe
      
https://github.com/qemu/qemu/commit/46503c2bc047bfe8c26440e17298fcbc59d7bbbe
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_rtas.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_rtas: add ibm, configure-connector RTAS interface

This interface is used to fetch an OF device-tree nodes that describes a
newly-attached device to guest. It is called multiple times to walk the
device-tree node and fetch individual properties into a 'workarea'/buffer
provided by the guest.

The device-tree is generated by QEMU and passed to an sPAPRDRConnector during
the initial hotplug operation, and the state of these RTAS calls is tracked by
the sPAPRDRConnector. When the last of these properties is successfully
fetched, we report as special return value to the guest and transition
the device to a 'configured' state on the QEMU/DRC side.

See docs/specs/ppc-spapr-hotplug.txt for a complete description of
this interface.

Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 31fe14d15d08d613ff38abb249911e98c7966b86
      
https://github.com/qemu/qemu/commit/31fe14d15d08d613ff38abb249911e98c7966b86
  Author: Nathan Fontenot <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_events.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_events: re-use EPOW event infrastructure for hotplug events

This extends the data structures currently used to report EPOW events to
guests via the check-exception RTAS interfaces to also include event types
for hotplug/unplug events.

This is currently undocumented and being finalized for inclusion in PAPR
specification, but we implement this here as an extension for guest
userspace tools to implement (existing guest kernels simply log these
events via a sysfs interface that's read by rtas_errd, and current
versions of rtas_errd/powerpc-utils already support the use of this
mechanism for initiating hotplug operations).

We also add support for queues of pending RTAS events, since in the
case of hotplug there's chance for multiple events being in-flight
at any point in time.

Signed-off-by: Nathan Fontenot <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 79853e18d904b0a4bcef62701d48559688007c93
      
https://github.com/qemu/qemu/commit/79853e18d904b0a4bcef62701d48559688007c93
  Author: Tyrel Datwyler <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_events.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr_events: event-scan RTAS interface

We don't actually rely on this interface to surface hotplug events, and
instead rely on the similar-but-interrupt-driven check-exception RTAS
interface used for EPOW events. However, the existence of this interface
is needed to ensure guest kernels initialize the event-reporting
interfaces which will in turn be used by userspace tools to handle these
events, so we implement this interface here.

Since events surfaced by this call are mutually exclusive to those
surfaced via check-exception, we also update the RTAS event queue code
to accept a boolean to mark/filter for events accordingly.

Events of this sort are not currently generated by QEMU, but the interface
has been tested by surfacing hotplug events via event-scan in place
of check-exception.

Signed-off-by: Tyrel Datwyler <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: e4b798bb53447ba4608fc7e6ed91927bdb1c3d5d
      
https://github.com/qemu/qemu/commit/e4b798bb53447ba4608fc7e6ed91927bdb1c3d5d
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_drc.c
    M include/hw/ppc/spapr_drc.h

  Log Message:
  -----------
  spapr_drc: add spapr_drc_populate_dt()

This function handles generation of ibm,drc-* array device tree
properties to describe DRC topology to guests. This will by used
by the guest to direct RTAS calls to manage any dynamic resources
we associate with a particular DR Connector as part of
hotplug/unplug.

Since general management of boot-time device trees are handled
outside of sPAPRDRConnector, we insert these values blindly given
an FDT and offset. A mask of sPAPRDRConnector types is given to
instruct us on what types of connectors entries should be generated
for, since descriptions for different connectors may live in
different parts of the device tree.

Based on code originally written by Nathan Fontenot.

Signed-off-by: Nathan Fontenot <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 7619c7b00c90a39243f1229facde8c53a8fba921
      
https://github.com/qemu/qemu/commit/7619c7b00c90a39243f1229facde8c53a8fba921
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_pci.c
    M include/hw/pci-host/spapr.h

  Log Message:
  -----------
  spapr_pci: add dynamic-reconfiguration option for spapr-pci-host-bridge

This option enables/disables PCI hotplug for a particular PHB.

Also add machine compatibility code to disable it by default for machine
types prior to pseries-2.4.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
[agraf: move commas for compat fields]
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 62083979b0471ac07da6d94944bf12a9b18baa1f
      
https://github.com/qemu/qemu/commit/62083979b0471ac07da6d94944bf12a9b18baa1f
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: create DRConnectors for each PCI slot during PHB realize

These will be used to support hotplug/unplug of PCI devices to the PCI
bus associated with a particular PHB.

We also set up device-tree properties in each PHBs initial FDT to
describe the DRCs associated with them. This advertises to guests that
each PHB is DR-capable device with physical hotpluggable slots, each
managed by the corresponding DRC. This is necessary for allowing
hotplugging of devices to it later via bus rescan or guest rpaphp
hotplug module.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: cf8c704d5a06e7b8327c65d19d0c342dc23fff84
      
https://github.com/qemu/qemu/commit/cf8c704d5a06e7b8327c65d19d0c342dc23fff84
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/pci/pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: make pci_bar useable outside pci.c

We need to work with PCI BARs to generate OF properties
during PCI hotplug for sPAPR guests.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 7454c7af91bdd60216e2b6eead827c012bb4d0d0
      
https://github.com/qemu/qemu/commit/7454c7af91bdd60216e2b6eead827c012bb4d0d0
  Author: Michael Roth <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: enable basic hotplug operations

This enables hotplug of PCI devices to a PHB. Upon hotplug we
generate the OF-nodes required by PAPR specification and
IEEE 1275-1994 "PCI Bus Binding to Open Firmware" for the
device.

We associate the corresponding FDT for these nodes with the DRC
corresponding to the slot, which will be fetched via
ibm,configure-connector RTAS calls by the guest as described by PAPR
specification.

Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: c5bc152bc399ae7ec8ac5227762e4320d0fd2d1c
      
https://github.com/qemu/qemu/commit/c5bc152bc399ae7ec8ac5227762e4320d0fd2d1c
  Author: Tyrel Datwyler <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: emit hotplug add/remove events during hotplug

This uses extension of existing EPOW interrupt/event mechanism
to notify userspace tools like librtas/drmgr to handle
in-guest configuration/cleanup operations in response to
device_add/device_del.

Userspace tools that don't implement this extension will need
to be run manually in response/advance of device_add/device_del,
respectively.

Signed-off-by: Tyrel Datwyler <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 076b35b5a56bca57c4aa41044ed304fe9c45d6c5
      
https://github.com/qemu/qemu/commit/076b35b5a56bca57c4aa41044ed304fe9c45d6c5
  Author: Nikunj A Dadhania <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/core/machine.c
    M include/hw/boards.h
    M include/qemu-common.h
    M vl.c

  Log Message:
  -----------
  machine: add default_ram_size to machine class

Machines types can have different requirement for default ram
size. Introduce a member in the machine class and set the current
default_ram_size to 128MB.

For QEMUMachine types override the value during the registration of
the machine and for MachineClass introduce the generic class init
setting the default_ram_size.

Add helpers [K,M,G,T,P,E]_BYTE for better readability and easy usage

Signed-off-by: Nikunj A Dadhania <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: a34944fe2e2457309bde74c1ffe3a1c60c6da018
      
https://github.com/qemu/qemu/commit/a34944fe2e2457309bde74c1ffe3a1c60c6da018
  Author: Nikunj A Dadhania <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: override default ram size to 512MB

Signed-off-by: Nikunj A Dadhania <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 026bfd89cb896c8a3460cc551cc4836219bd7ff9
      
https://github.com/qemu/qemu/commit/026bfd89cb896c8a3460cc551cc4836219bd7ff9
  Author: David Gibson <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M hw/ppc/spapr.c
    M target-ppc/kvm.c
    M target-ppc/kvm_ppc.h

  Log Message:
  -----------
  pseries: Enable in-kernel H_LOGICAL_CI_{LOAD, STORE} implementations

qemu currently implements the hypercalls H_LOGICAL_CI_LOAD and
H_LOGICAL_CI_STORE as PAPR extensions.  These are used by the SLOF firmware
for IO, because performing cache inhibited MMIO accesses with the MMU off
(real mode) is very awkward on POWER.

This approach breaks when SLOF needs to access IO devices implemented
within KVM instead of in qemu.  The simplest example would be virtio-blk
using an iothread, because the iothread / dataplane mechanism relies on
an in-kernel implementation of the virtio queue notification MMIO.

To fix this, an in-kernel implementation of these hypercalls has been made,
(kernel commit 99342cf "kvmppc: Implement H_LOGICAL_CI_{LOAD,STORE} in KVM"
however, the hypercalls still need to be enabled from qemu.  This performs
the necessary calls to do so.

It would be nice to provide some warning if we encounter a problematic
device with a kernel which doesn't support the new calls.  Unfortunately,
I can't see a way to detect this case which won't either warn in far too
many cases that will probably work, or which is horribly invasive.

Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 085eb217dfb3ee12e7985c11f71f8a038394735a
      
https://github.com/qemu/qemu/commit/085eb217dfb3ee12e7985c11f71f8a038394735a
  Author: David Gibson <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  Add David Gibson for sPAPR in MAINTAINERS file

At Alex Graf's request I'm now acting as sub-maintainer for the sPAPR
(-machine pseries) code.  This updates MAINTAINERS accordingly.

While we're at it, change the label to mention pseries since that's the
actual name of the machine type, even if most of the C files use the sPAPR
name.

Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 5a58e884d1d9905a835de2889c8cd73327fe2a94
      
https://github.com/qemu/qemu/commit/5a58e884d1d9905a835de2889c8cd73327fe2a94
  Author: Paolo Bonzini <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M tcg/tcg.h
    M tcg/tci/tcg-target.h

  Log Message:
  -----------
  tci: do not use CPUArchState in tcg-target.h

tcg-target.h does not use any QEMU-specific symbols, save for tci's usage
of CPUArchState.  Pull that up to tcg/tcg.h.

This will make it possible to include tcg-target.h in cpu-defs.h.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 006f8638c62bca2b0caf609485f47fa5e14d8a3c
      
https://github.com/qemu/qemu/commit/006f8638c62bca2b0caf609485f47fa5e14d8a3c
  Author: Paolo Bonzini <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M tcg/aarch64/tcg-target.h
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.h
    M tcg/ia64/tcg-target.h
    M tcg/mips/tcg-target.h
    M tcg/ppc/tcg-target.h
    M tcg/s390/tcg-target.h
    M tcg/sparc/tcg-target.h
    M tcg/tci/tcg-target.h

  Log Message:
  -----------
  tcg: add TCG_TARGET_TLB_DISPLACEMENT_BITS

This will be used to size the TLB when more than 8 MMU modes are
used by the target.  Limitations come from the limited size of
the immediate fields (which sometimes, as in the case of Aarch64,
extend to instructions that shift the immediate).

Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 1de29aef17a7d70dbc04a7fe51e18942e3ebe313
      
https://github.com/qemu/qemu/commit/1de29aef17a7d70dbc04a7fe51e18942e3ebe313
  Author: Paolo Bonzini <address@hidden>
  Date:   2015-06-03 (Wed, 03 Jun 2015)

  Changed paths:
    M include/exec/cpu-defs.h
    M include/exec/cpu_ldst.h

  Log Message:
  -----------
  softmmu: support up to 12 MMU modes

At 8k per TLB (for 64-bit host or target), 8 or more modes
make the TLBs bigger than 64k, and some RISC TCG backends do
not like that.  On the affected hosts, cut the TLB size in
half---there is still a measurable speedup on PPC with the
next patch.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 3b730f570c5872ceea2137848f1d4554d4847441
      
https://github.com/qemu/qemu/commit/3b730f570c5872ceea2137848f1d4554d4847441
  Author: Peter Maydell <address@hidden>
  Date:   2015-06-04 (Thu, 04 Jun 2015)

  Changed paths:
    M MAINTAINERS
    M configure
    A docs/specs/ppc-spapr-hotplug.txt
    M dtc
    M hw/core/machine.c
    M hw/misc/macio/macio.c
    M hw/pci/pci.c
    M hw/ppc/Makefile.objs
    M hw/ppc/spapr.c
    A hw/ppc/spapr_drc.c
    M hw/ppc/spapr_events.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_rtas.c
    M hw/ppc/spapr_vio.c
    M include/exec/cpu-defs.h
    M include/exec/cpu_ldst.h
    M include/hw/boards.h
    M include/hw/pci-host/spapr.h
    M include/hw/pci/pci.h
    M include/hw/ppc/spapr.h
    A include/hw/ppc/spapr_drc.h
    M include/qemu-common.h
    M target-ppc/kvm.c
    M target-ppc/kvm_ppc.h
    M tcg/aarch64/tcg-target.h
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.h
    M tcg/ia64/tcg-target.h
    M tcg/mips/tcg-target.h
    M tcg/ppc/tcg-target.h
    M tcg/s390/tcg-target.h
    M tcg/sparc/tcg-target.h
    M tcg/tcg.h
    M tcg/tci/tcg-target.h
    M trace-events
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/agraf/tags/signed-ppc-for-upstream' 
into staging

Patch queue for ppc - 2015-06-03

Highlights this time around:

  - sPAPR: endian fixes, speedups, bug fixes, hotplug basics
  - add default ram size capability for machines (sPAPR defaults to 512MB now)

# gpg: Signature made Wed Jun  3 22:59:09 2015 BST using RSA key ID 03FEDC60
# gpg: Good signature from "Alexander Graf <address@hidden>"
# gpg:                 aka "Alexander Graf <address@hidden>"

* remotes/agraf/tags/signed-ppc-for-upstream: (40 commits)
  softmmu: support up to 12 MMU modes
  tcg: add TCG_TARGET_TLB_DISPLACEMENT_BITS
  tci: do not use CPUArchState in tcg-target.h
  Add David Gibson for sPAPR in MAINTAINERS file
  pseries: Enable in-kernel H_LOGICAL_CI_{LOAD, STORE} implementations
  spapr: override default ram size to 512MB
  machine: add default_ram_size to machine class
  spapr_pci: emit hotplug add/remove events during hotplug
  spapr_pci: enable basic hotplug operations
  pci: make pci_bar useable outside pci.c
  spapr_pci: create DRConnectors for each PCI slot during PHB realize
  spapr_pci: add dynamic-reconfiguration option for spapr-pci-host-bridge
  spapr_drc: add spapr_drc_populate_dt()
  spapr_events: event-scan RTAS interface
  spapr_events: re-use EPOW event infrastructure for hotplug events
  spapr_rtas: add ibm, configure-connector RTAS interface
  spapr: add rtas_st_buffer_direct() helper
  spapr_rtas: add get-sensor-state RTAS interface
  spapr_rtas: add set-indicator RTAS interface
  spapr_rtas: add get/set-power-level RTAS interfaces
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/2700a976dba6...3b730f570c58

reply via email to

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