[Skiboot] [PATCH 0/6] Add Nvlink support

Alistair Popple alistair at popple.id.au
Fri Oct 16 16:08:14 AEDT 2015

NV-Link is a high speed interconnect that is used in conjunction with
a PCI-E connection to create an interface between CPU and GPU that
provides very high data bandwidth. A PCI-E connection to a GPU is used
as the control path to initiate and report status of large data
transfers sent via the NV-Link.

On IBM Power systems the NV-Link hardware is similar to our standard
PCI IODA2/PHB3. To maximise code reuse skiboot exposes each NV-Link as
a PCIe device by emulating the standard PCIe configuration space in
software. Only the GPU can initiate data transfers.

This patch series adds support for exposing the NPU as a set of PCIe
devices and a new PHB type. It provides functions for setting up the
IODA2 tables for data transfers and address translation in addition to
link training procedures which are called by drivers running on the

At this stage EEH is not supported beyond printing a console message.

Alistair Popple (4):
  include/bitutils.h: Add macros for 16-bit constants
  include/pci-cfg.h: Add PCI vendor specific capability definitions
  Nvlink: Add NPU PHB functions
  Garrison: Add Nvlink device tree bindings

Gavin Shan (2):
  PCI: Cache PCI device IDs
  PCI: Trace device node from PCI device

 core/init.c                 |    3 +
 core/pci.c                  |   12 +-
 hw/Makefile.inc             |    2 +-
 hw/npu-hw-procedures.c      |  598 +++++++++++++++
 hw/npu.c                    | 1718 +++++++++++++++++++++++++++++++++++++++++++
 include/bitutils.h          |    3 +
 include/npu-regs.h          |  235 ++++++
 include/npu.h               |  211 ++++++
 include/pci-cfg.h           |   13 +
 include/pci.h               |   14 +-
 include/skiboot.h           |    2 +-
 platforms/astbmc/garrison.c |   61 ++
 12 files changed, 2866 insertions(+), 6 deletions(-)
 create mode 100644 hw/npu-hw-procedures.c
 create mode 100644 hw/npu.c
 create mode 100644 include/npu-regs.h
 create mode 100644 include/npu.h


More information about the Skiboot mailing list