[Pdbg] [PATCH] p8chip: Enable SRESET for P8

Alistair Popple alistair at popple.id.au
Tue Feb 5 13:17:59 AEDT 2019


How well does this actually work for you? I believe the reason SRESET was not 
enabled for P8 is that there are HW limitations preventing it from working 
correctly in all circumstances. The work around (which we have never had time 
to implement) was going to use instructions to stop execution and emulate what 
SRESET should do.

Nick do you remember where we got to with SRESET for triggering a kdump on P8?

- Alistair

On Monday, 4 February 2019 1:52:46 PM AEDT Artem Senichev wrote:
> Add possibility to use NMI SRESET signal to initiate memory dumping
> with kdump.
> Despite broken implementation of SRESET handler in OPAL it's possible to use
> this signal in case of crash of the host OS.
> https://lists.ozlabs.org/pipermail/openpower-firmware/2018-April/000220.html
> 
> Signed-off-by: Artem Senichev <a.senichev at gmail.com>
> ---
>  libpdbg/p8chip.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libpdbg/p8chip.c b/libpdbg/p8chip.c
> index 914c335..5b52033 100644
> --- a/libpdbg/p8chip.c
> +++ b/libpdbg/p8chip.c
> @@ -29,6 +29,7 @@
>  #define RAS_STATUS_TIMEOUT	100
> 
>  #define DIRECT_CONTROLS_REG    		0x0
> +#define  DIRECT_CONTROL_SP_SRESET	PPC_BIT(60)
>  #define  DIRECT_CONTROL_SP_STEP		PPC_BIT(61)
>  #define  DIRECT_CONTROL_SP_START 	PPC_BIT(62)
>  #define  DIRECT_CONTROL_SP_STOP 	PPC_BIT(63)
> @@ -339,8 +340,8 @@ static int p8_thread_start(struct thread *thread)
> 
>  static int p8_thread_sreset(struct thread *thread)
>  {
> -	/* Broken on p8 */
> -	return 1;
> +	CHECK_ERR(pib_write(&thread->target, DIRECT_CONTROLS_REG,
> DIRECT_CONTROL_SP_SRESET)); +	return 0;
>  }
> 
>  static int p8_ram_setup(struct thread *thread)




More information about the Pdbg mailing list