On 11/6/20 3:32 AM, Alistair Francis wrote:
> After claiming the interrupt by reading the claim register we want to
> clear the register to make sure the interrupt doesn't appear at the next
> read.
> 
> This matches the documentation for the claim register as it clears the
> pending bit (which we already do): 
> https://docs.opentitan.org/hw/ip/rv_plic/doc/index.html

"When an interrupt is claimed by a target the relevant bit of IP is
cleared." Correct.

Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>

> 
> This also matches the current hardware.
> 
> Signed-off-by: Alistair Francis <alistair.fran...@wdc.com>
> ---
>  hw/intc/ibex_plic.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/hw/intc/ibex_plic.c b/hw/intc/ibex_plic.c
> index f49fa67c91..235e6b88ff 100644
> --- a/hw/intc/ibex_plic.c
> +++ b/hw/intc/ibex_plic.c
> @@ -139,6 +139,9 @@ static uint64_t ibex_plic_read(void *opaque, hwaddr addr,
>          /* Return the current claimed interrupt */
>          ret = s->claim;
>  
> +        /* Clear the claimed interrupt */
> +        s->claim = 0x00000000;
> +
>          /* Update the interrupt status after the claim */
>          ibex_plic_update(s);
>      }
> 


Reply via email to