[Pdbg] [PATCH] libpdbg/p9chip: use SPWKUP_FSP instead of SPWKUP_OTR

Mahesh Jagannath Salgaonkar mahesh at linux.vnet.ibm.com
Mon Jul 30 15:09:50 AEST 2018


On 07/26/2018 04:09 PM, Nicholas Piggin wrote:
> Dean Sanner notes that pdbg should not use the OTR special wakeup
> register, as it is used by the PM complex (i.e., SGPE, CME, PGPE).
> It should use the FSP register instead, which is reserved for service
> processor firmware, and nothing else in OpenBMC uses this at the
> moment.
> 
> In theory when pdbg is used via the host, it should be using the HYP
> register via some OPAL arbitration mechanism (OPAL being the owner of
> the HYP register), but in the absence of any of that mechanism, FSP
> is the best option.
> 
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> ---
>  libpdbg/p9chip.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/libpdbg/p9chip.c b/libpdbg/p9chip.c
> index c5de3bb..3a7ff8a 100644
> --- a/libpdbg/p9chip.c
> +++ b/libpdbg/p9chip.c
> @@ -71,7 +71,7 @@
>  #define  NET_CTRL0_FENCE_EN 		PPC_BIT(18)
>  #define NET_CTRL0_WOR	0xf0042
>  #define PPM_GPMMR	0xf0100
> -#define PPM_SPWKUP_OTR	0xf010a
> +#define PPM_SPWKUP_FSP	0xf010b

>  #define PPM_SSHOTR	0xf0113

Now that we are using FSP register to assert special wakeup, shouldn't
we also change above to 0xf0111 (STOP_STATE_HIST_FSP_REG) for special
wakeup DONE bit check ?

Thanks,
-Mahesh.

>  #define  SPECIAL_WKUP_DONE PPC_BIT(1)
> 
> @@ -468,7 +468,7 @@ static int p9_core_probe(struct pdbg_target *target)
>  	if (!(value & NET_CTRL0_CHIPLET_ENABLE))
>  		return -1;
> 
> -	CHECK_ERR(pib_write(target, PPM_SPWKUP_OTR, PPC_BIT(0)));
> +	CHECK_ERR(pib_write(target, PPM_SPWKUP_FSP, PPC_BIT(0)));
>  	do {
>  		usleep(1000);
>  		CHECK_ERR(pib_read(target, PPM_SSHOTR, &value));
> @@ -486,7 +486,7 @@ static int p9_core_probe(struct pdbg_target *target)
>  static void p9_core_release(struct pdbg_target *target)
>  {
>  	usleep(1); /* enforce small delay before and after it is cleared */
> -	pib_write(target, PPM_SPWKUP_OTR, 0);
> +	pib_write(target, PPM_SPWKUP_FSP, 0);
>  	usleep(10000);
>  }
> 



More information about the Pdbg mailing list