[Skiboot] [PATCH] mbox: Sanitize interrupts registers

Michael Neuling mikey at neuling.org
Fri Apr 21 11:59:57 AEST 2017


This is upstream as of 50e1921f98.


On Fri, 2017-04-21 at 08:59 +1000, Benjamin Herrenschmidt wrote:
> If some status interrupts are left unmasked by a previous
> firmware run (either HostBoot or some other version of skiboot),
> we fail to clear them and end up with a runaway SerIRQ.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> ---
> 
> Let's merge that now. It will be obsoleted by the v2 protocol
> implementation but we want a fix out ASAP.
> 
>  hw/lpc-mbox.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/lpc-mbox.c b/hw/lpc-mbox.c
> index fd107fb..21e6eee 100644
> --- a/hw/lpc-mbox.c
> +++ b/hw/lpc-mbox.c
> @@ -200,11 +200,18 @@ static struct lpc_client mbox_lpc_client = {
>  
>  static bool mbox_init_hw(void)
>  {
> -	/*
> -	 * Turns out there isn't anything to do.
> -	 * It might be a good idea to santise the registers though.
> -	 * TODO
> +	/* Disable all status interrupts except attentions */
> +	bmc_mbox_outb(0x00, MBOX_HOST_INT_EN_0);
> +	bmc_mbox_outb(MBOX_STATUS_ATTN, MBOX_HOST_INT_EN_1);
> +
> +	/* Cleanup host interrupt and status */
> +	bmc_mbox_outb(MBOX_CTRL_INT_STATUS, MBOX_HOST_CTRL);
> +
> +	/* Disable host control interrupt for now (will be
> +	 * re-enabled when needed). Clear BMC interrupts
>  	 */
> +	bmc_mbox_outb(MBOX_CTRL_INT_MASK, MBOX_BMC_CTRL);
> +
>  	return true;
>  }
> 
> 
> _______________________________________________
> Skiboot mailing list
> Skiboot at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot


More information about the Skiboot mailing list