summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am5
-rw-r--r--libpdbg/operations.h2
-rw-r--r--p9t-fsi.dts.m416
-rw-r--r--src/main.c5
-rw-r--r--src/options_arm.c5
5 files changed, 30 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index f1e06f6..2a581d2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,6 +38,7 @@ EXTRA_DIST = \
p9-kernel.dts.m4 \
p9-pib.dts.m4 \
p9r-fsi.dts.m4 \
+ p9t-fsi.dts.m4 \
p9w-fsi.dts.m4 \
p9z-fsi.dts.m4 \
template.S \
@@ -50,7 +51,8 @@ EXTRA_DIST = \
if TARGET_ARM
DT_ARM = p8-fsi.dts p8-i2c.dts p8-kernel.dts \
- p9w-fsi.dts p9r-fsi.dts p9z-fsi.dts p9-kernel.dts
+ p9w-fsi.dts p9r-fsi.dts p9t-fsi.dts \
+ p9z-fsi.dts p9-kernel.dts
ARCH_FLAGS="-DTARGET_ARM=1"
endif
@@ -241,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
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
%.dtb: %.dts
diff --git a/libpdbg/operations.h b/libpdbg/operations.h
index 867f997..6af3718 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_P9Z};
+enum fsi_system_type {FSI_SYSTEM_P8, FSI_SYSTEM_P9W, FSI_SYSTEM_P9R, FSI_SYSTEM_P9T, FSI_SYSTEM_P9Z};
enum chip_type get_chip_type(uint64_t chip_id);
#endif
diff --git a/p9t-fsi.dts.m4 b/p9t-fsi.dts.m4
new file mode 100644
index 0000000..2165bae
--- /dev/null
+++ b/p9t-fsi.dts.m4
@@ -0,0 +1,16 @@
+/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/src/main.c b/src/main.c
index d5f9385..4b5eacf 100644
--- a/src/main.c
+++ b/src/main.c
@@ -53,6 +53,7 @@
#include "p8-kernel.dt.h"
#include "p9w-fsi.dt.h"
#include "p9r-fsi.dt.h"
+#include "p9t-fsi.dt.h"
#include "p9z-fsi.dt.h"
#include "p9-kernel.dt.h"
#endif
@@ -553,6 +554,10 @@ static bool target_selection(void)
pdbg_targets_init(&_binary_p9w_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"))
+ pdbg_targets_init(&_binary_p9t_fsi_dtb_o_start);
+ else if (!strcmp(device_node, "p9t"))
+ pdbg_targets_init(&_binary_p9t_fsi_dtb_o_start);
else if (!strcmp(device_node, "p9z"))
pdbg_targets_init(&_binary_p9z_fsi_dtb_o_start);
else {
diff --git a/src/options_arm.c b/src/options_arm.c
index 0dbc731..ac23849 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 p9z\n");
+ fprintf(stream, "fsi: p8 p9w p9r p9t p9z\n");
}
static const char *default_kernel_target(void)
@@ -116,6 +116,9 @@ static const char *default_fsi_target(void)
if (strstr(line, "romulus"))
return "p9r";
+ if (strstr(line, "talos"))
+ return "p9t";
+
if (strstr(line, "zaius"))
return "p9z";
OpenPOWER on IntegriCloud