[Pdbg] [PATCH v4 10/13] libpdbg: Use sbe control to sreset threads if sbe is available
Amitay Isaacs
amitay at ozlabs.org
Wed Jul 17 14:08:49 AEST 2019
Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
---
libpdbg/chip.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/libpdbg/chip.c b/libpdbg/chip.c
index 03de44f..67e3afa 100644
--- a/libpdbg/chip.c
+++ b/libpdbg/chip.c
@@ -156,8 +156,26 @@ int thread_sreset(struct pdbg_target *thread_target)
int thread_sreset_all(void)
{
- struct pdbg_target *thread;
- int rc = 0;
+ struct pdbg_target *pib, *thread;
+ int rc = 0, count = 0;
+
+ pdbg_for_each_class_target("pib", pib) {
+ struct sbefifo *sbefifo;
+
+ sbefifo = pib_to_sbefifo(pib);
+ if (!sbefifo)
+ break;
+
+ /*
+ * core_id = 0xff (all SMT4 cores)
+ * thread_id = 0xf (all 4 threads in the SMT4 core)
+ */
+ rc |= sbefifo->thread_sreset(sbefifo, 0xff, 0xf);
+ count++;
+ }
+
+ if (count > 0)
+ return rc;
pdbg_for_each_class_target("thread", thread) {
rc |= thread_sreset(thread);
--
2.21.0
More information about the Pdbg
mailing list