diff options
author | Atish Patra <atish.patra@wdc.com> | 2021-07-10 09:18:14 -0700 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2021-07-11 10:38:23 +0530 |
commit | 764a17d852a8cc80050016a6e2ccdcaddd43f68c (patch) | |
tree | 03db9a920bfd843301af4c7eecac02bb76921eb1 /lib/sbi/sbi_illegal_insn.c | |
parent | 37f9b0f2f265b2f312d974fb8d100b85b3faf94f (diff) |
lib: sbi: Implement firmware counters
RISC-V SBI v0.3 specification defines a set of firmware events that can
provide additional information about the current firmware context. All
of the firmware event monitoring are enabled now. The firmware
events must be defined as raw perf event with MSB set as specified in the
specification.
Reviewed-by: Anup Patel <anup.patel@wdc.com>
Signed-off-by: Atish Patra <atish.patra@wdc.com>
Diffstat (limited to 'lib/sbi/sbi_illegal_insn.c')
-rw-r--r-- | lib/sbi/sbi_illegal_insn.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/sbi/sbi_illegal_insn.c b/lib/sbi/sbi_illegal_insn.c index 9af3d24..bfe7d61 100644 --- a/lib/sbi/sbi_illegal_insn.c +++ b/lib/sbi/sbi_illegal_insn.c @@ -13,6 +13,7 @@ #include <sbi/sbi_emulate_csr.h> #include <sbi/sbi_error.h> #include <sbi/sbi_illegal_insn.h> +#include <sbi/sbi_pmu.h> #include <sbi/sbi_trap.h> #include <sbi/sbi_unpriv.h> @@ -129,6 +130,7 @@ int sbi_illegal_insn_handler(ulong insn, struct sbi_trap_regs *regs) * instruction trap. */ + sbi_pmu_ctr_incr_fw(SBI_PMU_FW_ILLEGAL_INSN); if (unlikely((insn & 3) != 3)) { insn = sbi_get_insn(regs->mepc, &uptrap); if (uptrap.cause) { |