[Skiboot] [PATCH v2 08/17] xive/p9: obsolete OPAL_XIVE_IRQ_*_VIA_FW flags

Oliver O'Halloran oohall at gmail.com
Tue Sep 24 15:43:06 AEST 2019


On Thu, 2019-09-12 at 19:22 +0200, Cédric Le Goater wrote:
> These were needed to workaround HW bugs in PHB4 LSIs of POWER9 DD1.0
> processors.
> 
> Signed-off-by: Cédric Le Goater <clg at kaod.org>
> ---
>  include/opal-api.h |  4 ++--
>  hw/xive.c          | 12 ------------
>  2 files changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/include/opal-api.h b/include/opal-api.h
> index ad913bfa382d..e7156f36a756 100644
> --- a/include/opal-api.h
> +++ b/include/opal-api.h
> @@ -1149,8 +1149,8 @@ enum {
>  	OPAL_XIVE_IRQ_STORE_EOI		= 0x00000002,
>  	OPAL_XIVE_IRQ_LSI		= 0x00000004,
>  	OPAL_XIVE_IRQ_SHIFT_BUG		= 0x00000008,
> -	OPAL_XIVE_IRQ_MASK_VIA_FW	= 0x00000010,
> -	OPAL_XIVE_IRQ_EOI_VIA_FW	= 0x00000020,
> +	OPAL_XIVE_IRQ_MASK_VIA_FW	= 0x00000010, /* DD1.0 workaround */
> +	OPAL_XIVE_IRQ_EOI_VIA_FW	= 0x00000020, /* DD1.0 workaround */

This should probably specify that it's a P9 DD1.0 workaround.

Does the kernel still respect these flags? If so we might want to keep
them supported in case we need them as a workaround for future bugs.

>  };
>  
>  /* Flags for OPAL_XIVE_GET/SET_QUEUE_INFO */
> diff --git a/hw/xive.c b/hw/xive.c
> index 2f184dcee5d2..6f7d36ad4ca0 100644
> --- a/hw/xive.c
> +++ b/hw/xive.c
> @@ -3630,18 +3630,6 @@ static int64_t opal_xive_get_irq_info(uint32_t girq,
>  	if (out_flags)
>  		*out_flags = xive_convert_irq_flags(s->flags);
>  
> -	/*
> -	 * If the orig source has a set_xive callback, then set
> -	 * OPAL_XIVE_IRQ_MASK_VIA_FW as masking/unmasking requires
> -	 * source specific workarounds. Same with EOI.
> -	 */
> -	if (out_flags && s->orig_ops) {
> -		if (s->orig_ops->set_xive)
> -			*out_flags |= OPAL_XIVE_IRQ_MASK_VIA_FW;
> -		if (s->orig_ops->eoi)
> -			*out_flags |= OPAL_XIVE_IRQ_EOI_VIA_FW;
> -	}
> -
>  	idx = girq - s->esb_base;
>  
>  	if (out_esb_shift)



More information about the Skiboot mailing list