[Pdbg] [PATCH 03/18] libpdbg: Enable p10 BMC backend

Joel Stanley joel at jms.id.au
Mon Sep 28 15:39:29 AEST 2020


On Thu, 24 Sep 2020 at 04:43, Amitay Isaacs <amitay at ozlabs.org> wrote:
>
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>

Reviewed-by: Joel Stanley <joel at jms.id.au>

> ---
>  libpdbg/cfam.c |  2 ++
>  libpdbg/dtb.c  | 45 +++++++++++++++++++++++++++++++++++++++++----
>  2 files changed, 43 insertions(+), 4 deletions(-)
>
> diff --git a/libpdbg/cfam.c b/libpdbg/cfam.c
> index 0b670d8..ffe6929 100644
> --- a/libpdbg/cfam.c
> +++ b/libpdbg/cfam.c
> @@ -247,6 +247,8 @@ enum chip_type get_chip_type(uint64_t chip_id)
>                 return CHIP_P8NV;
>         case CHIP_ID_P9:
>                 return CHIP_P9;
> +       case CHIP_ID_P10:
> +               return CHIP_P10;
>         default:
>                 return CHIP_UNKNOWN;
>         }
> diff --git a/libpdbg/dtb.c b/libpdbg/dtb.c
> index f47f28f..02464e8 100644
> --- a/libpdbg/dtb.c
> +++ b/libpdbg/dtb.c
> @@ -48,6 +48,7 @@
>
>  #include "p8.dt.h"
>  #include "p9.dt.h"
> +#include "p10.dt.h"
>
>  #define AMI_BMC "/proc/ractrends/Helper/FwInfo"
>  #define XSCOM_BASE_PATH "/sys/kernel/debug/powerpc/scom"
> @@ -228,9 +229,15 @@ static void bmc_target(struct pdbg_dtb *dtb)
>                                 dtb->backend.fdt = &_binary_bmc_kernel_dtb_o_start;
>                         if (!dtb->system.fdt)
>                                 dtb->system.fdt = &_binary_p9_dtb_o_start;
> +               } else if (!strcmp(pdbg_backend_option, "p10")) {
> +                       pdbg_proc = PDBG_PROC_P10;
> +                       if (!dtb->backend.fdt)
> +                               dtb->backend.fdt = &_binary_bmc_kernel_dtb_o_start;
> +                       if (!dtb->system.fdt)
> +                               dtb->system.fdt = &_binary_p10_dtb_o_start;
>                 } else {
>                         pdbg_log(PDBG_ERROR, "Invalid system type %s\n", pdbg_backend_option);
> -                       pdbg_log(PDBG_ERROR, "Use 'p8' or 'p9'\n");
> +                       pdbg_log(PDBG_ERROR, "Use 'p8', 'p9' or 'p10'\n");
>                 }
>
>                 return;
> @@ -240,6 +247,15 @@ static void bmc_target(struct pdbg_dtb *dtb)
>                 return;
>
>         switch(chip_id) {
> +       case CHIP_ID_P10:
> +               pdbg_log(PDBG_INFO, "Found a POWER10 OpenBMC based system\n");
> +               pdbg_proc = PDBG_PROC_P10;
> +               if (!dtb->backend.fdt)
> +                       dtb->backend.fdt = &_binary_bmc_kernel_dtb_o_start;
> +               if (!dtb->system.fdt)
> +                       dtb->system.fdt = &_binary_p10_dtb_o_start;
> +               break;
> +
>         case CHIP_ID_P9:
>         case CHIP_ID_P9P:
>                 pdbg_log(PDBG_INFO, "Found a POWER9 OpenBMC based system\n");
> @@ -276,9 +292,15 @@ static void sbefifo_target(struct pdbg_dtb *dtb)
>                                 dtb->backend.fdt = &_binary_bmc_sbefifo_dtb_o_start;
>                         if (!dtb->system.fdt)
>                                 dtb->system.fdt = &_binary_p9_dtb_o_start;
> +               } else if (!strcmp(pdbg_backend_option, "p10")) {
> +                       pdbg_proc = PDBG_PROC_P10;
> +                       if (!dtb->backend.fdt)
> +                               dtb->backend.fdt = &_binary_bmc_sbefifo_dtb_o_start;
> +                       if (!dtb->system.fdt)
> +                               dtb->system.fdt = &_binary_p10_dtb_o_start;
>                 } else {
>                         pdbg_log(PDBG_ERROR, "Invalid system type %s\n", pdbg_backend_option);
> -                       pdbg_log(PDBG_ERROR, "Use 'p9'\n");
> +                       pdbg_log(PDBG_ERROR, "Use 'p9' or 'p10'\n");
>                 }
>
>                 return;
> @@ -288,6 +310,15 @@ static void sbefifo_target(struct pdbg_dtb *dtb)
>                 return;
>
>         switch(chip_id) {
> +       case CHIP_ID_P10:
> +               pdbg_log(PDBG_INFO, "Found a POWER10 OpenBMC based system\n");
> +               pdbg_proc = PDBG_PROC_P10;
> +               if (!dtb->backend.fdt)
> +                       dtb->backend.fdt = &_binary_bmc_sbefifo_dtb_o_start;
> +               if (!dtb->system.fdt)
> +                       dtb->system.fdt = &_binary_p10_dtb_o_start;
> +               break;
> +
>         case CHIP_ID_P9:
>         case CHIP_ID_P9P:
>                 pdbg_proc = PDBG_PROC_P9;
> @@ -485,7 +516,7 @@ struct pdbg_dtb *pdbg_default_dtb(void *system_fdt)
>         case PDBG_BACKEND_CRONUS:
>                 if (!pdbg_backend_option) {
>                         pdbg_log(PDBG_ERROR, "No system type specified\n");
> -                       pdbg_log(PDBG_ERROR, "Use p8@<server> or p9@<server>\n");
> +                       pdbg_log(PDBG_ERROR, "Use [p8|p9|p10]@<server>\n");
>                         return NULL;
>                 }
>
> @@ -501,9 +532,15 @@ struct pdbg_dtb *pdbg_default_dtb(void *system_fdt)
>                                 dtb->backend.fdt = &_binary_cronus_dtb_o_start;
>                         if (!dtb->system.fdt)
>                                 dtb->system.fdt = &_binary_p9_dtb_o_start;
> +               } else if (!strncmp(pdbg_backend_option, "p10", 3)) {
> +                       pdbg_proc = PDBG_PROC_P10;
> +                       if (!dtb->backend.fdt)
> +                               dtb->backend.fdt = &_binary_cronus_dtb_o_start;
> +                       if (!dtb->system.fdt)
> +                               dtb->system.fdt = &_binary_p10_dtb_o_start;
>                 } else {
>                         pdbg_log(PDBG_ERROR, "Invalid system type %s\n", pdbg_backend_option);
> -                       pdbg_log(PDBG_ERROR, "Use p8@<server> or p9@<server>\n");
> +                       pdbg_log(PDBG_ERROR, "Use [p8|p9|p10]@<server>\n");
>                 }
>                 break;
>
> --
> 2.26.2
>
> --
> Pdbg mailing list
> Pdbg at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/pdbg


More information about the Pdbg mailing list