All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/20] ppc/pnv: booting the kernel and reaching user space
@ 2016-10-03  7:24 Cédric Le Goater
  2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 01/20] ppc/pnv: add skeleton PowerNV platform Cédric Le Goater
                   ` (20 more replies)
  0 siblings, 21 replies; 75+ messages in thread
From: Cédric Le Goater @ 2016-10-03  7:24 UTC (permalink / raw)
  To: qemu-ppc
  Cc: David Gibson, Benjamin Herrenschmidt, qemu-devel, Cedric Le Goater

Hello,

Here is a v4 addressing all the comments from v3 and adding a couple
more models. Most important changes are :

 - a rework of the XSCOM model which now dispatches addresses to the
   memory regions using pcb_addr << 3. 
 - the model for the native Interrupt Presentation Controllers based
   on MMIOS, borrowed from Nikunj v3 patchset, plus some extras to
   support HW CPU ids,
 - a minimal PSI HB (Processor Service Interface Host Bus) model to
   handle the external interrupt, 
 - initial support for the POWER9 LPC controller.


The initial patch provides a minimal platform with some RAM to load
the ROMs : firmware, kernel and initrd. The device tree is built with
what is available at reset time. Then, comes the PnvChip object acting
as a container for other devices required to run a system. The cores
are added to each chip with some restrictions on the number and the
ids. Next is the XSCOM model, the sideband bus which gives controls to
all the units in the POWER8 chip, the LPC controller for the console,
the native interrupt controller and the PSI HB model to handle the
external interrupt.

Last is an initial LPC controller model for the POWER9. We have a
console ! But, more important, it gives us an idea of what changes we
should consider. The LPC controller is a little different for POWER9
as it is accessed through MMIOs but it is not too complex to adapt the
code from POWER8. PSIHB has different XSCOMs addresses, we should be
OK with the current framework. The POWER9 interrupt controller is
another story for later.

The next step is a PHB3 model to include some PCI devices. Nevertheless,
the patchset has now enough support to be usable as a real machine. If
you still feel adventurous, you can grab skiboot and kernel images
here :

  https://openpower.xyz/job/openpower-op-build/distro=ubuntu,target=palmetto/lastSuccessfulBuild/artifact/images/skiboot.lid
  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 code is available here (beware this is a wip branch)

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

Thanks,

C. 

Benjamin Herrenschmidt (9):
  ppc/pnv: add skeleton PowerNV platform
  ppc/pnv: add a LPC controller
  ppc/xics: Make the ICSState a list
  ppc/xics: Split ICS into ics-base and ics class
  ppc/xics: Add xics to the monitor "info pic" command
  ppc/xics: Add "native" XICS subclass
  ppc/pnv: Add cut down PSI bridge model and hookup external interrupt
  ppc/pnv: Add OCC model stub with interrupt support
  ppc/pnv: Add Naples chip support for LPC interrupts

Cédric Le Goater (11):
  ppc/pnv: add a PnvChip object
  ppc/pnv: add a core mask to PnvChip
  ppc/pnv: add a PIR handler to PnvChip
  ppc/pnv: add a PnvCore object
  ppc/pnv: add XSCOM infrastructure
  ppc/pnv: add XSCOM handlers to PnvCore
  ppc/pnv: add a ISA bus
  ppc/xics: introduce helpers to find an ICP from some (CPU) index
  ppc/xics: introduce a helper to insert a new ics
  ppc/pnv: add a XICS native to each PowerNV chip
  ppc/pnv: add support for POWER9 LPC Controller

 default-configs/ppc64-softmmu.mak |   4 +-
 hmp-commands-info.hx              |   2 +
 hw/intc/Makefile.objs             |   1 +
 hw/intc/trace-events              |  15 +-
 hw/intc/xics.c                    | 337 ++++++++++-----
 hw/intc/xics_kvm.c                |  44 +-
 hw/intc/xics_native.c             | 327 ++++++++++++++
 hw/intc/xics_spapr.c              | 128 +++---
 hw/ppc/Makefile.objs              |   2 +
 hw/ppc/pnv.c                      | 878 ++++++++++++++++++++++++++++++++++++++
 hw/ppc/pnv_core.c                 | 253 +++++++++++
 hw/ppc/pnv_lpc.c                  | 745 ++++++++++++++++++++++++++++++++
 hw/ppc/pnv_occ.c                  | 135 ++++++
 hw/ppc/pnv_psi.c                  | 598 ++++++++++++++++++++++++++
 hw/ppc/pnv_xscom.c                | 262 ++++++++++++
 hw/ppc/ppc.c                      |  14 +
 hw/ppc/spapr_events.c             |   2 +-
 hw/ppc/spapr_pci.c                |   5 +-
 hw/ppc/spapr_vio.c                |   2 +-
 include/hw/ppc/pnv.h              | 164 +++++++
 include/hw/ppc/pnv_core.h         |  50 +++
 include/hw/ppc/pnv_lpc.h          | 107 +++++
 include/hw/ppc/pnv_occ.h          |  38 ++
 include/hw/ppc/pnv_psi.h          |  64 +++
 include/hw/ppc/pnv_xscom.h        |  75 ++++
 include/hw/ppc/ppc.h              |   2 +
 include/hw/ppc/xics.h             |  69 ++-
 monitor.c                         |   4 +
 28 files changed, 4129 insertions(+), 198 deletions(-)
 create mode 100644 hw/intc/xics_native.c
 create mode 100644 hw/ppc/pnv.c
 create mode 100644 hw/ppc/pnv_core.c
 create mode 100644 hw/ppc/pnv_lpc.c
 create mode 100644 hw/ppc/pnv_occ.c
 create mode 100644 hw/ppc/pnv_psi.c
 create mode 100644 hw/ppc/pnv_xscom.c
 create mode 100644 include/hw/ppc/pnv.h
 create mode 100644 include/hw/ppc/pnv_core.h
 create mode 100644 include/hw/ppc/pnv_lpc.h
 create mode 100644 include/hw/ppc/pnv_occ.h
 create mode 100644 include/hw/ppc/pnv_psi.h
 create mode 100644 include/hw/ppc/pnv_xscom.h

-- 
2.7.4

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

end of thread, other threads:[~2016-11-07  8:32 UTC | newest]

Thread overview: 75+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-03  7:24 [Qemu-devel] [PATCH v4 00/20] ppc/pnv: booting the kernel and reaching user space Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 01/20] ppc/pnv: add skeleton PowerNV platform Cédric Le Goater
2016-10-07  4:14   ` David Gibson
2016-10-07  4:16     ` David Gibson
2016-10-07  7:38     ` Cédric Le Goater
2016-10-07 16:29       ` Jeff Cody
2016-10-07  8:36     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 02/20] ppc/pnv: add a PnvChip object Cédric Le Goater
2016-10-07  4:26   ` David Gibson
2016-10-07  9:16     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 03/20] ppc/pnv: add a core mask to PnvChip Cédric Le Goater
2016-10-07  4:32   ` David Gibson
2016-10-07  5:01     ` Benjamin Herrenschmidt
2016-10-07  5:11       ` David Gibson
2016-10-07  8:24         ` Cédric Le Goater
2016-10-10 12:56     ` Cédric Le Goater
2016-10-11 10:24       ` David Gibson
2016-10-12  8:53         ` Cédric Le Goater
2016-10-13  0:24           ` David Gibson
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 04/20] ppc/pnv: add a PIR handler " Cédric Le Goater
2016-10-07  4:34   ` David Gibson
2016-10-10  8:14     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 05/20] ppc/pnv: add a PnvCore object Cédric Le Goater
2016-10-07  4:52   ` David Gibson
2016-10-10  8:07     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 06/20] ppc/pnv: add XSCOM infrastructure Cédric Le Goater
2016-10-13  0:41   ` David Gibson
2016-10-13  6:26     ` Cédric Le Goater
2016-11-07  8:26   ` Olaf Hering
2016-11-07  8:32     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 07/20] ppc/pnv: add XSCOM handlers to PnvCore Cédric Le Goater
2016-10-13  0:51   ` David Gibson
2016-10-13  6:50     ` Cédric Le Goater
2016-10-13 22:24       ` David Gibson
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 08/20] ppc/pnv: add a LPC controller Cédric Le Goater
2016-10-13  2:52   ` David Gibson
2016-10-13  2:53     ` David Gibson
2016-10-13  6:31     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 09/20] ppc/pnv: add a ISA bus Cédric Le Goater
2016-10-13  2:58   ` David Gibson
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 10/20] ppc/xics: Make the ICSState a list Cédric Le Goater
2016-10-14  5:32   ` David Gibson
2016-10-14  7:35     ` Cédric Le Goater
2016-10-16 23:53       ` David Gibson
2016-10-17  8:13         ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 11/20] ppc/xics: Split ICS into ics-base and ics class Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 12/20] ppc/xics: Add xics to the monitor "info pic" command Cédric Le Goater
2016-10-14  5:30   ` David Gibson
2016-10-14  7:39     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 13/20] ppc/xics: introduce helpers to find an ICP from some (CPU) index Cédric Le Goater
2016-10-14  5:34   ` David Gibson
2016-10-14  7:44     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 14/20] ppc/xics: introduce a helper to insert a new ics Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 15/20] ppc/xics: Add "native" XICS subclass Cédric Le Goater
2016-10-14  6:10   ` David Gibson
2016-10-14  9:40     ` Cédric Le Goater
2016-10-16 23:51       ` David Gibson
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 16/20] ppc/pnv: add a XICS native to each PowerNV chip Cédric Le Goater
2016-10-14  6:18   ` David Gibson
2016-10-18 14:47     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 17/20] ppc/pnv: Add cut down PSI bridge model and hookup external interrupt Cédric Le Goater
2016-10-14  6:32   ` David Gibson
2016-10-14  7:13     ` Benjamin Herrenschmidt
2016-10-14  8:07     ` Cédric Le Goater
2016-10-16 23:52       ` David Gibson
2016-10-17  8:17         ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 18/20] ppc/pnv: Add OCC model stub with interrupt support Cédric Le Goater
2016-10-14  6:34   ` David Gibson
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 19/20] ppc/pnv: Add Naples chip support for LPC interrupts Cédric Le Goater
2016-10-14  6:36   ` David Gibson
2016-10-14  7:47     ` Cédric Le Goater
2016-10-03  7:24 ` [Qemu-devel] [PATCH v4 20/20] ppc/pnv: add support for POWER9 LPC Controller Cédric Le Goater
2016-10-14  6:43   ` David Gibson
2016-10-03  7:59 ` [Qemu-devel] [PATCH v4 00/20] ppc/pnv: booting the kernel and reaching user space no-reply
2016-10-03  8:21   ` 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.