[Pdbg] [PATCH 14/14] gdbserver: Add POWER10 support
Nicholas Piggin
npiggin at gmail.com
Mon Mar 14 15:17:35 AEDT 2022
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
src/pdbgproxy.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/pdbgproxy.c b/src/pdbgproxy.c
index e8aab70..b44aea4 100644
--- a/src/pdbgproxy.c
+++ b/src/pdbgproxy.c
@@ -104,6 +104,8 @@ static void detach(uint64_t *stack, void *priv)
}
#define POWER8_HID_ENABLE_ATTN PPC_BIT(31)
+#define POWER10_HID_ENABLE_ATTN PPC_BIT(3)
+#define POWER10_HID_FLUSH_ICACHE PPC_BIT(2)
static int set_attn(bool enable)
{
@@ -122,6 +124,17 @@ static int set_attn(bool enable)
return 0;
hid &= ~POWER8_HID_ENABLE_ATTN;
}
+ } else if (pdbg_target_compatible(thread_target, "ibm,power10-thread")) {
+ if (enable) {
+ if (hid & POWER10_HID_ENABLE_ATTN)
+ return 0;
+ hid |= POWER10_HID_ENABLE_ATTN;
+ } else {
+ if (!(hid & POWER10_HID_ENABLE_ATTN))
+ return 0;
+ hid &= ~POWER10_HID_ENABLE_ATTN;
+ }
+ hid |= POWER10_HID_FLUSH_ICACHE;
} else {
return -1;
}
@@ -572,9 +585,12 @@ static int gdbserver(uint16_t port)
}
//
- // Temporary until I can get this working a bit smoother on p9
- if (!pdbg_target_compatible(thread, "ibm,power8-thread")) {
- PR_ERROR("GDBSERVER is only available on POWER8\n");
+ // POWER9 appears to have problems with PSI interrupts when hitting
+ // an attn intstruction. Could just disallow breakpoints on P9.
+ //
+ if (!pdbg_target_compatible(thread, "ibm,power8-thread") &&
+ !pdbg_target_compatible(thread, "ibm,power10-thread")) {
+ PR_ERROR("GDBSERVER is only available on POWER8 and POWER10\n");
return -1;
}
--
2.23.0
More information about the Pdbg
mailing list