1/*
2 * Copyright 2017, Data61
3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4 * ABN 41 687 119 230.
5 *
6 * This software may be distributed and modified according to the terms of
7 * the BSD 2-Clause license. Note that NO WARRANTY is provided.
8 * See "LICENSE_BSD2.txt" for details.
9 *
10 * @TAG(DATA61_BSD)
11 */
12
13#include "../../event_counters.h"
14
15const char* const sel4bench_cpu_event_counter_data[] = {
16    NAME_EVENT(WRITE_BUFFER_DRAIN      , "WRITE_BUFFER_DRAIN"),
17    NAME_EVENT(CACHE_L2_WRITE          , "CACHE_L2_WRITE"),
18    NAME_EVENT(CACHE_L2_STORE          , "CACHE_L2_STORE"),
19    NAME_EVENT(CACHE_L2_READ           , "CACHE_L2_READ"),
20    NAME_EVENT(CACHE_L2_MISS           , "CACHE_L2_MISS"),
21    NAME_EVENT(AXI_READ                , "AXI_READ"),
22    NAME_EVENT(AXI_WRITE               , "AXI_WRITE"),
23    NAME_EVENT(MEMORY_REPLAY           , "MEMORY_REPLAY"),
24    NAME_EVENT(MEMORY_UNALIGNED_REPLAY , "MEMORY_UNALIGNED_REPLAY"),
25    NAME_EVENT(CACHE_L1D_MISS_HASH     , "CACHE_L1D_MISS_HASH"),
26    NAME_EVENT(CACHE_L1I_MISS_HASH     , "CACHE_L1I_MISS_HASH"),
27    NAME_EVENT(CACHE_L1D_CONFLICT_EVICT, "CACHE_L1D_CONFLICT_EVICT"),
28    NAME_EVENT(CACHE_L1D_HIT_NEON      , "CACHE_L1D_HIT_NEON"),
29    NAME_EVENT(CACHE_L1D_ACCESS_NEON   , "CACHE_L1D_ACCESS_NEON"),
30    NAME_EVENT(CACHE_L2_ACCESS_NEON    , "CACHE_L2_ACCESS_NEON"),
31    NAME_EVENT(CACHE_L2_HIT_NEON       , "CACHE_L2_HIT_NEON"),
32    NAME_EVENT(CACHE_L1I_ACCESS        , "CACHE_L1I_ACCESS"),
33    NAME_EVENT(RETURN_STACK_MISPREDICT , "RETURN_STACK_MISPREDICT"),
34    NAME_EVENT(BRANCH_MISPREDICT       , "BRANCH_MISPREDICT"),
35    NAME_EVENT(BRANCH_PREDICT_TRUE     , "BRANCH_PREDICT_TRUE"),
36    NAME_EVENT(EXECUTE_BRANCH_TRUE     , "EXECUTE_BRANCH_TRUE"),
37    NAME_EVENT(EXECUTE_OPERATION       , "EXECUTE_OPERATION"),
38    NAME_EVENT(STALL_INSTRUCTION       , "STALL_INSTRUCTION"),
39    NAME_EVENT(IPC                     , "IPC"),
40    NAME_EVENT(STALL_NEON_DATA         , "STALL_NEON_DATA"),
41    NAME_EVENT(STALL_NEON_EXECUTION    , "STALL_NEON_EXECUTION"),
42    NAME_EVENT(PROCESSOR_TOTALLY_BUSY  , "PROCESSOR_TOTALLY_BUSY"),
43    NAME_EVENT(PMUEXTIN_0              , "PMUEXTIN_0"),
44    NAME_EVENT(PMUEXTIN_1              , "PMUEXTIN_1"),
45    NAME_EVENT(PMUEXTIN                , "PMUEXTIN")
46};
47
48int
49sel4bench_cpu_get_num_counters(void)
50{
51    return ARRAY_SIZE(sel4bench_cpu_event_counter_data);
52}
53