mbox series

[v2,00/15] Support OpenCAPI and NVLink devices on same NPU on Witherspoon

Message ID cover.dd6de53510e344bee896d3b7b417143107a8dff1.1547168645.git-series.andrew.donnellan@au1.ibm.com
Headers show
Series Support OpenCAPI and NVLink devices on same NPU on Witherspoon | expand

Message

Andrew Donnellan Jan. 11, 2019, 1:09 a.m. UTC
** This series is based on top of Reza's cleanup patches at
https://patchwork.ozlabs.org/project/skiboot/list/?series=85193 **

This series enables mixing of OpenCAPI and NVLink devices on the same NPU
on Witherspoon systems.

The first half of this series is preparatory refactoring, merging and
simplifying various duplicated code paths.

The second half is the support actually required for mixing both device
types. We fix up some issues in the Witherspoon presence detection code,
merge the brick configuration procedure and do various consequential
cleanups and fixups before finally removing the restriction on mixing
device types at the end.

It could probably do with a bit more testing on both the OpenCAPI and
NVLink sides, and testing on various machine types to make sure it's not
regressing anything, so if you have any OpenCAPI or NVLink hardware test
reports would be very welcome.

- Andrew

---

v1->v2:
- Rebase on top of Reza's cleanups
- Fix a bug in GENID BAR assignment for OpenCAPI devices on OTL1
- Split the BAR assignment refactoring patch up (Alexey)
- Address misc minor comments from Alexey and Fred

Andrew Donnellan (14):
  hw/npu2: Simplify BAR structures
  hw/npu2: Merge implementations of BAR accessor functions
  hw/npu2: Replace npu2_dev::bars array with individual BARs
  hw/npu2: Move PHY/NTL/GENID BAR assignment to common code
  hw/npu2: Simplify npu2_write_bar()
  hw/npu2: Don't repopulate NPU devices in NVLink init path
  hw/npu2: Rework npu2_add_interrupt_map() and skip non-NVLink devices
  platforms/astbmc/witherspoon: Rework NPU presence detection
  hw/npu2: Combined NPU brick configuration procedure
  hw/npu2-opencapi: FIR masking for mixed setups
  hw/npu2: Fix OpenCAPI PE assignment
  hw/npu2: Always check device type when looping through NPU devices
  hw/npu2-common: Allow mixed mode NPU setups
  hw/npu2-opencapi: Remove completed TODO

Frederic Barrat (1):
  hw/npu2: Make IRQ setup code common

 hw/npu2-common.c               | 411 +++++++++++++++++++++++--
 hw/npu2-opencapi.c             | 375 ++++-------------------
 hw/npu2.c                      | 560 ++++++++--------------------------
 include/npu2-regs.h            |   4 +-
 include/npu2.h                 |  55 +--
 platforms/astbmc/witherspoon.c |  62 +++-
 6 files changed, 693 insertions(+), 774 deletions(-)

base-commit: 1799df83089fb33c8ed41f54e47a0fcfaeafe8ff