From 8ef16543ce4af45f55d6235dc9e69b700658fe72 Mon Sep 17 00:00:00 2001 From: Raptor Engineering Development Team Date: Fri, 19 Apr 2019 06:57:15 +0000 Subject: Add Blackbird support --- Makefile.am | 6 ++++-- libpdbg/operations.h | 2 +- p9b-fsi.dts.m4 | 16 ++++++++++++++++ src/main.c | 3 +++ src/options_arm.c | 5 ++++- 5 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 p9b-fsi.dts.m4 diff --git a/Makefile.am b/Makefile.am index 2a581d2..f5f1a43 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,6 +37,7 @@ EXTRA_DIST = \ p9-host.dts.m4 \ p9-kernel.dts.m4 \ p9-pib.dts.m4 \ + p9b-fsi.dts.m4 \ p9r-fsi.dts.m4 \ p9t-fsi.dts.m4 \ p9w-fsi.dts.m4 \ @@ -51,8 +52,8 @@ EXTRA_DIST = \ if TARGET_ARM DT_ARM = p8-fsi.dts p8-i2c.dts p8-kernel.dts \ - p9w-fsi.dts p9r-fsi.dts p9t-fsi.dts \ - p9z-fsi.dts p9-kernel.dts + p9w-fsi.dts p9b-fsi.dts p9r-fsi.dts \ + p9t-fsi.dts p9z-fsi.dts p9-kernel.dts ARCH_FLAGS="-DTARGET_ARM=1" endif @@ -242,6 +243,7 @@ RAGEL_V_0 = @echo " RAGEL " $@; p9-fsi.dtsi: p9-fsi.dtsi.m4 p9-pib.dts.m4 p9w-fsi.dts: p9w-fsi.dts.m4 p9-fsi.dtsi +p9b-fsi.dts: p9b-fsi.dts.m4 p9-fsi.dtsi p9r-fsi.dts: p9r-fsi.dts.m4 p9-fsi.dtsi p9t-fsi.dts: p9t-fsi.dts.m4 p9-fsi.dtsi p9z-fsi.dts: p9z-fsi.dts.m4 p9-fsi.dtsi diff --git a/libpdbg/operations.h b/libpdbg/operations.h index 6af3718..e06f055 100644 --- a/libpdbg/operations.h +++ b/libpdbg/operations.h @@ -71,7 +71,7 @@ #define MXSPR_SPR(opcode) (((opcode >> 16) & 0x1f) | ((opcode >> 6) & 0x3e0)) -enum fsi_system_type {FSI_SYSTEM_P8, FSI_SYSTEM_P9W, FSI_SYSTEM_P9R, FSI_SYSTEM_P9T, FSI_SYSTEM_P9Z}; +enum fsi_system_type {FSI_SYSTEM_P8, FSI_SYSTEM_P9W, FSI_SYSTEM_P9B, FSI_SYSTEM_P9R, FSI_SYSTEM_P9T, FSI_SYSTEM_P9Z}; enum chip_type get_chip_type(uint64_t chip_id); #endif diff --git a/p9b-fsi.dts.m4 b/p9b-fsi.dts.m4 new file mode 100644 index 0000000..2c1c984 --- /dev/null +++ b/p9b-fsi.dts.m4 @@ -0,0 +1,16 @@ +/dts-v1/; + +/include/ "p9-fsi.dtsi" + +/ { +}; + +&fsi0 { + /* GPIO pin definitions */ + fsi_clk = <0x24 0x3>; /* H3 */ + fsi_dat = <0x24 0x2>; /* H2 */ + fsi_dat_en = <0x0 0x6>; /* A6 */ + fsi_enable = <0x0 0x18>; /* D0 */ + cronus_sel = <0x24 0x1>; /* H1 */ + clock_delay = <0x14>; +}; diff --git a/src/main.c b/src/main.c index 4b5eacf..789b95c 100644 --- a/src/main.c +++ b/src/main.c @@ -52,6 +52,7 @@ #include "p8-fsi.dt.h" #include "p8-kernel.dt.h" #include "p9w-fsi.dt.h" +#include "p9b-fsi.dt.h" #include "p9r-fsi.dt.h" #include "p9t-fsi.dt.h" #include "p9z-fsi.dt.h" @@ -552,6 +553,8 @@ static bool target_selection(void) pdbg_targets_init(&_binary_p8_fsi_dtb_o_start); else if (!strcmp(device_node, "p9w")) pdbg_targets_init(&_binary_p9w_fsi_dtb_o_start); + else if (!strcmp(device_node, "p9b")) + pdbg_targets_init(&_binary_p9b_fsi_dtb_o_start); else if (!strcmp(device_node, "p9r")) pdbg_targets_init(&_binary_p9r_fsi_dtb_o_start); else if (!strcmp(device_node, "p9t")) diff --git a/src/options_arm.c b/src/options_arm.c index ac23849..0adc0f2 100644 --- a/src/options_arm.c +++ b/src/options_arm.c @@ -51,7 +51,7 @@ void print_targets(FILE *stream) { fprintf(stream, "kernel: No target is necessary\n"); fprintf(stream, "i2c: No target is necessary\n"); - fprintf(stream, "fsi: p8 p9w p9r p9t p9z\n"); + fprintf(stream, "fsi: p8 p9w p9b p9r p9t p9z\n"); } static const char *default_kernel_target(void) @@ -113,6 +113,9 @@ static const char *default_fsi_target(void) if (strstr(line, "witherspoon")) return "p9w"; + if (strstr(line, "blackbird")) + return "p9b"; + if (strstr(line, "romulus")) return "p9r"; -- cgit v1.2.1