Blame src/libpfm4/lib/events/arm_cortex_a15_events.h

Packit Service a1973e
/*
Packit Service a1973e
 * Copyright (c) 2012 Google, Inc
Packit Service a1973e
 * Contributed by Stephane Eranian <eranian@google.com>
Packit Service a1973e
 * Contributed by Will Deacon <will.deacon@arm.com>
Packit Service a1973e
 *
Packit Service a1973e
 * Permission is hereby granted, free of charge, to any person obtaining a copy
Packit Service a1973e
 * of this software and associated documentation files (the "Software"), to deal
Packit Service a1973e
 * in the Software without restriction, including without limitation the rights
Packit Service a1973e
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
Packit Service a1973e
 * of the Software, and to permit persons to whom the Software is furnished to do so,
Packit Service a1973e
 * subject to the following conditions:
Packit Service a1973e
 *
Packit Service a1973e
 * The above copyright notice and this permission notice shall be included in all
Packit Service a1973e
 * copies or substantial portions of the Software.
Packit Service a1973e
 *
Packit Service a1973e
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
Packit Service a1973e
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
Packit Service a1973e
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
Packit Service a1973e
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
Packit Service a1973e
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
Packit Service a1973e
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit Service a1973e
 *
Packit Service a1973e
 * Cortex A15 r2p0
Packit Service a1973e
 * based on Table 11-6 from the "Cortex A15 Technical Reference Manual"
Packit Service a1973e
 */
Packit Service a1973e
static const arm_entry_t arm_cortex_a15_pe[]={
Packit Service a1973e
	{.name = "SW_INCR",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x00,
Packit Service a1973e
	 .desc = "Instruction architecturally executed (condition check pass) Software increment"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1I_CACHE_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x01,
Packit Service a1973e
	 .desc = "Level 1 instruction cache refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1I_TLB_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x02,
Packit Service a1973e
	 .desc = "Level 1 instruction TLB refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_CACHE_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x03,
Packit Service a1973e
	 .desc = "Level 1 data cache refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_CACHE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x04,
Packit Service a1973e
	 .desc = "Level 1 data cache access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_TLB_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x05,
Packit Service a1973e
	 .desc = "Level 1 data TLB refill"
Packit Service a1973e
	},
Packit Service a1973e
Packit Service a1973e
	{.name = "INST_RETIRED",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x08,
Packit Service a1973e
	 .desc = "Instruction architecturally executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "EXCEPTION_TAKEN",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x09,
Packit Service a1973e
	 .desc = "Exception taken"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "EXCEPTION_RETURN",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x0a,
Packit Service a1973e
	 .desc = "Instruction architecturally executed (condition check pass) Exception return"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "CID_WRITE_RETIRED",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x0b,
Packit Service a1973e
	 .desc = "Instruction architecturally executed (condition check pass)  Write to CONTEXTIDR"
Packit Service a1973e
	},
Packit Service a1973e
Packit Service a1973e
	{.name = "BRANCH_MISPRED",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x10,
Packit Service a1973e
	 .desc = "Mispredicted or not predicted branch speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "CPU_CYCLES",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x11,
Packit Service a1973e
	 .desc = "Cycles"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BRANCH_PRED",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x12,
Packit Service a1973e
	 .desc = "Predictable branch speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "DATA_MEM_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x13,
Packit Service a1973e
	 .desc = "Data memory access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1I_CACHE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x14,
Packit Service a1973e
	 .desc = "Level 1 instruction cache access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_CACHE_WB",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x15,
Packit Service a1973e
	 .desc = "Level 1 data cache WriteBack"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_CACHE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x16,
Packit Service a1973e
	 .desc = "Level 2 data cache access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_CACHE_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x17,
Packit Service a1973e
	 .desc = "Level 2 data cache refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_CACHE_WB",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x18,
Packit Service a1973e
	 .desc = "Level 2 data cache WriteBack"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x19,
Packit Service a1973e
	 .desc = "Bus access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "LOCAL_MEMORY_ERROR",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x1a,
Packit Service a1973e
	 .desc = "Local memory error"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x1b,
Packit Service a1973e
	 .desc = "Instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "TTBR_WRITE_RETIRED",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x1c,
Packit Service a1973e
	 .desc = "Instruction architecturally executed (condition check pass)  Write to translation table base"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_CYCLES",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x1d,
Packit Service a1973e
	 .desc = "Bus cycle"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_READ_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x40,
Packit Service a1973e
	 .desc = "Level 1 data cache read access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_WRITE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x41,
Packit Service a1973e
	 .desc = "Level 1 data cache write access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_READ_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x42,
Packit Service a1973e
	 .desc = "Level 1 data cache read refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_WRITE_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x43,
Packit Service a1973e
	 .desc = "Level 1 data cache write refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_WB_VICTIM",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x46,
Packit Service a1973e
	 .desc = "Level 1 data cache writeback victim"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_WB_CLEAN_COHERENCY",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x47,
Packit Service a1973e
	 .desc = "Level 1 data cache writeback cleaning and coherency"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_INVALIDATE",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x48,
Packit Service a1973e
	 .desc = "Level 1 data cache invalidate"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_TLB_READ_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x4c,
Packit Service a1973e
	 .desc = "Level 1 data TLB read refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L1D_TLB_WRITE_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x4d,
Packit Service a1973e
	 .desc = "Level 1 data TLB write refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_READ_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x50,
Packit Service a1973e
	 .desc = "Level 2 data cache read access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_WRITE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x51,
Packit Service a1973e
	 .desc = "Level 2 data cache write access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_READ_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x52,
Packit Service a1973e
	 .desc = "Level 2 data cache read refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_WRITE_REFILL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x53,
Packit Service a1973e
	 .desc = "Level 2 data cache write refill"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_WB_VICTIM",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x56,
Packit Service a1973e
	 .desc = "Level 2 data cache writeback victim"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_WB_CLEAN_COHERENCY",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x57,
Packit Service a1973e
	 .desc = "Level 2 data cache writeback cleaning and coherency"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "L2D_INVALIDATE",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x58,
Packit Service a1973e
	 .desc = "Level 2 data cache invalidate"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_READ_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x60,
Packit Service a1973e
	 .desc = "Bus read access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_WRITE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x61,
Packit Service a1973e
	 .desc = "Bus write access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_NORMAL_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x62,
Packit Service a1973e
	 .desc = "Bus normal access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_NOT_NORMAL_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x63,
Packit Service a1973e
	 .desc = "Bus not normal access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_NORMAL_ACCESS_2",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x64,
Packit Service a1973e
	 .desc = "Bus normal access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BUS_PERIPH_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x65,
Packit Service a1973e
	 .desc = "Bus peripheral access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "DATA_MEM_READ_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x66,
Packit Service a1973e
	 .desc = "Data memory read access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "DATA_MEM_WRITE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x67,
Packit Service a1973e
	 .desc = "Data memory write access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "UNALIGNED_READ_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x68,
Packit Service a1973e
	 .desc = "Unaligned read access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "UNALIGNED_WRITE_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x69,
Packit Service a1973e
	 .desc = "Unaligned read access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "UNALIGNED_ACCESS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x6a,
Packit Service a1973e
	 .desc = "Unaligned access"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_LDREX",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x6c,
Packit Service a1973e
	 .desc = "LDREX exclusive instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_STREX_PASS",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x6d,
Packit Service a1973e
	 .desc = "STREX pass exclusive instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_STREX_FAIL",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x6e,
Packit Service a1973e
	 .desc = "STREX fail exclusive instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_LOAD",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x70,
Packit Service a1973e
	 .desc = "Load instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_STORE",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x71,
Packit Service a1973e
	 .desc = "Store instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_LOAD_STORE",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x72,
Packit Service a1973e
	 .desc = "Load or store instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_INTEGER_INST",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x73,
Packit Service a1973e
	 .desc = "Integer data processing instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_SIMD",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x74,
Packit Service a1973e
	 .desc = "Advanced SIMD instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_VFP",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x75,
Packit Service a1973e
	 .desc = "VFP instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "INST_SPEC_EXEC_SOFT_PC",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x76,
Packit Service a1973e
	 .desc = "Software of the PC instruction speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BRANCH_SPEC_EXEC_IMM_BRANCH",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x78,
Packit Service a1973e
	 .desc = "Immediate branch speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BRANCH_SPEC_EXEC_RET",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x79,
Packit Service a1973e
	 .desc = "Return branch speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BRANCH_SPEC_EXEC_IND",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x7a,
Packit Service a1973e
	 .desc = "Indirect branch speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BARRIER_SPEC_EXEC_ISB",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x7c,
Packit Service a1973e
	 .desc = "ISB barrier speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BARRIER_SPEC_EXEC_DSB",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x7d,
Packit Service a1973e
	 .desc = "DSB barrier speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
	{.name = "BARRIER_SPEC_EXEC_DMB",
Packit Service a1973e
	 .modmsk = ARMV7_A15_ATTRS,
Packit Service a1973e
	 .code = 0x7e,
Packit Service a1973e
	 .desc = "DMB barrier speculatively executed"
Packit Service a1973e
	},
Packit Service a1973e
};