[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 1/1] hw/intc/ibex_plic: Clear the claim register when read
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v1 1/1] hw/intc/ibex_plic: Clear the claim register when read |
Date: |
Fri, 6 Nov 2020 15:20:29 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1 |
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é <f4bug@amsat.org>
>
> This also matches the current hardware.
>
> Signed-off-by: Alistair Francis <alistair.francis@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);
> }
>