Browse Source

Added SBI_WRITE_PERF_CNT

pull/97/head
Alex Solomatnikov 8 years ago
parent
commit
dd9a83b2a7
  1. 3
      machine/mcall.h
  2. 23
      machine/mtrap.c

3
machine/mcall.h

@ -11,6 +11,7 @@
#define SBI_REMOTE_SFENCE_VMA_ASID 7
#define SBI_SHUTDOWN 8
#define SBI_READ_PERF_CNT 9
#define SBI_WRITE_PERF_CFG 10
#define SBI_WRITE_PERF_CNT 10
#define SBI_WRITE_PERF_CFG 11
#endif

23
machine/mtrap.c

@ -108,6 +108,26 @@ static uintptr_t mcall_read_perf_cnt(uintptr_t id)
return -ENOSYS;
}
static uintptr_t mcall_write_perf_cnt(uintptr_t id, uintptr_t val)
{
switch (id)
{
case 0:
write_csr(mcycle, val);
return 0;
case 1:
write_csr(minstret, val);
return 0;
case 2:
write_csr(mhpmcounter3, val);
return 0;
case 3:
write_csr(mhpmcounter4, val);
return 0;
}
return -ENOSYS;
}
static uintptr_t mcall_write_perf_cfg(uintptr_t id, uintptr_t val)
{
switch (id)
@ -198,6 +218,9 @@ send_ipi:
case SBI_READ_PERF_CNT:
retval = mcall_read_perf_cnt(arg0);
break;
case SBI_WRITE_PERF_CNT:
retval = mcall_write_perf_cnt(arg0, arg1);
break;
case SBI_WRITE_PERF_CFG:
retval = mcall_write_perf_cfg(arg0, arg1);
break;

Loading…
Cancel
Save