summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaptor Engineering Development Team <support@raptorengineering.com>2019-04-19 06:57:15 +0000
committerRaptor Engineering Development Team <support@raptorengineering.com>2019-04-19 12:14:35 +0000
commit8ef16543ce4af45f55d6235dc9e69b700658fe72 (patch)
tree1f41c0f6e6dea5328604da64584ca71ba2f9dfcc
parent68ac85897b4918e5fd5383f450fdfcdffc6ff380 (diff)
downloadpdbg-8ef16543ce4af45f55d6235dc9e69b700658fe72.tar.gz
pdbg-8ef16543ce4af45f55d6235dc9e69b700658fe72.zip
Add Blackbird support
-rw-r--r--Makefile.am6
-rw-r--r--libpdbg/operations.h2
-rw-r--r--p9b-fsi.dts.m416
-rw-r--r--src/main.c3
-rw-r--r--src/options_arm.c5
5 files changed, 28 insertions, 4 deletions
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";
OpenPOWER on IntegriCloud