[Pdbg] [PATCH v2 3/7] libpdbg/p8chip.c: Only write the SP_STOP bit once

Nicholas Piggin npiggin at gmail.com
Tue Mar 12 12:49:16 AEDT 2019


The workbook recipe is to write SP_STOP once, then poll for status.

Also add a small delay between polling to give a reasonable timeout
and avoid hitting the scom bus hard for no good reason.

Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
 libpdbg/p8chip.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libpdbg/p8chip.c b/libpdbg/p8chip.c
index 61b1e25..b93e953 100644
--- a/libpdbg/p8chip.c
+++ b/libpdbg/p8chip.c
@@ -286,9 +286,11 @@ static int p8_thread_stop(struct thread *thread)
 	struct core *chip = target_to_core(
 		pdbg_target_require_parent("core", &thread->target));
 
+	/* Quiese active thread */
+	CHECK_ERR(pib_write(&thread->target, DIRECT_CONTROLS_REG, DIRECT_CONTROL_SP_STOP));
+
 	do {
-		/* Quiese active thread */
-		CHECK_ERR(pib_write(&thread->target, DIRECT_CONTROLS_REG, DIRECT_CONTROL_SP_STOP));
+		usleep(1);
 
 		/* Wait for thread to quiese */
 		CHECK_ERR(pib_read(&thread->target, RAS_STATUS_REG, &val));
-- 
2.20.1



More information about the Pdbg mailing list