[RFC PATCH 4/9] lib: sbi: Delegate PMU counter overflow interrupt to S mode
Anup Patel
anup at brainfault.org
Wed Sep 22 21:49:29 PDT 2021
On Fri, Sep 10, 2021 at 2:10 AM Atish Patra <atish.patra at wdc.com> wrote:
>
> We don't handle PMU counters for now. Delete the overflow counter to
> S-mode always.
I think you meant "...OpenSBI does not use PMU counters for now...".
>
> Signed-off-by: Atish Patra <atish.patra at wdc.com>
Otherwise, it looks good to me.
Reviewed-by: Anup Patel <anup.patel at wdc.com>
Regards,
Anup
> ---
> include/sbi/riscv_encoding.h | 2 ++
> lib/sbi/sbi_hart.c | 3 +++
> 2 files changed, 5 insertions(+)
>
> diff --git a/include/sbi/riscv_encoding.h b/include/sbi/riscv_encoding.h
> index f01c6cf0264d..c2cf0f4d69f4 100644
> --- a/include/sbi/riscv_encoding.h
> +++ b/include/sbi/riscv_encoding.h
> @@ -86,6 +86,7 @@
> #define IRQ_VS_EXT 10
> #define IRQ_M_EXT 11
> #define IRQ_S_GEXT 12
> +#define IRQ_PMU_OVF 13
>
> #define MIP_SSIP (_UL(1) << IRQ_S_SOFT)
> #define MIP_VSSIP (_UL(1) << IRQ_VS_SOFT)
> @@ -97,6 +98,7 @@
> #define MIP_VSEIP (_UL(1) << IRQ_VS_EXT)
> #define MIP_MEIP (_UL(1) << IRQ_M_EXT)
> #define MIP_SGEIP (_UL(1) << IRQ_S_GEXT)
> +#define MIP_LCOFIP (_UL(1) << IRQ_PMU_OVF)
>
> #define SIP_SSIP MIP_SSIP
> #define SIP_STIP MIP_STIP
> diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
> index 44b8dfd1b551..6076bea2470d 100644
> --- a/lib/sbi/sbi_hart.c
> +++ b/lib/sbi/sbi_hart.c
> @@ -115,6 +115,9 @@ static int delegate_traps(struct sbi_scratch *scratch)
>
> /* Send M-mode interrupts and most exceptions to S-mode */
> interrupts = MIP_SSIP | MIP_STIP | MIP_SEIP;
> + if (sbi_hart_has_feature(scratch, SBI_HART_HAS_SSCOF))
> + interrupts |= MIP_LCOFIP;
> +
> exceptions = (1U << CAUSE_MISALIGNED_FETCH) | (1U << CAUSE_BREAKPOINT) |
> (1U << CAUSE_USER_ECALL);
> if (sbi_platform_has_mfaults_delegation(plat))
> --
> 2.31.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
More information about the opensbi
mailing list