[Pdbg] [RFC 12/12] libpdbg: Split system and backend definitions
Amitay Isaacs
amitay at ozlabs.org
Tue Aug 20 14:14:51 AEST 2019
I like the renaming of device trees to appropriate backends.
The actual contents of the device trees need a bit of work as per the
new scheme. For now, each backend should be complete with chip-level
targets and having the right hierarchy (based on the backend).
We need sbefifo backend as well. Now I have a libsbefifo library
(similar to libcronus) which implements all the marshalling details and
implements all the chip-ops.
I can post the patches with libsbefifo once we add the sbefifo backend.
On Tue, 2019-08-06 at 11:37 +1000, Alistair Popple wrote:
> Signed-off-by: Alistair Popple <alistair at popple.id.au>
> ---
> Makefile.am | 33 ++++++--------
> cronus-backend.dts.m4 | 28 ++++++++++++
> host-backend.dts.m4 | 46 ++++++++++++++++++++
> libpdbg/dtb.c | 97 +++++++++++++++++++++++++++++-----------
> --
> obmc-backend.dts.m4 | 36 ++++++++++++++++
> p8-fsi-backend.dts.m4 | 32 ++++++++++++++
> p8-i2c-backend.dts.m4 | 22 ++++++++++
> p8-pib.dts.m4 | 17 ++++++++
> p8.dts.m4 | 71 +++++++++++++++++++++++++++++++
> p9-fsi.dtsi.m4 | 43 -------------------
> p9-pib.dts.m4 | 4 ++
> p9.dts.m4 | 80 ++++++++++++++++++++++++++++++++++
> p9r-fsi-backend.dts.m4 | 32 ++++++++++++++
> p9r-fsi.dts.m4 | 16 -------
> p9w-fsi-backend.dts.m4 | 32 ++++++++++++++
> p9w-fsi.dts.m4 | 16 -------
> p9z-fsi-backend.dts.m4 | 32 ++++++++++++++
> p9z-fsi.dts.m4 | 16 -------
> src/main.c | 1 +
> 19 files changed, 514 insertions(+), 140 deletions(-)
> create mode 100644 cronus-backend.dts.m4
> create mode 100644 host-backend.dts.m4
> create mode 100644 obmc-backend.dts.m4
> create mode 100644 p8-fsi-backend.dts.m4
> create mode 100644 p8-i2c-backend.dts.m4
> create mode 100644 p8.dts.m4
> delete mode 100644 p9-fsi.dtsi.m4
> create mode 100644 p9.dts.m4
> create mode 100644 p9r-fsi-backend.dts.m4
> delete mode 100644 p9r-fsi.dts.m4
> create mode 100644 p9w-fsi-backend.dts.m4
> delete mode 100644 p9w-fsi.dts.m4
> create mode 100644 p9z-fsi-backend.dts.m4
> delete mode 100644 p9z-fsi.dts.m4
>
> diff --git a/Makefile.am b/Makefile.am
> index 0f2906a..14b0a6c 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -35,19 +35,17 @@ AM_CFLAGS = -I$(top_srcdir)/ccan/array_size -Wall
> -Werror -O2
>
> EXTRA_DIST = \
> fake.dts.m4 \
> - backend.dts.m4 \
> - p8-fsi.dts.m4 \
> - p8-host.dts.m4 \
> - p8-i2c.dts.m4 \
> - p8-kernel.dts.m4 \
> p8-pib.dts.m4 \
> - p9-fsi.dtsi.m4 \
> - p9-host.dts.m4 \
> - p9-kernel.dts.m4 \
> p9-pib.dts.m4 \
> - p9r-fsi.dts.m4 \
> - p9w-fsi.dts.m4 \
> - p9z-fsi.dts.m4 \
> + p8-fsi-backend.dts.m4 \
> + p9r-fsi-backend.dts.m4 \
> + p9w-fsi-backend.dts.m4 \
> + p9z-fsi-backend.dts.m4 \
> + p9.dts.m4 \
> + p8.dts.m4 \
> + obmc-backend.dts.m4 \
> + host-backend.dts.m4 \
> + cronus-backend.dts.m4 \
> template.S \
> generate_dt_header.sh \
> src/gdb_parser.rl \
> @@ -64,10 +62,10 @@ if TARGET_PPC
> ARCH_FLAGS="-DTARGET_PPC=1"
> endif
>
> -DT = fake.dts backend.dts p8-cronus.dts p9-cronus.dts \
> - p8-fsi.dts p8-i2c.dts p8-kernel.dts \
> - p9w-fsi.dts p9r-fsi.dts p9z-fsi.dts p9-kernel.dts \
> - p8-host.dts p9-host.dts
> +DT = fake.dts \
> + p9w-fsi-backend.dts p9r-fsi-backend.dts p9z-fsi-backend.dts p8-
> fsi-backend.dts \
> + p8.dts p9.dts p8-i2c-backend.dts \
> + obmc-backend.dts host-backend.dts cronus-backend.dts
>
> DT_sources = $(DT:.dts=.dtb.S)
> DT_headers = $(DT:.dts=.dt.h)
> @@ -253,11 +251,6 @@ RAGEL_V_0 = @echo " RAGEL " $@;
> %.dtsi: %.dtsi.m4
> $(M4_V)$(M4) -I$(dir $<) $< > $@
>
> -p9-fsi.dtsi: p9-fsi.dtsi.m4 p9-pib.dts.m4
> -p9w-fsi.dts: p9w-fsi.dts.m4 p9-fsi.dtsi
> -p9r-fsi.dts: p9r-fsi.dts.m4 p9-fsi.dtsi
> -p9z-fsi.dts: p9z-fsi.dts.m4 p9-fsi.dtsi
> -
> %.dtb: %.dts
> $(DTC_V)$(DTC) -i$(dir $@) -I dts $< -O dtb > $@
>
> diff --git a/cronus-backend.dts.m4 b/cronus-backend.dts.m4
> new file mode 100644
> index 0000000..aa31f85
> --- /dev/null
> +++ b/cronus-backend.dts.m4
> @@ -0,0 +1,28 @@
> +/dts-v1/;
> +
> +/ {
> + fsi at 0 {
> + compatible = "ibm,cronus-fsi";
> + system-path = "/proc at 0/fsi at 0";
> + };
> +
> + pib at 0 {
> + compatible = "ibm,cronus-pib";
> + system-path = "/proc at 0/pib at 0";
> + };
> +
> + mem at 0 {
> + system-path = "/mem at 0";
> + target = "/proc at 0/pib at 0/adu at 90000";
> + };
> +
> + fsi at 1 {
> + compatible = "ibm,cronus-fsi";
> + system-path = "/proc at 1/fsi at 0";
> + };
> +
> + pib at 1 {
> + compatible = "ibm,cronus-pib";
> + system-path = "/proc at 1/pib at 1";
> + };
> +};
> diff --git a/host-backend.dts.m4 b/host-backend.dts.m4
> new file mode 100644
> index 0000000..a188045
> --- /dev/null
> +++ b/host-backend.dts.m4
> @@ -0,0 +1,46 @@
> +define(`HOST_PIB',`
> + pib@$1 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> + compatible = "ibm,host-pib";
> + reg = <$1>;
> + index = <$1>;
> + system-path = "/proc@$1/pib@$1";
> + }')dnl
> +
> +/dts-v1/;
> +
> +/ {
> + HOST_PIB(0);
> + HOST_PIB(1);
> + HOST_PIB(2);
> + HOST_PIB(3);
> + HOST_PIB(4);
> + HOST_PIB(5);
> + HOST_PIB(6);
> + HOST_PIB(7);
> + HOST_PIB(8);
> + HOST_PIB(9);
> + HOST_PIB(10);
> + HOST_PIB(11);
> + HOST_PIB(12);
> + HOST_PIB(13);
> + HOST_PIB(14);
> + HOST_PIB(15);
> + HOST_PIB(16);
> + HOST_PIB(17);
> + HOST_PIB(18);
> + HOST_PIB(19);
> + HOST_PIB(20);
> + HOST_PIB(21);
> + HOST_PIB(22);
> + HOST_PIB(23);
> + HOST_PIB(24);
> + HOST_PIB(25);
> + HOST_PIB(26);
> + HOST_PIB(27);
> + HOST_PIB(28);
> + HOST_PIB(29);
> + HOST_PIB(30);
> + HOST_PIB(31);
> +};
> diff --git a/libpdbg/dtb.c b/libpdbg/dtb.c
> index f6b235f..98ca374 100644
> --- a/libpdbg/dtb.c
> +++ b/libpdbg/dtb.c
> @@ -30,18 +30,17 @@
>
> #include "fake.dt.h"
>
> -#include "p8-i2c.dt.h"
> -#include "p8-fsi.dt.h"
> -#include "p8-kernel.dt.h"
> -#include "p9w-fsi.dt.h"
> -#include "p9r-fsi.dt.h"
> -#include "p9z-fsi.dt.h"
> -#include "p9-kernel.dt.h"
> -#include "p8-host.dt.h"
> -#include "p9-host.dt.h"
> -#include "p8-cronus.dt.h"
> -#include "p9-cronus.dt.h"
> -#include "backend.dt.h"
> +#include "p9.dt.h"
> +#include "p8.dt.h"
> +
> +#include "obmc-backend.dt.h"
> +#include "host-backend.dt.h"
> +#include "cronus-backend.dt.h"
> +#include "p8-fsi-backend.dt.h"
> +#include "p8-i2c-backend.dt.h"
> +#include "p9w-fsi-backend.dt.h"
> +#include "p9r-fsi-backend.dt.h"
> +#include "p9z-fsi-backend.dt.h"
>
> #define AMI_BMC "/proc/ractrends/Helper/FwInfo"
> #define OPENFSI_BMC "/sys/bus/platform/devices/gpio-fsi/fsi0/"
> @@ -85,9 +84,9 @@ static void *ppc_target(void)
> FILE *cpuinfo;
>
> if (!strcmp(pdbg_backend_option, "p8"))
> - return &_binary_p8_host_dtb_o_start;
> + return &_binary_p8_dtb_o_start;
> else if (!strcmp(pdbg_backend_option, "p9"))
> - return &_binary_p9_host_dtb_o_start;
> + return &_binary_p9_dtb_o_start;
>
> cpuinfo = fopen("/proc/cpuinfo", "r");
> if (!cpuinfo)
> @@ -114,12 +113,12 @@ static void *ppc_target(void)
>
> if (strncmp(pos, "POWER8", 6) == 0) {
> pdbg_log(PDBG_INFO, "Found a POWER8 PPC host
> system\n");
> - return &_binary_p8_host_dtb_o_start;
> + return &_binary_p8_dtb_o_start;
> }
>
> if (strncmp(pos, "POWER9", 6) == 0) {
> pdbg_log(PDBG_INFO, "Found a POWER9 PPC host
> system\n");
> - return &_binary_p9_host_dtb_o_start;
> + return &_binary_p9_dtb_o_start;
> }
>
> pdbg_log(PDBG_ERROR, "Unsupported CPU type '%s'\n", pos);
> @@ -160,13 +159,13 @@ static void *bmc_target(void)
> switch(chip_id) {
> case CHIP_ID_P9:
> pdbg_log(PDBG_INFO, "Found a POWER9 OpenBMC based
> system\n");
> - return &_binary_p9_kernel_dtb_o_start;
> + return &_binary_p9_dtb_o_start;
> break;
>
> case CHIP_ID_P8:
> case CHIP_ID_P8P:
> pdbg_log(PDBG_INFO, "Found a POWER8/8+ OpenBMC based
> system\n");
> - return &_binary_p8_kernel_dtb_o_start;
> + return &_binary_p8_dtb_o_start;
> break;
>
> default:
> @@ -239,7 +238,7 @@ void *pdbg_default_dtb(void)
> case PDBG_BACKEND_I2C:
> /* I2C is only supported on POWER8 */
> pdbg_log(PDBG_INFO, "Found a POWER8 AMI BMC based
> system\n");
> - return &_binary_p8_i2c_dtb_o_start;
> + return &_binary_p8_dtb_o_start;
> break;
>
> case PDBG_BACKEND_KERNEL:
> @@ -254,13 +253,9 @@ void *pdbg_default_dtb(void)
> }
>
> if (!strcmp(pdbg_backend_option, "p8"))
> - return &_binary_p8_fsi_dtb_o_start;
> - else if (!strcmp(pdbg_backend_option, "p9w"))
> - return &_binary_p9w_fsi_dtb_o_start;
> - else if (!strcmp(pdbg_backend_option, "p9r"))
> - return &_binary_p9r_fsi_dtb_o_start;
> - else if (!strcmp(pdbg_backend_option, "p9z"))
> - return &_binary_p9z_fsi_dtb_o_start;
> + return &_binary_p8_dtb_o_start;
> + else if (!strncmp(pdbg_backend_option, "p9", 2))
> + return &_binary_p9_dtb_o_start;
> else {
> pdbg_log(PDBG_ERROR, "Invalid device type
> specified\n");
> pdbg_log(PDBG_ERROR, "Use 'p8' or
> 'p9r/p9w/p9z'\n");
> @@ -277,9 +272,9 @@ void *pdbg_default_dtb(void)
> }
>
> if (!strncmp(pdbg_backend_option, "p8", 2))
> - return &_binary_p8_cronus_dtb_o_start;
> + return &_binary_p8_dtb_o_start;
> else if (!strncmp(pdbg_backend_option, "p9", 2))
> - return &_binary_p9_cronus_dtb_o_start;
> + return &_binary_p9_dtb_o_start;
> else {
> pdbg_log(PDBG_ERROR, "Invalid device type
> specified\n");
> pdbg_log(PDBG_ERROR, "Use p8@<server> or
> p9@<server>\n");
> @@ -300,5 +295,49 @@ void *pdbg_default_dtb(void)
>
> void *pdbg_default_backend_dtb(void)
> {
> - return &_binary_backend_dtb_o_start;
> + char *dtb = getenv("PDBG_BACKEND_DTB");
> +
> + if (dtb)
> + return mmap_dtb(dtb);
> +
> + switch(pdbg_backend) {
> + case PDBG_BACKEND_HOST:
> + return &_binary_host_backend_dtb_o_start;
> + break;
> +
> + case PDBG_BACKEND_I2C:
> + return &_binary_p8_i2c_backend_dtb_o_start;
> + break;
> +
> + case PDBG_BACKEND_KERNEL:
> + return &_binary_obmc_backend_dtb_o_start;
> + break;
> +
> + case PDBG_BACKEND_FSI:
> + if (!strcmp(pdbg_backend_option, "p9w"))
> + return &_binary_p9w_fsi_backend_dtb_o_start;
> + else if (!strcmp(pdbg_backend_option, "p9r"))
> + return &_binary_p9r_fsi_backend_dtb_o_start;
> + else if (!strcmp(pdbg_backend_option, "p9z"))
> + return &_binary_p9z_fsi_backend_dtb_o_start;
> + else if (!strcmp(pdbg_backend_option, "p8"))
> + return &_binary_p8_fsi_backend_dtb_o_start;
> + else
> + /* pdbg_default_dtb() should already have
> + * logged an error */
> + return NULL;
> + break;
> +
> + case PDBG_BACKEND_CRONUS:
> + return &_binary_cronus_backend_dtb_o_start;
> + break;
> +
> + case PDBG_BACKEND_FAKE:
> + break;
> +
> + default:
> + assert(0);
> + }
> +
> + return NULL;
> }
> diff --git a/obmc-backend.dts.m4 b/obmc-backend.dts.m4
> new file mode 100644
> index 0000000..a28ef68
> --- /dev/null
> +++ b/obmc-backend.dts.m4
> @@ -0,0 +1,36 @@
> +/dts-v1/;
> +
> +/ {
> + fsi at 0 {
> + compatible = "ibm,kernel-fsi";
> + system-path = "/proc at 0/fsi at 0";
> + };
> +
> + pib at 0 {
> + compatible = "ibm,kernel-pib";
> + system-path = "/proc at 0/pib at 0";
> + device-path = "/dev/scom1";
> + };
> +
> + sbefifo at 0 {
> + compatible = "ibm,kernel-sbefifo";
> + device-path = "/dev/sbefifo1";
> + system-path = "/proc at 0/fsi at 0/sbefifo at 0";
> + };
> +
> + mem at 0 {
> + system-path = "/mem at 0";
> + target = "/proc at 0/fsi at 0/sbefifo at 0/sbefifo-mem at 0";
> + };
> +
> + fsi at 1 {
> + compatible = "ibm,kernel-fsi";
> + system-path = "/proc at 1/fsi at 0";
> + };
> +
> + pib at 1 {
> + compatible = "ibm,kernel-pib";
> + system-path = "/proc at 1/pib at 1";
> + device-path = "/dev/scom2";
> + };
> +};
> diff --git a/p8-fsi-backend.dts.m4 b/p8-fsi-backend.dts.m4
> new file mode 100644
> index 0000000..fa5f1f4
> --- /dev/null
> +++ b/p8-fsi-backend.dts.m4
> @@ -0,0 +1,32 @@
> +/dts-v1/;
> +
> +/ {
> + fsi at 0 {
> + compatible = "ibm,bmcfsi";
> +
> + /* GPIO pin definitions */
> + fsi_clk = <0x0 0x4>; /* A4 */
> + fsi_dat = <0x0 0x5>; /* A5 */
> + fsi_dat_en = <0x20 0x1e>; /* H6 */
> + fsi_enable = <0x0 0x18>; /* D0 */
> + cronus_sel = <0x0 0x6>; /* A6 */
> + clock_delay = <0x14>;
> +
> + system-path = "/proc at 0/fsi at 0";
> + };
> +
> + pib at 0 {
> + target = "/proc at 0/fsi at 0/pib at 0";
> + system-path = "/proc at 0/pib at 0";
> + };
> +
> + fsi at 1 {
> + target = "/proc at 0/pib at 0/opb at 0/hmfsi at 1";
> + system-path = "/proc at 1/fsi at 1";
> + };
> +
> + pib at 1 {
> + target = "/proc at 1/fsi at 1/pib at 1";
> + system-path = "/proc at 1/pib at 1";
> + };
> +};
> diff --git a/p8-i2c-backend.dts.m4 b/p8-i2c-backend.dts.m4
> new file mode 100644
> index 0000000..ffd0b06
> --- /dev/null
> +++ b/p8-i2c-backend.dts.m4
> @@ -0,0 +1,22 @@
> +/dts-v1/;
> +
> +/ {
> + pib at 0 {
> + compatible = "ibm,power8-i2c-slave";
> + bus = "/dev/i2c4";
> + reg = <0x50>;
> + index = <0x0>;
> +
> + system-path = "/proc at 0/pib at 0";
> + };
> +
> + fsi at 1 {
> + target = "/proc at 0/pib at 0/opb at 20010/hmfsi at 0";
> + system-path = "/proc at 1/fsi at 1";
> + };
> +
> + pib at 1 {
> + target = "/proc at 1/fsi at 1/pib at 1000";
> + system-path = "/proc at 1/pib at 1";
> + };
> +};
> diff --git a/p8-pib.dts.m4 b/p8-pib.dts.m4
> index 82d11d8..b648d3a 100644
> --- a/p8-pib.dts.m4
> +++ b/p8-pib.dts.m4
> @@ -52,4 +52,21 @@ nhtm at 2010880 {
> index = <0x0>;
> };
>
> +opb at 0 {
> + #address-cells = <0x1>;
> + #size-cells = <0x1>;
> + reg = <0x0 0x20010 0xa>;
> + compatible = "ibm,power8-opb";
> + index = <0x0>;
> +
> + hmfsi at 1 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> + compatible = "ibm,power8-opb-hmfsi";
> + reg = <0x180000 0x80000>;
> + port = <0x2>;
> + index = <0x1>;
> + };
> +};
> +
> PROC_CORES;
> diff --git a/p8.dts.m4 b/p8.dts.m4
> new file mode 100644
> index 0000000..320bd0c
> --- /dev/null
> +++ b/p8.dts.m4
> @@ -0,0 +1,71 @@
> +define(`PIB',`
> + pib@$1 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> + reg = <$1>;
> + index = <$1>;
> + class = "pib";
> + include(p8-pib.dts.m4)dnl
> + }')dnl
> +
> +define(`PROC',`
> + proc@$1 {
> + class = "proc";
> + index = <$1>;
> + PIB($1);
> +
> + fsi@$1 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> + class = "fsi";
> + index = <$1>;
> +
> + pib@$1 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> + reg = <0x0 0x1000 0x7>;
> + index = <$1>;
> + compatible = "ibm,fsi-pib";
> + };
> + };
> + }')dnl
> +
> +/dts-v1/;
> +
> +/ {
> + #address-cells = <0x1>;
> + #size-cells = <0x0>;
> +
> + PROC(0);
> + PROC(1);
> + PROC(2);
> + PROC(3);
> + PROC(4);
> + PROC(5);
> + PROC(6);
> + PROC(7);
> + PROC(8);
> + PROC(9);
> + PROC(10);
> + PROC(11);
> + PROC(12);
> + PROC(13);
> + PROC(14);
> + PROC(15);
> + PROC(16);
> + PROC(17);
> + PROC(18);
> + PROC(19);
> + PROC(20);
> + PROC(21);
> + PROC(22);
> + PROC(23);
> + PROC(24);
> + PROC(25);
> + PROC(26);
> + PROC(27);
> + PROC(28);
> + PROC(29);
> + PROC(30);
> + PROC(31);
> +};
> diff --git a/p9-fsi.dtsi.m4 b/p9-fsi.dtsi.m4
> deleted file mode 100644
> index afa7d39..0000000
> --- a/p9-fsi.dtsi.m4
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -
> -/ {
> - #address-cells = <0x1>;
> - #size-cells = <0x0>;
> -
> - fsi0: fsi at 0 {
> - #address-cells = <0x2>;
> - #size-cells = <0x1>;
> - compatible = "ibm,bmcfsi";
> - reg = <0x0 0x0 0x0>;
> -
> - index = <0x0>;
> - status = "mustexist";
> -
> - pib at 1000 {
> - #address-cells = <0x2>;
> - #size-cells = <0x1>;
> - reg = <0x0 0x1000 0x7>;
> - index = <0x0>;
> - compatible = "ibm,fsi-pib", "ibm,power9-fsi-
> pib";
> - include(p9-pib.dts.m4)dnl
> - };
> -
> - hmfsi at 100000 {
> - #address-cells = <0x2>;
> - #size-cells = <0x1>;
> - compatible = "ibm,fsi-hmfsi";
> - reg = <0x0 0x100000 0x8000>;
> - port = <0x1>;
> - index = <0x1>;
> -
> - pib at 1000 {
> - #address-cells = <0x2>;
> - #size-cells = <0x1>;
> - reg = <0x0 0x1000 0x7>;
> - index = <0x1>;
> - compatible = "ibm,fsi-pib",
> "ibm,power9-fsi-pib";
> - include(p9-pib.dts.m4)dnl
> - };
> - };
> -
> - };
> -};
> diff --git a/p9-pib.dts.m4 b/p9-pib.dts.m4
> index 3a99157..173fa2f 100644
> --- a/p9-pib.dts.m4
> +++ b/p9-pib.dts.m4
> @@ -35,6 +35,10 @@ index = <HEX(eval($1, 16))>;
> reg = <0x0 HEX(CHIPLET_BASE($1)) 0xfffff>;
> }')dnl
>
> +adu at 90000 {
> + compatible = "ibm,power9-adu";
> + reg = <0x0 0x90000 0x5>;
> +};
>
> htm at 5012880 {
> compatible = "ibm,power9-nhtm";
> diff --git a/p9.dts.m4 b/p9.dts.m4
> new file mode 100644
> index 0000000..25f15c0
> --- /dev/null
> +++ b/p9.dts.m4
> @@ -0,0 +1,80 @@
> +/dts-v1/;
> +
> +/ {
> + #address-cells = <0x1>;
> + #size-cells = <0x0>;
> +
> + proc at 0 {
> + index = <0x0>;
> + class = "proc";
> +
> + pib at 0 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> +
> + index = <0x0>;
> + class = "pib";
> + include(p9-pib.dts.m4)dnl
> + };
> +
> + fsi at 0 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> +
> + index = <0x0>;
> + class = "fsi";
> +
> + pib at 1000 {
> + reg = < 0x00 0x1000 0x07 >;
> + index = < 0x00 >;
> + compatible = "ibm,fsi-pib",
> "ibm,power9-fsi-pib";
> + };
> +
> + hmfsi at 100000 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> + compatible = "ibm,fsi-hmfsi";
> + reg = <0x0 0x100000 0x8000>;
> + port = <0x1>;
> + index = <0x1>;
> + };
> +
> + sbefifo at 2400 {
> + reg = <0x0 0x2400 0x7>;
> + index = <0x0>;
> +
> + sbefifo-mem at 0 {
> + index = <0x0>;
> + compatible = "ibm,sbefifo-mem";
> + };
> + };
> + };
> + };
> +
> + proc at 1 {
> + index = <0x1>;
> + class = "proc";
> +
> + pib at 1 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> +
> + index = <0x1>;
> + class = "pib";
> + include(p9-pib.dts.m4)dnl
> + };
> +
> + fsi at 0 {
> + #address-cells = <0x2>;
> + #size-cells = <0x1>;
> +
> + index = <0x1>;
> + class = "fsi";
> + };
> + };
> +
> + mem at 0 {
> + index = <0x0>;
> + class = "mem";
> + };
> +};
> diff --git a/p9r-fsi-backend.dts.m4 b/p9r-fsi-backend.dts.m4
> new file mode 100644
> index 0000000..1630823
> --- /dev/null
> +++ b/p9r-fsi-backend.dts.m4
> @@ -0,0 +1,32 @@
> +/dts-v1/;
> +
> +/ {
> + fsi at 0 {
> + compatible = "ibm,bmcfsi";
> +
> + /* GPIO pin definitions */
> + fsi_clk = <0x1e0 0x10>; /* AA0 */
> + fsi_dat = <0x1e0 0x12>; /* AA2 */
> + fsi_dat_en = <0x80 0xa>; /* R2 */
> + fsi_enable = <0x0 0x18>; /* D0 */
> + cronus_sel = <0x0 0x6>; /* A6 */
> + clock_delay = <0x14>;
> +
> + system-path = "/proc at 0/fsi at 0";
> + };
> +
> + pib at 0 {
> + target = "/proc at 0/fsi at 0/pib at 1000";
> + system-path = "/proc at 0/pib at 0";
> + };
> +
> + fsi at 1 {
> + target = "/proc at 0/fsi at 0/hmfsi at 0";
> + system-path = "/proc at 1/fsi at 1";
> + };
> +
> + pib at 1 {
> + target = "/proc at 1/fsi at 1/pib at 1000";
> + system-path = "/proc at 1/pib at 1";
> + };
> +};
> diff --git a/p9r-fsi.dts.m4 b/p9r-fsi.dts.m4
> deleted file mode 100644
> index 2165bae..0000000
> --- a/p9r-fsi.dts.m4
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -/dts-v1/;
> -
> -/include/ "p9-fsi.dtsi"
> -
> -/ {
> -};
> -
> -&fsi0 {
> - /* GPIO pin definitions */
> - fsi_clk = <0x1e0 0x10>; /* AA0 */
> - fsi_dat = <0x1e0 0x12>; /* AA2 */
> - fsi_dat_en = <0x80 0xa>; /* R2 */
> - fsi_enable = <0x0 0x18>; /* D0 */
> - cronus_sel = <0x0 0x6>; /* A6 */
> - clock_delay = <0x14>;
> -};
> diff --git a/p9w-fsi-backend.dts.m4 b/p9w-fsi-backend.dts.m4
> new file mode 100644
> index 0000000..2696459
> --- /dev/null
> +++ b/p9w-fsi-backend.dts.m4
> @@ -0,0 +1,32 @@
> +/dts-v1/;
> +
> +/ {
> + fsi at 0 {
> + compatible = "ibm,bmcfsi";
> +
> + /* GPIO pin definitions */
> + fsi_clk = <0x1e0 0x10>; /* AA0 */
> + fsi_dat = <0x20 0x0>; /* E0 */
> + fsi_dat_en = <0x80 0xa>; /* R2 */
> + fsi_enable = <0x0 0x18>; /* D0 */
> + cronus_sel = <0x0 0x6>; /* A6 */
> + clock_delay = <0x14>;
> +
> + system-path = "/proc at 0/fsi at 0";
> + };
> +
> + pib at 0 {
> + target = "/proc at 0/fsi at 0/pib at 1000";
> + system-path = "/proc at 0/pib at 0";
> + };
> +
> + fsi at 1 {
> + target = "/proc at 0/fsi at 0/hmfsi at 0";
> + system-path = "/proc at 1/fsi at 1";
> + };
> +
> + pib at 1 {
> + target = "/proc at 1/fsi at 1/pib at 1000";
> + system-path = "/proc at 1/pib at 1";
> + };
> +};
> diff --git a/p9w-fsi.dts.m4 b/p9w-fsi.dts.m4
> deleted file mode 100644
> index 224c665..0000000
> --- a/p9w-fsi.dts.m4
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -/dts-v1/;
> -
> -/include/ "p9-fsi.dtsi"
> -
> -/ {
> -};
> -
> -&fsi0 {
> - /* GPIO pin definitions */
> - fsi_clk = <0x1e0 0x10>; /* AA0 */
> - fsi_dat = <0x20 0x0>; /* E0 */
> - fsi_dat_en = <0x80 0xa>; /* R2 */
> - fsi_enable = <0x0 0x18>; /* D0 */
> - cronus_sel = <0x0 0x6>; /* A6 */
> - clock_delay = <0x14>;
> -};
> diff --git a/p9z-fsi-backend.dts.m4 b/p9z-fsi-backend.dts.m4
> new file mode 100644
> index 0000000..d0956cf
> --- /dev/null
> +++ b/p9z-fsi-backend.dts.m4
> @@ -0,0 +1,32 @@
> +/dts-v1/;
> +
> +/ {
> + fsi at 0 {
> + compatible = "ibm,bmcfsi";
> +
> + /* GPIO pin definitions */
> + fsi_clk = <0x0 0x13>; /* C3 */
> + fsi_dat = <0x0 0x12>; /* C2 */
> + fsi_dat_en = <0x78 0x16>; /* O6 */
> + fsi_enable = <0x0 0x18>; /* D0 */
> + cronus_sel = <0x78 0x1e>; /* P6 */
> + clock_delay = <0x14>;
> +
> + system-path = "/proc at 0/fsi at 0";
> + };
> +
> + pib at 0 {
> + target = "/proc at 0/fsi at 0/pib at 1000";
> + system-path = "/proc at 0/pib at 0";
> + };
> +
> + fsi at 1 {
> + target = "/proc at 0/fsi at 0/hmfsi at 0";
> + system-path = "/proc at 1/fsi at 1";
> + };
> +
> + pib at 1 {
> + target = "/proc at 1/fsi at 1/pib at 1000";
> + system-path = "/proc at 1/pib at 1";
> + };
> +};
> diff --git a/p9z-fsi.dts.m4 b/p9z-fsi.dts.m4
> deleted file mode 100644
> index 87ad5c2..0000000
> --- a/p9z-fsi.dts.m4
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -/dts-v1/;
> -
> -/include/ "p9-fsi.dtsi"
> -
> -/ {
> -};
> -
> -&fsi0 {
> - /* GPIO pin definitions */
> - fsi_clk = <0x0 0x13>; /* C3 */
> - fsi_dat = <0x0 0x12>; /* C2 */
> - fsi_dat_en = <0x78 0x16>; /* O6 */
> - fsi_enable = <0x0 0x18>; /* D0 */
> - cronus_sel = <0x78 0x1e>; /* P6 */
> - clock_delay = <0x14>;
> -};
> diff --git a/src/main.c b/src/main.c
> index 3a8b0a0..99e4097 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -582,6 +582,7 @@ int main(int argc, char *argv[])
> pdbg_set_backend(backend, device_node);
>
> pdbg_targets_init(NULL);
> + pdbg_backend_init(NULL);
>
> if (pathsel_count) {
> if (!path_target_parse(pathsel, pathsel_count))
> --
> 2.20.1
>
Amitay.
--
Art is man's attempt to improve on nature.
More information about the Pdbg
mailing list