mbox series

[v5,0/6] OpenCAPI support for Witherspoon

Message ID cover.0eb4a5240f080adef605bc9435093579562e703c.1536896665.git-series.andrew.donnellan@au1.ibm.com
Headers show
Series OpenCAPI support for Witherspoon | expand

Message

Andrew Donnellan Sept. 14, 2018, 3:46 a.m. UTC
This series implements OpenCAPI support for Witherspoon.

Patch 1 is a fixup to the OCC GPU presence detection.

Patches 2-4 are restructuring of the NPU code in preparation for
platforms that support both NVLink and OpenCAPI.

Patch 5 is a fixup to OpenCAPI I2C reset and presence detection.

Patch 6 adds Witherspoon-specific platform support, including the
Witherspoon-specific device presence and type detection.

v1->v2:

- Address review comments from Reza/Alistair/Oliver

v2->v3:

- make OCC GPU presence less noisy
- add check for npu->devices overflow
- get rid of ocapi_global_mmio_base
- Abort NPU init if we can't find the device presence I2C port
- define device detection callback for ZZ
- add comment to explain OpenCAPI slot presence function
- rename the i2c fields in i2c refactoring commit message
- refactor link type/index setting in witherspoon platform code
- add explanatory comment for i2c reset settings in witherspoon platform
code

v3->v4:
- break out of loop once device found in set_link_details() (Fred)
- add missing break (Fred)

v4->v5:
- Rebase on master

Andrew

Andrew Donnellan (6):
  occ: Wait if OCC GPU presence status not immediately available
  npu2: Split device index into brick and link index
  hw/npu2: Common NPU2 init routine between NVLink and OpenCAPI
  hw/npu2, platform: Add NPU2 platform device detection callback
  hw/npu2, platform: Restructure OpenCAPI i2c reset/presence pins
  platforms/astbmc/witherspoon: Implement OpenCAPI support

 core/init.c                    |   2 +-
 core/platform.c                |  26 +--
 hdata/spira.c                  |   1 +-
 hw/npu2-common.c               | 235 +++++++++++++++++++++++--
 hw/npu2-hw-procedures.c        |   8 +-
 hw/npu2-opencapi.c             | 324 +++++++++++-----------------------
 hw/npu2.c                      | 257 ++++++++-------------------
 hw/occ.c                       |  16 +-
 include/npu2-regs.h            |  14 +-
 include/npu2.h                 |  26 ++-
 include/platform.h             |  16 +-
 include/skiboot.h              |   1 +-
 platforms/astbmc/witherspoon.c | 209 ++++++++++++++++++++++-
 platforms/astbmc/zaius.c       |  25 +--
 platforms/ibm-fsp/zz.c         |  26 +--
 15 files changed, 727 insertions(+), 459 deletions(-)

base-commit: cbffa63d51715114cd09950490f9fafd2cfd7284

Comments

Stewart Smith Sept. 18, 2018, 7:37 a.m. UTC | #1
Andrew Donnellan <andrew.donnellan@au1.ibm.com> writes:
> This series implements OpenCAPI support for Witherspoon.
>
> Patch 1 is a fixup to the OCC GPU presence detection.
>
> Patches 2-4 are restructuring of the NPU code in preparation for
> platforms that support both NVLink and OpenCAPI.
>
> Patch 5 is a fixup to OpenCAPI I2C reset and presence detection.
>
> Patch 6 adds Witherspoon-specific platform support, including the
> Witherspoon-specific device presence and type detection.
>
> v1->v2:
>
> - Address review comments from Reza/Alistair/Oliver
>
> v2->v3:
>
> - make OCC GPU presence less noisy
> - add check for npu->devices overflow
> - get rid of ocapi_global_mmio_base
> - Abort NPU init if we can't find the device presence I2C port
> - define device detection callback for ZZ
> - add comment to explain OpenCAPI slot presence function
> - rename the i2c fields in i2c refactoring commit message
> - refactor link type/index setting in witherspoon platform code
> - add explanatory comment for i2c reset settings in witherspoon platform
> code
>
> v3->v4:
> - break out of loop once device found in set_link_details() (Fred)
> - add missing break (Fred)
>
> v4->v5:
> - Rebase on master
>
> Andrew
>
> Andrew Donnellan (6):
>   occ: Wait if OCC GPU presence status not immediately available
>   npu2: Split device index into brick and link index
>   hw/npu2: Common NPU2 init routine between NVLink and OpenCAPI
>   hw/npu2, platform: Add NPU2 platform device detection callback
>   hw/npu2, platform: Restructure OpenCAPI i2c reset/presence pins
>   platforms/astbmc/witherspoon: Implement OpenCAPI support
>
>  core/init.c                    |   2 +-
>  core/platform.c                |  26 +--
>  hdata/spira.c                  |   1 +-
>  hw/npu2-common.c               | 235 +++++++++++++++++++++++--
>  hw/npu2-hw-procedures.c        |   8 +-
>  hw/npu2-opencapi.c             | 324 +++++++++++-----------------------
>  hw/npu2.c                      | 257 ++++++++-------------------
>  hw/occ.c                       |  16 +-
>  include/npu2-regs.h            |  14 +-
>  include/npu2.h                 |  26 ++-
>  include/platform.h             |  16 +-
>  include/skiboot.h              |   1 +-
>  platforms/astbmc/witherspoon.c | 209 ++++++++++++++++++++++-
>  platforms/astbmc/zaius.c       |  25 +--
>  platforms/ibm-fsp/zz.c         |  26 +--
>  15 files changed, 727 insertions(+), 459 deletions(-)

Thanks!

Series merged to master as of 9d5b516f287096df429d4637a4f2dc8b7f933721