mbox series

[v2,00/20] Add p10 support to libpdbg

Message ID 20201001070814.102735-1-amitay@ozlabs.org
Headers show
Series Add p10 support to libpdbg | expand

Message

Amitay Isaacs Oct. 1, 2020, 7:07 a.m. UTC
This patchset adds support for POWER10 (P10) processor to libpdbg.
Starting from P10, most of the hardware accesses from BMC go via sbe.
This is implemented as a seperate sbefifo backend.  On a secure P10
system, raw devices used by kernel driver will not work and all hardware
access (except fsi) must go via SBE.

SBEFIFO library is updated to deal with slightly different conventions between
P9 and P10 when specifying core ids.  New chip-ops are added to SBE to read
scoms from ocmb.

v2 changes:
  - Add missing static declarations for p10 hardware units
  - Split p10 address translation tests patch
  - Drop IBM confidential prolog from imported EKB code
  - Document source of libsbefifo api specification

Alistair Popple (3):
  libpdbg: Introduce p10 FAPI targets and address translation
  dts: Add p10 targets to device tree
  tests: Add fapi p10 address translation tests

Amitay Isaacs (17):
  libpdbg: Add p10
  dts: Add p10 device tree
  libpdbg: Enable p10 BMC backend
  tests: Import P10 SCOM HWP for address translation tests
  tests: Add P10 address translation tests wrapper
  libpdbg: Add processor type to libsbefifo implementation
  libsbefifo: Add implementation of suspend_io chipop
  libsbefifo: Add new definitions for P10 sbe
  libsbefifo: P10 dropped put_ring_from_image chipop
  libpdbg: Update sbefifo chip-ops as per changes in p10
  libsbefifo: Use proper cast
  libsbefifo: Update sram get/put api
  libsbefifo: Add new chip-ops for hw register get/put
  libpdbg: Add ocmb hwunit
  libpdbg: Add sbefifo based implementation of ocmb getscom/putscom
  libpdbg: Add ocmb_{getscom/putscom} api
  dts: Add ocmb targets to p10.dts

 Makefile.am                                   |  16 +-
 libpdbg/cfam.c                                |   2 +
 libpdbg/cronus.c                              |  18 +-
 libpdbg/dtb.c                                 |  45 +-
 libpdbg/hwunit.h                              |  22 +
 libpdbg/libpdbg.h                             |  23 +
 libpdbg/ocmb.c                                |  85 ++
 libpdbg/p10_fapi_targets.c                    | 583 +++++++++++
 libpdbg/p10_scom_addr.h                       | 133 +++
 libpdbg/sbefifo.c                             |  87 +-
 libpdbg/target.c                              |  38 +
 libpdbg/target.h                              |   3 +-
 libsbefifo/cmd_control.c                      |  53 +-
 libsbefifo/cmd_memory.c                       |  75 +-
 libsbefifo/cmd_register.c                     | 131 +++
 libsbefifo/cmd_ring.c                         |   3 +
 libsbefifo/cmd_scom.c                         |   6 +-
 libsbefifo/connect.c                          |  26 +-
 libsbefifo/libsbefifo.h                       |  67 +-
 libsbefifo/sbefifo_private.h                  |   8 +-
 p10.dts.m4                                    | 622 ++++++++++++
 src/tests/libpdbg_p10_fapi_translation_test.C | 113 +++
 src/tests/p10_cu.H                            | 102 ++
 src/tests/p10_scom_addr.C                     | 916 ++++++++++++++++++
 src/tests/p10_scom_addr.H                     | 700 +++++++++++++
 src/tests/p10_scominfo.C                      | 838 ++++++++++++++++
 src/tests/p10_scominfo.H                      |  89 ++
 tests/test_p10_fapi_translation.sh            | 206 ++++
 28 files changed, 4936 insertions(+), 74 deletions(-)
 create mode 100644 libpdbg/ocmb.c
 create mode 100644 libpdbg/p10_fapi_targets.c
 create mode 100644 libpdbg/p10_scom_addr.h
 create mode 100644 p10.dts.m4
 create mode 100644 src/tests/libpdbg_p10_fapi_translation_test.C
 create mode 100644 src/tests/p10_cu.H
 create mode 100644 src/tests/p10_scom_addr.C
 create mode 100644 src/tests/p10_scom_addr.H
 create mode 100644 src/tests/p10_scominfo.C
 create mode 100644 src/tests/p10_scominfo.H
 create mode 100755 tests/test_p10_fapi_translation.sh

Comments

Joel Stanley Oct. 7, 2020, 11:48 a.m. UTC | #1
On Thu, 1 Oct 2020 at 07:09, Amitay Isaacs <amitay@ozlabs.org> wrote:
>
> This patchset adds support for POWER10 (P10) processor to libpdbg.
> Starting from P10, most of the hardware accesses from BMC go via sbe.
> This is implemented as a seperate sbefifo backend.  On a secure P10
> system, raw devices used by kernel driver will not work and all hardware
> access (except fsi) must go via SBE.
>
> SBEFIFO library is updated to deal with slightly different conventions between
> P9 and P10 when specifying core ids.  New chip-ops are added to SBE to read
> scoms from ocmb.
>
> v2 changes:
>   - Add missing static declarations for p10 hardware units
>   - Split p10 address translation tests patch
>   - Drop IBM confidential prolog from imported EKB code
>   - Document source of libsbefifo api specification

Looks good!

>
> Alistair Popple (3):
>   libpdbg: Introduce p10 FAPI targets and address translation
>   dts: Add p10 targets to device tree
>   tests: Add fapi p10 address translation tests
>
> Amitay Isaacs (17):
>   libpdbg: Add p10
>   dts: Add p10 device tree
>   libpdbg: Enable p10 BMC backend
>   tests: Import P10 SCOM HWP for address translation tests
>   tests: Add P10 address translation tests wrapper
>   libpdbg: Add processor type to libsbefifo implementation
>   libsbefifo: Add implementation of suspend_io chipop
>   libsbefifo: Add new definitions for P10 sbe
>   libsbefifo: P10 dropped put_ring_from_image chipop
>   libpdbg: Update sbefifo chip-ops as per changes in p10
>   libsbefifo: Use proper cast
>   libsbefifo: Update sram get/put api
>   libsbefifo: Add new chip-ops for hw register get/put
>   libpdbg: Add ocmb hwunit
>   libpdbg: Add sbefifo based implementation of ocmb getscom/putscom
>   libpdbg: Add ocmb_{getscom/putscom} api
>   dts: Add ocmb targets to p10.dts
>
>  Makefile.am                                   |  16 +-
>  libpdbg/cfam.c                                |   2 +
>  libpdbg/cronus.c                              |  18 +-
>  libpdbg/dtb.c                                 |  45 +-
>  libpdbg/hwunit.h                              |  22 +
>  libpdbg/libpdbg.h                             |  23 +
>  libpdbg/ocmb.c                                |  85 ++
>  libpdbg/p10_fapi_targets.c                    | 583 +++++++++++
>  libpdbg/p10_scom_addr.h                       | 133 +++
>  libpdbg/sbefifo.c                             |  87 +-
>  libpdbg/target.c                              |  38 +
>  libpdbg/target.h                              |   3 +-
>  libsbefifo/cmd_control.c                      |  53 +-
>  libsbefifo/cmd_memory.c                       |  75 +-
>  libsbefifo/cmd_register.c                     | 131 +++
>  libsbefifo/cmd_ring.c                         |   3 +
>  libsbefifo/cmd_scom.c                         |   6 +-
>  libsbefifo/connect.c                          |  26 +-
>  libsbefifo/libsbefifo.h                       |  67 +-
>  libsbefifo/sbefifo_private.h                  |   8 +-
>  p10.dts.m4                                    | 622 ++++++++++++
>  src/tests/libpdbg_p10_fapi_translation_test.C | 113 +++
>  src/tests/p10_cu.H                            | 102 ++
>  src/tests/p10_scom_addr.C                     | 916 ++++++++++++++++++
>  src/tests/p10_scom_addr.H                     | 700 +++++++++++++
>  src/tests/p10_scominfo.C                      | 838 ++++++++++++++++
>  src/tests/p10_scominfo.H                      |  89 ++
>  tests/test_p10_fapi_translation.sh            | 206 ++++
>  28 files changed, 4936 insertions(+), 74 deletions(-)
>  create mode 100644 libpdbg/ocmb.c
>  create mode 100644 libpdbg/p10_fapi_targets.c
>  create mode 100644 libpdbg/p10_scom_addr.h
>  create mode 100644 p10.dts.m4
>  create mode 100644 src/tests/libpdbg_p10_fapi_translation_test.C
>  create mode 100644 src/tests/p10_cu.H
>  create mode 100644 src/tests/p10_scom_addr.C
>  create mode 100644 src/tests/p10_scom_addr.H
>  create mode 100644 src/tests/p10_scominfo.C
>  create mode 100644 src/tests/p10_scominfo.H
>  create mode 100755 tests/test_p10_fapi_translation.sh
>
> --
> 2.26.2
>
> --
> Pdbg mailing list
> Pdbg@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/pdbg
Amitay Isaacs Oct. 8, 2020, 7:54 a.m. UTC | #2
On Wed, 2020-10-07 at 11:48 +0000, Joel Stanley wrote:
> On Thu, 1 Oct 2020 at 07:09, Amitay Isaacs <amitay@ozlabs.org> wrote:
> > This patchset adds support for POWER10 (P10) processor to libpdbg.
> > Starting from P10, most of the hardware accesses from BMC go via
> > sbe.
> > This is implemented as a seperate sbefifo backend.  On a secure P10
> > system, raw devices used by kernel driver will not work and all
> > hardware
> > access (except fsi) must go via SBE.
> > 
> > SBEFIFO library is updated to deal with slightly different
> > conventions between
> > P9 and P10 when specifying core ids.  New chip-ops are added to SBE
> > to read
> > scoms from ocmb.
> > 
> > v2 changes:
> >   - Add missing static declarations for p10 hardware units
> >   - Split p10 address translation tests patch
> >   - Drop IBM confidential prolog from imported EKB code
> >   - Document source of libsbefifo api specification
> 
> Looks good!

Thanks for the review.  There are some bug fix patches that need to go
in first before I push these patches upstream.  I will post the bug fix
patches after India team has done their testing.


Amitay.