All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/21] pnv: PSI, OCC, IPMI and PCI models
@ 2017-04-05 12:41 Cédric Le Goater
  2017-04-05 12:41 ` [Qemu-devel] [PATCH 01/21] ppc/pnv: Add cut down PSI bridge model and hookup external interrupt Cédric Le Goater
                   ` (20 more replies)
  0 siblings, 21 replies; 66+ messages in thread
From: Cédric Le Goater @ 2017-04-05 12:41 UTC (permalink / raw)
  To: David Gibson
  Cc: qemu-ppc, qemu-devel, Cédric Le Goater,
	Benjamin Herrenschmidt, Marcel Apfelbaum, Michael S. Tsirkin,
	Corey Minyard

Hello,

Now that we have support for the interrupt controller in the PowerNV
machine, we can start adding controllers depending on it. First of
these, is the Processor Service Interface (PSI), which handles the
external interrupt, and then a minimal model for the OCC. They have
been reviewed a couple of time and should be ready to be merged.
These first two patches give us a usable PCI-less PowerNV machine,
which is an important step to complete the overall model.

Some fixes improving support for the POWER8NVL (nvlink) and multichip
follow.

Next, we add IPMI support to the machine which is required to power
off and reboot a PowerNV system. To make use of it, a BT device and an
BMC simulator need to be defined on the command line:

    -device ipmi-bmc-sim,id=bmc0 -device isa-ipmi-bt,bmc=bmc0,irq=10

To improve the sensor and FRU support, one can use the following
options for the simulator:

    sdrfile=./palmetto-SDR.bin,fruareasize=256,frudatafile=./palmetto-FRU.bin

Most of the IPMI patches have been discussed already on the list and
some should go through Corey Minyard's tree or Michael S. Tsirkin's if
considered ready.

Last is a PCIe host bridge model (PHB3) as found on the Power8
machines. Power9 will use a PHB4 which is very close. Nevertheless, it
is a large model and it depends on a few helpers in the PCI core which
need to be discussed. (I would need some help here)


To test, grab a kernel and a rootfs image here :

  https://openpower.xyz/job/openpower-op-build/distro=ubuntu,target=palmetto/lastSuccessfulBuild/artifact/images/zImage.epapr
  https://openpower.xyz/job/openpower-op-build/distro=ubuntu,target=palmetto/lastSuccessfulBuild/artifact/images/rootfs.cpio.xz

The full patchset is available here :

   https://github.com/legoater/qemu/commits/powernv-ipmi-2.9

Thanks,

C.

Benjamin Herrenschmidt (7):
  ppc/pnv: Add OCC model stub with interrupt support
  ppc/pnv: Add support for POWER8+ LPC Controller
  qdev: Add a hook for a bus to device if it can add devices
  pci: Use the new pci_can_add_device() to enforce devfn_min/max
  pci: Don't call pci_irq_handler() for a negative intx
  ppc/pnv: Add model for Power8 PHB3 PCIe Host bridge
  ppc/pnv: Create a default PCI layout

Cédric Le Goater (14):
  ppc/pnv: Add cut down PSI bridge model and hookup external interrupt
  ppc/pnv: enable only one LPC bus
  ppc: add IPMI support
  ipmi: use a file to load SDRs
  ipmi: provide support for FRUs
  ipmi: introduce an ipmi_bmc_sdr_find() API
  ipmi: introduce an ipmi_bmc_gen_event() API
  ipmi: add SET_SENSOR_READING command
  ppc/pnv: scan ISA bus to populate device tree
  ppc/pnv: populate device tree for RTC devices
  ppc/pnv: populate device tree for serial devices
  ppc/pnv: populate device tree for IPMI BT devices
  ppc/pnv: add initial IPMI sensors for the BMC simulator
  ppc/pnv: generate an OEM SEL event on shutdown

 default-configs/ppc64-softmmu.mak   |    4 +
 hw/intc/xics.c                      |    2 +-
 hw/ipmi/ipmi_bmc_sim.c              |  324 ++++++++++-
 hw/pci-host/Makefile.objs           |    1 +
 hw/pci-host/pnv_phb3.c              | 1052 +++++++++++++++++++++++++++++++++++
 hw/pci-host/pnv_phb3_msi.c          |  304 ++++++++++
 hw/pci-host/pnv_phb3_pbcq.c         |  361 ++++++++++++
 hw/pci-host/pnv_phb3_rc.c           |  134 +++++
 hw/pci/pci.c                        |   26 +-
 hw/ppc/Makefile.objs                |    2 +-
 hw/ppc/pnv.c                        |  435 ++++++++++++++-
 hw/ppc/pnv_bmc.c                    |  123 ++++
 hw/ppc/pnv_lpc.c                    |   67 ++-
 hw/ppc/pnv_occ.c                    |  136 +++++
 hw/ppc/pnv_psi.c                    |  571 +++++++++++++++++++
 hw/ppc/pnv_xscom.c                  |    5 +-
 include/hw/ipmi/ipmi.h              |    4 +
 include/hw/pci-host/pnv_phb3.h      |  156 ++++++
 include/hw/pci-host/pnv_phb3_regs.h |  506 +++++++++++++++++
 include/hw/pci/pci_bus.h            |    1 +
 include/hw/ppc/pnv.h                |   31 ++
 include/hw/ppc/pnv_lpc.h            |   11 +
 include/hw/ppc/pnv_occ.h            |   38 ++
 include/hw/ppc/pnv_psi.h            |   67 +++
 include/hw/ppc/pnv_xscom.h          |   15 +
 include/hw/ppc/xics.h               |    1 +
 include/hw/qdev-core.h              |    1 +
 qdev-monitor.c                      |   14 +-
 qemu-options.hx                     |   15 +-
 29 files changed, 4378 insertions(+), 29 deletions(-)
 create mode 100644 hw/pci-host/pnv_phb3.c
 create mode 100644 hw/pci-host/pnv_phb3_msi.c
 create mode 100644 hw/pci-host/pnv_phb3_pbcq.c
 create mode 100644 hw/pci-host/pnv_phb3_rc.c
 create mode 100644 hw/ppc/pnv_bmc.c
 create mode 100644 hw/ppc/pnv_occ.c
 create mode 100644 hw/ppc/pnv_psi.c
 create mode 100644 include/hw/pci-host/pnv_phb3.h
 create mode 100644 include/hw/pci-host/pnv_phb3_regs.h
 create mode 100644 include/hw/ppc/pnv_occ.h
 create mode 100644 include/hw/ppc/pnv_psi.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2017-04-12  9:01 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-05 12:41 [Qemu-devel] [PATCH 00/21] pnv: PSI, OCC, IPMI and PCI models Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 01/21] ppc/pnv: Add cut down PSI bridge model and hookup external interrupt Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 02/21] ppc/pnv: Add OCC model stub with interrupt support Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 03/21] ppc/pnv: Add support for POWER8+ LPC Controller Cédric Le Goater
2017-04-06  2:02   ` David Gibson
2017-04-06 12:27     ` Cédric Le Goater
2017-04-06 12:44     ` Cédric Le Goater
2017-04-06 21:54       ` Benjamin Herrenschmidt
2017-04-07  6:12         ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 04/21] ppc/pnv: enable only one LPC bus Cédric Le Goater
2017-04-06  4:23   ` David Gibson
2017-04-06  9:06     ` Cédric Le Goater
2017-04-06  9:16       ` Benjamin Herrenschmidt
2017-04-06 11:50         ` Cédric Le Goater
2017-04-06 12:01           ` Benjamin Herrenschmidt
2017-04-06 12:35             ` Cédric Le Goater
2017-04-06 21:53               ` Benjamin Herrenschmidt
2017-04-07  6:14                 ` Cédric Le Goater
2017-04-08  2:14                   ` David Gibson
2017-04-05 12:41 ` [Qemu-devel] [PATCH 05/21] ppc: add IPMI support Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 06/21] ipmi: use a file to load SDRs Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 07/21] ipmi: provide support for FRUs Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 08/21] ipmi: introduce an ipmi_bmc_sdr_find() API Cédric Le Goater
2017-04-06  5:36   ` David Gibson
2017-04-06  7:36     ` Cédric Le Goater
2017-04-06  7:38       ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 09/21] ipmi: introduce an ipmi_bmc_gen_event() API Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 10/21] ipmi: add SET_SENSOR_READING command Cédric Le Goater
2017-04-05 14:41   ` Corey Minyard
2017-04-06  7:29     ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 11/21] ppc/pnv: scan ISA bus to populate device tree Cédric Le Goater
2017-04-10  5:17   ` David Gibson
2017-04-10  9:08     ` Cédric Le Goater
2017-04-10 13:16   ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2017-04-10 13:21     ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 12/21] ppc/pnv: populate device tree for RTC devices Cédric Le Goater
2017-04-10  5:18   ` David Gibson
2017-04-05 12:41 ` [Qemu-devel] [PATCH 13/21] ppc/pnv: populate device tree for serial devices Cédric Le Goater
2017-04-10  5:19   ` David Gibson
2017-04-05 12:41 ` [Qemu-devel] [PATCH 14/21] ppc/pnv: populate device tree for IPMI BT devices Cédric Le Goater
2017-04-10  5:23   ` David Gibson
2017-04-05 12:41 ` [Qemu-devel] [PATCH 15/21] ppc/pnv: add initial IPMI sensors for the BMC simulator Cédric Le Goater
2017-04-10  5:31   ` David Gibson
2017-04-10  9:25     ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 16/21] ppc/pnv: generate an OEM SEL event on shutdown Cédric Le Goater
2017-04-10  5:32   ` David Gibson
2017-04-05 12:41 ` [Qemu-devel] [PATCH 17/21] qdev: Add a hook for a bus to device if it can add devices Cédric Le Goater
2017-04-10  5:36   ` David Gibson
2017-04-05 12:41 ` [Qemu-devel] [PATCH 18/21] pci: Use the new pci_can_add_device() to enforce devfn_min/max Cédric Le Goater
2017-04-10  5:41   ` David Gibson
2017-04-10 19:48   ` Michael S. Tsirkin
2017-04-05 12:41 ` [Qemu-devel] [PATCH 19/21] pci: Don't call pci_irq_handler() for a negative intx Cédric Le Goater
2017-04-10  5:59   ` David Gibson
2017-04-11 15:41     ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 20/21] ppc/pnv: Add model for Power8 PHB3 PCIe Host bridge Cédric Le Goater
2017-04-10  8:14   ` David Gibson
2017-04-11  3:05     ` Benjamin Herrenschmidt
2017-04-11  6:06       ` David Gibson
2017-04-11 16:03       ` Cédric Le Goater
2017-04-11 16:35     ` Cédric Le Goater
2017-04-05 12:41 ` [Qemu-devel] [PATCH 21/21] ppc/pnv: Create a default PCI layout Cédric Le Goater
2017-04-10  8:16   ` David Gibson
2017-04-11 11:10   ` [Qemu-devel] [Qemu-ppc] " Andrea Bolognani
2017-04-11 16:50     ` Cédric Le Goater
2017-04-12  8:02       ` Andrea Bolognani
2017-04-12  9:01         ` Cédric Le Goater

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.