[Skiboot] [PATCH v7 0/9] Initial OpenCAPI 3.0 Support for P9

Frederic Barrat fbarrat at linux.vnet.ibm.com
Wed Feb 28 22:44:24 AEDT 2018


The series looks good to me.
If Andrew is ok with what I tried to explain in a reply to patch 6 (link 
training), then I think it could be merged. There's a useless header 
file included in patch 8 (zaius platform), but hopefully that can be 
resolved without a full respin.

   Fred


Le 28/02/2018 à 07:41, Andrew Donnellan a écrit :
> This series implements OpenCAPI support for P9.
> 
> The series is divided as follows:
> 
>   - Patches 1-3: general refactoring
> 
>     Add various structs and fields we'll need later.
> 
>   - Patch 4: setting up the NPU
> 
>     At present, we're doing NPU configuration separately from the existing
>     NVLink code. At a later point, we intend to rework this to make it
>     possible to support both NVLink and OpenCAPI links on the same NPU.
> 
>   - Patches 5-6: training links and creating OpenCAPI PHBs
> 
>     Unlike NVLink, which presents a single PHB to represent the entire NPU,
>     we present a single PHB per device/link. This is necessary due to
>     limitations in MMIO window allocation. Unfortunately this makes the
>     structures we share with NVLink a little more complex, oh well.
> 
>   - Patch 7: OPAL API calls
> 
>     We define three new API calls for handling the Shared Process Area and
>     setting OpenCAPI TL template capabilities.
> 
>   - Patch 8: platform support
> 
>     See below.
> 
>   - Patch 9: device tree documentation
> 
> Notable limitations:
> 
>   - We only support the zaius platform for now. We'll be adding ZZ after a bit
>     more testing booting ZZs with hostboot rather than BML. Witherspoon
>     support will come at a later point (our testing shows it's mostly
>     working now!)
> 
>   - No mixing of OpenCAPI and NVLink devices on the same NPU. This will come in a
>     later series. The only platform this currently impacts is Witherspoon.
> 
>   - No support for link ganging - there are also no OpenCAPI devices that support
>     link ganging yet, so this will come when we get to it...
> 
>   - Link information is hardcoded per platform, and we don't have any form of
>     presence detection apart from failing to train the link. Eventually, this
>     will be detected via I2C once Hostboot adds the relevant link info to HDAT.
> 
>   - No LPC memory - this will come in a later patch once we've done a bit more
>     testing internally.
> 
>   - No link reset functionality - this will come in a later patch.
> 
> This series has been tested on a Zaius. I've also tested it on a
> GPU-equipped Witherspoon to ensure it doesn't break NVLink.
> 
> Thanks to everyone who's helped us with this, especially to Alistair Popple for
> his advice on NVLink, and to the OpenCAPI hardware teams in Austin and
> Rochester who provided us with a lot of vital assistance.
> 
> Comments welcome!
> 
> ---
> 
> v1->v2:
> 
>    - Address various comments from Fred
> 
> v2->v3:
> 
>    - Address minor comments from Fred
>    - Silence ioda_reset warning in Linux
>    - Fix PHB device tree issues
>    - Mask FIRs to correctly handle Datalink Layer Stall and NoStall signals
>      (Fred)
>    - Add device tree binding information
>    - Reverse order of lane masks, per Alistair's patch at
>      https://patchwork.ozlabs.org/patch/865155/
> 
> v3->v4:
> 
>    - Address comments from Fred and Alistair
> 
> v4->v5:
> 
>    - I accidentally a --- line in patch 5, whoops
> 
> v5->v6:
> 
>    - Reduce link training retries
>    - Fix brick<->ODL mapping on OBUS3 (only relevant to witherspoon)
>    - Skip unnecessary phy training subprocedure that triggers FIR bit
>    - Add some comments
> 
> v6->v7:
> 
>    - Remove the p9-adu code to set PowerBus hotplug mode register.
>      Following clarification with hardware team, we believe this is all
>      correctly set up for us in Hostboot.
>    - Add some debug options (in NVRAM) for link training
>    - Use ibm,link-speed property in device tree to determine PHY speed
>      select field
>    - Disable fast reboot - it almost certainly won't work right now...
> 
> Andrew Donnellan (8):
>    npu2: Split out common helper functions into separate file
>    npu2: Rework NPU data structures for OpenCAPI
>    platform: Add fields for OpenCAPI platform data
>    npu2-opencapi: Configure NPU for OpenCAPI
>    npu2-hw-procedures: Add support for OpenCAPI PHY link training
>    npu2-opencapi: Train OpenCAPI links and setup devices
>    platforms: Add OpenCAPI platform data and device tree nodes
>    doc/device-tree: Add OpenCAPI device tree bindings
> 
> Frederic Barrat (1):
>    npu2-opencapi: Add OpenCAPI OPAL API calls
> 
>   core/init.c                                     |    2 +-
>   core/pci.c                                      |    3 +-
>   core/platform.c                                 |   11 +-
>   doc/device-tree/opencapi.rst                    |   95 +-
>   doc/opal-api/opal-npu2-opencapi-159-160-161.rst |  126 +-
>   hw/Makefile.inc                                 |    4 +-
>   hw/npu2-common.c                                |  114 +-
>   hw/npu2-hw-procedures.c                         |  134 +-
>   hw/npu2-opencapi.c                              | 1708 ++++++++++++++++-
>   hw/npu2.c                                       |  243 +--
>   include/npu2-regs.h                             |  156 +-
>   include/npu2.h                                  |   90 +-
>   include/opal-api.h                              |    6 +-
>   include/pci.h                                   |    1 +-
>   include/platform.h                              |   14 +-
>   include/skiboot.h                               |    1 +-
>   platforms/astbmc/zaius.c                        |   98 +-
>   platforms/ibm-fsp/zz.c                          |   11 +-
>   18 files changed, 2617 insertions(+), 200 deletions(-)
>   create mode 100644 doc/device-tree/opencapi.rst
>   create mode 100644 doc/opal-api/opal-npu2-opencapi-159-160-161.rst
>   create mode 100644 hw/npu2-common.c
>   create mode 100644 hw/npu2-opencapi.c
> 
> base-commit: 49c175d9a026648f5f902db018f1986365a72610
> 



More information about the Skiboot mailing list