[Pdbg] [PATCH v2 3/7] libpdbg/p8chip.c: Only write the SP_STOP bit once
Alistair Popple
alistair at popple.id.au
Tue Mar 26 12:03:21 AEDT 2019
The POWER8 EKB does do retries for ramming which is where this code came from,
however retries are not done for all cases of SP_STOP in the EKB so following
the workbook is probably best.
- Alistair
On Tuesday, 12 March 2019 11:49:16 AM AEDT Nicholas Piggin wrote:
> 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));
More information about the Pdbg
mailing list