From patchwork Tue Aug 6 01:37:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Popple X-Patchwork-Id: 1142531 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 462cj40zj1z9sN4 for ; Tue, 6 Aug 2019 11:38:16 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=popple.id.au Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 462cj35pBWzDqWW for ; Tue, 6 Aug 2019 11:38:15 +1000 (AEST) X-Original-To: pdbg@lists.ozlabs.org Delivered-To: pdbg@lists.ozlabs.org Received: from ozlabs.org (bilbo.ozlabs.org [203.11.71.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 462chR07BtzDqXW for ; Tue, 6 Aug 2019 11:37:43 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=popple.id.au Received: from authenticated.ozlabs.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ozlabs.org (Postfix) with ESMTPSA id 462chQ2K9sz9sN1; Tue, 6 Aug 2019 11:37:42 +1000 (AEST) From: Alistair Popple To: pdbg@lists.ozlabs.org Date: Tue, 6 Aug 2019 11:37:23 +1000 Message-Id: <20190806013723.4047-13-alistair@popple.id.au> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190806013723.4047-1-alistair@popple.id.au> References: <20190806013723.4047-1-alistair@popple.id.au> MIME-Version: 1.0 Subject: [Pdbg] [RFC 12/12] libpdbg: Split system and backend definitions X-BeenThere: pdbg@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "mailing list for https://github.com/open-power/pdbg development" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: amitay@ozlabs.org Errors-To: pdbg-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Pdbg" Signed-off-by: Alistair Popple --- 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@0 { + compatible = "ibm,cronus-fsi"; + system-path = "/proc@0/fsi@0"; + }; + + pib@0 { + compatible = "ibm,cronus-pib"; + system-path = "/proc@0/pib@0"; + }; + + mem@0 { + system-path = "/mem@0"; + target = "/proc@0/pib@0/adu@90000"; + }; + + fsi@1 { + compatible = "ibm,cronus-fsi"; + system-path = "/proc@1/fsi@0"; + }; + + pib@1 { + compatible = "ibm,cronus-pib"; + system-path = "/proc@1/pib@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@ or p9@\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@0 { + compatible = "ibm,kernel-fsi"; + system-path = "/proc@0/fsi@0"; + }; + + pib@0 { + compatible = "ibm,kernel-pib"; + system-path = "/proc@0/pib@0"; + device-path = "/dev/scom1"; + }; + + sbefifo@0 { + compatible = "ibm,kernel-sbefifo"; + device-path = "/dev/sbefifo1"; + system-path = "/proc@0/fsi@0/sbefifo@0"; + }; + + mem@0 { + system-path = "/mem@0"; + target = "/proc@0/fsi@0/sbefifo@0/sbefifo-mem@0"; + }; + + fsi@1 { + compatible = "ibm,kernel-fsi"; + system-path = "/proc@1/fsi@0"; + }; + + pib@1 { + compatible = "ibm,kernel-pib"; + system-path = "/proc@1/pib@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@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@0/fsi@0"; + }; + + pib@0 { + target = "/proc@0/fsi@0/pib@0"; + system-path = "/proc@0/pib@0"; + }; + + fsi@1 { + target = "/proc@0/pib@0/opb@0/hmfsi@1"; + system-path = "/proc@1/fsi@1"; + }; + + pib@1 { + target = "/proc@1/fsi@1/pib@1"; + system-path = "/proc@1/pib@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@0 { + compatible = "ibm,power8-i2c-slave"; + bus = "/dev/i2c4"; + reg = <0x50>; + index = <0x0>; + + system-path = "/proc@0/pib@0"; + }; + + fsi@1 { + target = "/proc@0/pib@0/opb@20010/hmfsi@0"; + system-path = "/proc@1/fsi@1"; + }; + + pib@1 { + target = "/proc@1/fsi@1/pib@1000"; + system-path = "/proc@1/pib@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@2010880 { index = <0x0>; }; +opb@0 { + #address-cells = <0x1>; + #size-cells = <0x1>; + reg = <0x0 0x20010 0xa>; + compatible = "ibm,power8-opb"; + index = <0x0>; + + hmfsi@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@0 { - #address-cells = <0x2>; - #size-cells = <0x1>; - compatible = "ibm,bmcfsi"; - reg = <0x0 0x0 0x0>; - - index = <0x0>; - status = "mustexist"; - - pib@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@100000 { - #address-cells = <0x2>; - #size-cells = <0x1>; - compatible = "ibm,fsi-hmfsi"; - reg = <0x0 0x100000 0x8000>; - port = <0x1>; - index = <0x1>; - - pib@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 = ; reg = <0x0 HEX(CHIPLET_BASE($1)) 0xfffff>; }')dnl +adu@90000 { + compatible = "ibm,power9-adu"; + reg = <0x0 0x90000 0x5>; +}; htm@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@0 { + index = <0x0>; + class = "proc"; + + pib@0 { + #address-cells = <0x2>; + #size-cells = <0x1>; + + index = <0x0>; + class = "pib"; + include(p9-pib.dts.m4)dnl + }; + + fsi@0 { + #address-cells = <0x2>; + #size-cells = <0x1>; + + index = <0x0>; + class = "fsi"; + + pib@1000 { + reg = < 0x00 0x1000 0x07 >; + index = < 0x00 >; + compatible = "ibm,fsi-pib", "ibm,power9-fsi-pib"; + }; + + hmfsi@100000 { + #address-cells = <0x2>; + #size-cells = <0x1>; + compatible = "ibm,fsi-hmfsi"; + reg = <0x0 0x100000 0x8000>; + port = <0x1>; + index = <0x1>; + }; + + sbefifo@2400 { + reg = <0x0 0x2400 0x7>; + index = <0x0>; + + sbefifo-mem@0 { + index = <0x0>; + compatible = "ibm,sbefifo-mem"; + }; + }; + }; + }; + + proc@1 { + index = <0x1>; + class = "proc"; + + pib@1 { + #address-cells = <0x2>; + #size-cells = <0x1>; + + index = <0x1>; + class = "pib"; + include(p9-pib.dts.m4)dnl + }; + + fsi@0 { + #address-cells = <0x2>; + #size-cells = <0x1>; + + index = <0x1>; + class = "fsi"; + }; + }; + + mem@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@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@0/fsi@0"; + }; + + pib@0 { + target = "/proc@0/fsi@0/pib@1000"; + system-path = "/proc@0/pib@0"; + }; + + fsi@1 { + target = "/proc@0/fsi@0/hmfsi@0"; + system-path = "/proc@1/fsi@1"; + }; + + pib@1 { + target = "/proc@1/fsi@1/pib@1000"; + system-path = "/proc@1/pib@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@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@0/fsi@0"; + }; + + pib@0 { + target = "/proc@0/fsi@0/pib@1000"; + system-path = "/proc@0/pib@0"; + }; + + fsi@1 { + target = "/proc@0/fsi@0/hmfsi@0"; + system-path = "/proc@1/fsi@1"; + }; + + pib@1 { + target = "/proc@1/fsi@1/pib@1000"; + system-path = "/proc@1/pib@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@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@0/fsi@0"; + }; + + pib@0 { + target = "/proc@0/fsi@0/pib@1000"; + system-path = "/proc@0/pib@0"; + }; + + fsi@1 { + target = "/proc@0/fsi@0/hmfsi@0"; + system-path = "/proc@1/fsi@1"; + }; + + pib@1 { + target = "/proc@1/fsi@1/pib@1000"; + system-path = "/proc@1/pib@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))