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

Stewart Smith stewart at linux.vnet.ibm.com
Mon Oct 26 14:21:24 AEDT 2015


Alistair Popple <alistair at popple.id.au> writes:
> 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
> host.
>
> 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

Thanks, merged as of 5a76659 Garrison: Add Nvlink device tree bindings


What'd be great is if the device tree bindings were documented
somewhere, say in doc/device-tree/ at least?



More information about the Skiboot mailing list