1/*-
2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 *
4 * Copyright (c) 2005  Joseph Koshy
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * $FreeBSD$
29 */
30
31#ifndef _DEV_HWPMC_PMC_EVENTS_H_
32#define	_DEV_HWPMC_PMC_EVENTS_H_
33
34/*
35 * Note: Documentation on adding events can be found both in
36 * the source tree at src/share/doc/papers/hwpmc/hwpmc.ms
37 * as well as on-line at:
38 *
39 * https://wiki.freebsd.org/PmcTools/PmcHardwareHowTo
40 *
41 * Please refer to those resources before you attempt to modify
42 * this file or the hwpmc driver/subsystem.
43 */
44
45/* * PMC event codes.
46 *
47 * __PMC_EV(CLASS, SYMBOLIC-NAME)
48 *
49 */
50/* timestamp counters. */
51#define        __PMC_EV_TSC()                                                  \
52	__PMC_EV(TSC, TSC)
53
54#define        PMC_EV_TSC_FIRST        PMC_EV_TSC_TSC
55#define        PMC_EV_TSC_LAST         PMC_EV_TSC_TSC
56
57/*
58 * Software events are dynamically defined.
59 */
60
61#define        PMC_EV_DYN_COUNT        0x1000
62
63#define        PMC_EV_SOFT_FIRST       0x20000
64#define        PMC_EV_SOFT_LAST        (PMC_EV_SOFT_FIRST + PMC_EV_DYN_COUNT - 1)
65
66/*
67 * AMD K7 Events, from "The AMD Athlon(tm) Processor x86 Code
68 * Optimization Guide" [Doc#22007K, Feb 2002]
69 */
70
71#define	__PMC_EV_K7()					\
72__PMC_EV(K7, DC_ACCESSES)				\
73__PMC_EV(K7, DC_MISSES)					\
74__PMC_EV(K7, DC_REFILLS_FROM_L2)			\
75__PMC_EV(K7, DC_REFILLS_FROM_SYSTEM)			\
76__PMC_EV(K7, DC_WRITEBACKS)				\
77__PMC_EV(K7, L1_DTLB_MISS_AND_L2_DTLB_HITS)		\
78__PMC_EV(K7, L1_AND_L2_DTLB_MISSES)			\
79__PMC_EV(K7, MISALIGNED_REFERENCES)			\
80__PMC_EV(K7, IC_FETCHES)				\
81__PMC_EV(K7, IC_MISSES)					\
82__PMC_EV(K7, L1_ITLB_MISSES)				\
83__PMC_EV(K7, L1_L2_ITLB_MISSES)				\
84__PMC_EV(K7, RETIRED_INSTRUCTIONS)			\
85__PMC_EV(K7, RETIRED_OPS)				\
86__PMC_EV(K7, RETIRED_BRANCHES)				\
87__PMC_EV(K7, RETIRED_BRANCHES_MISPREDICTED)		\
88__PMC_EV(K7, RETIRED_TAKEN_BRANCHES)			\
89__PMC_EV(K7, RETIRED_TAKEN_BRANCHES_MISPREDICTED)	\
90__PMC_EV(K7, RETIRED_FAR_CONTROL_TRANSFERS)		\
91__PMC_EV(K7, RETIRED_RESYNC_BRANCHES)			\
92__PMC_EV(K7, INTERRUPTS_MASKED_CYCLES)			\
93__PMC_EV(K7, INTERRUPTS_MASKED_WHILE_PENDING_CYCLES)	\
94__PMC_EV(K7, HARDWARE_INTERRUPTS)
95
96#define	PMC_EV_K7_FIRST	PMC_EV_K7_DC_ACCESSES
97#define	PMC_EV_K7_LAST	PMC_EV_K7_HARDWARE_INTERRUPTS
98
99/* AMD K8 PMCs */
100
101#define	__PMC_EV_K8()							\
102__PMC_EV(K8, FP_DISPATCHED_FPU_OPS)					\
103__PMC_EV(K8, FP_CYCLES_WITH_NO_FPU_OPS_RETIRED)				\
104__PMC_EV(K8, FP_DISPATCHED_FPU_FAST_FLAG_OPS)				\
105__PMC_EV(K8, LS_SEGMENT_REGISTER_LOAD)					\
106__PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SELF_MODIFYING_CODE)	\
107__PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SNOOP)			\
108__PMC_EV(K8, LS_BUFFER2_FULL)						\
109__PMC_EV(K8, LS_LOCKED_OPERATION)					\
110__PMC_EV(K8, LS_MICROARCHITECTURAL_LATE_CANCEL)				\
111__PMC_EV(K8, LS_RETIRED_CFLUSH_INSTRUCTIONS)				\
112__PMC_EV(K8, LS_RETIRED_CPUID_INSTRUCTIONS)				\
113__PMC_EV(K8, DC_ACCESS)							\
114__PMC_EV(K8, DC_MISS)							\
115__PMC_EV(K8, DC_REFILL_FROM_L2)						\
116__PMC_EV(K8, DC_REFILL_FROM_SYSTEM)					\
117__PMC_EV(K8, DC_COPYBACK)						\
118__PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_HIT)				\
119__PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_MISS)				\
120__PMC_EV(K8, DC_MISALIGNED_DATA_REFERENCE)				\
121__PMC_EV(K8, DC_MICROARCHITECTURAL_LATE_CANCEL)				\
122__PMC_EV(K8, DC_MICROARCHITECTURAL_EARLY_CANCEL)			\
123__PMC_EV(K8, DC_ONE_BIT_ECC_ERROR)					\
124__PMC_EV(K8, DC_DISPATCHED_PREFETCH_INSTRUCTIONS)			\
125__PMC_EV(K8, DC_DCACHE_ACCESSES_BY_LOCKS)				\
126__PMC_EV(K8, BU_CPU_CLK_UNHALTED)					\
127__PMC_EV(K8, BU_INTERNAL_L2_REQUEST)					\
128__PMC_EV(K8, BU_FILL_REQUEST_L2_MISS)					\
129__PMC_EV(K8, BU_FILL_INTO_L2)						\
130__PMC_EV(K8, IC_FETCH)							\
131__PMC_EV(K8, IC_MISS)							\
132__PMC_EV(K8, IC_REFILL_FROM_L2)						\
133__PMC_EV(K8, IC_REFILL_FROM_SYSTEM)					\
134__PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_HIT)				\
135__PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_MISS)				\
136__PMC_EV(K8, IC_MICROARCHITECTURAL_RESYNC_BY_SNOOP)			\
137__PMC_EV(K8, IC_INSTRUCTION_FETCH_STALL)				\
138__PMC_EV(K8, IC_RETURN_STACK_HIT)					\
139__PMC_EV(K8, IC_RETURN_STACK_OVERFLOW)					\
140__PMC_EV(K8, FR_RETIRED_X86_INSTRUCTIONS)				\
141__PMC_EV(K8, FR_RETIRED_UOPS)						\
142__PMC_EV(K8, FR_RETIRED_BRANCHES)					\
143__PMC_EV(K8, FR_RETIRED_BRANCHES_MISPREDICTED)				\
144__PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES)					\
145__PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED)			\
146__PMC_EV(K8, FR_RETIRED_FAR_CONTROL_TRANSFERS)				\
147__PMC_EV(K8, FR_RETIRED_RESYNCS)					\
148__PMC_EV(K8, FR_RETIRED_NEAR_RETURNS)					\
149__PMC_EV(K8, FR_RETIRED_NEAR_RETURNS_MISPREDICTED)			\
150__PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED_BY_ADDR_MISCOMPARE)	\
151__PMC_EV(K8, FR_RETIRED_FPU_INSTRUCTIONS)				\
152__PMC_EV(K8, FR_RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS)		\
153__PMC_EV(K8, FR_INTERRUPTS_MASKED_CYCLES)				\
154__PMC_EV(K8, FR_INTERRUPTS_MASKED_WHILE_PENDING_CYCLES)			\
155__PMC_EV(K8, FR_TAKEN_HARDWARE_INTERRUPTS)				\
156__PMC_EV(K8, FR_DECODER_EMPTY)						\
157__PMC_EV(K8, FR_DISPATCH_STALLS)					\
158__PMC_EV(K8, FR_DISPATCH_STALL_FROM_BRANCH_ABORT_TO_RETIRE)		\
159__PMC_EV(K8, FR_DISPATCH_STALL_FOR_SERIALIZATION)			\
160__PMC_EV(K8, FR_DISPATCH_STALL_FOR_SEGMENT_LOAD)			\
161__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_REORDER_BUFFER_IS_FULL)		\
162__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_RESERVATION_STATIONS_ARE_FULL)	\
163__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FPU_IS_FULL)			\
164__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_LS_IS_FULL)				\
165__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_WAITING_FOR_ALL_TO_BE_QUIET)	\
166__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FAR_XFER_OR_RESYNC_BRANCH_PENDING)	\
167__PMC_EV(K8, FR_FPU_EXCEPTIONS)						\
168__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR0)				\
169__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR1)				\
170__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR2)				\
171__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR3)				\
172__PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_ACCESS_EVENT)			\
173__PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOW)			\
174__PMC_EV(K8, NB_MEMORY_CONTROLLER_DRAM_COMMAND_SLOTS_MISSED)		\
175__PMC_EV(K8, NB_MEMORY_CONTROLLER_TURNAROUND)				\
176__PMC_EV(K8, NB_MEMORY_CONTROLLER_BYPASS_SATURATION)			\
177__PMC_EV(K8, NB_SIZED_COMMANDS)						\
178__PMC_EV(K8, NB_PROBE_RESULT)						\
179__PMC_EV(K8, NB_HT_BUS0_BANDWIDTH)					\
180__PMC_EV(K8, NB_HT_BUS1_BANDWIDTH)					\
181__PMC_EV(K8, NB_HT_BUS2_BANDWIDTH)
182
183#define	PMC_EV_K8_FIRST		PMC_EV_K8_FP_DISPATCHED_FPU_OPS
184#define	PMC_EV_K8_LAST		PMC_EV_K8_NB_HT_BUS2_BANDWIDTH
185
186/*
187 * Events supported by Intel architectural fixed function counters,
188 * from the "Intel 64 and IA-32 Architectures Software Developer's
189 * Manual Volume 3B: System Programming Guide, Part 2", July 2008.
190 */
191#define	__PMC_EV_IAF()							\
192__PMC_EV(IAF, INSTR_RETIRED_ANY)					\
193__PMC_EV(IAF, CPU_CLK_UNHALTED_CORE)					\
194__PMC_EV(IAF, CPU_CLK_UNHALTED_REF)
195
196#define	PMC_EV_IAF_FIRST	PMC_EV_IAF_INSTR_RETIRED_ANY
197#define	PMC_EV_IAF_LAST		PMC_EV_IAF_CPU_CLK_UNHALTED_REF
198
199#define	__PMC_EV_ALIAS_IAF()						\
200__PMC_EV_ALIAS("instruction-retired",	IAF_INSTR_RETIRED_ANY)		\
201__PMC_EV_ALIAS("unhalted-core-cycles",	IAF_CPU_CLK_UNHALTED_CORE)	\
202__PMC_EV_ALIAS("unhalted-reference-cycles", IAF_CPU_CLK_UNHALTED_REF)
203
204
205#define	PMC_EV_IAP_FIRST	PMC_EV_IAP_ARCH_BR_INS_RET
206#define	PMC_EV_IAP_LAST		PMC_EV_IAP_EVENT_FDH_40H
207
208/*
209 * Map "architectural" event names to event ids.
210 */
211#define	__PMC_EV_ALIAS_INTEL_ARCHITECTURAL()				\
212__PMC_EV_ALIAS("branch-instruction-retired",	IAP_ARCH_BR_INS_RET)	\
213__PMC_EV_ALIAS("branch-misses-retired",		IAP_ARCH_BR_MIS_RET)	\
214__PMC_EV_ALIAS("instruction-retired",		IAP_ARCH_INS_RET)	\
215__PMC_EV_ALIAS("llc-misses",			IAP_ARCH_LLC_MIS)	\
216__PMC_EV_ALIAS("llc-reference",			IAP_ARCH_LLC_REF)	\
217__PMC_EV_ALIAS("unhalted-reference-cycles",	IAP_ARCH_UNH_REF_CYC)	\
218__PMC_EV_ALIAS("unhalted-core-cycles",		IAP_ARCH_UNH_COR_CYC)
219
220#define        __PMC_EV_UCP()                          \
221	__PMC_EV(UCP, EVENT_0CH_04H_E)					   \
222	__PMC_EV(UCP, EVENT_0CH_04H_F)					   \
223	__PMC_EV(UCP, EVENT_0CH_04H_M)					   \
224	__PMC_EV(UCP, EVENT_0CH_04H_S)					   \
225	__PMC_EV(UCP, EVENT_0CH_08H_E)					   \
226	__PMC_EV(UCP, EVENT_0CH_08H_F)					   \
227	__PMC_EV(UCP, EVENT_0CH_08H_M)					   \
228	__PMC_EV(UCP, EVENT_0CH_08H_S)					   \
229
230/*
231 * ARMv7 Events
232 */
233
234#define	__PMC_EV_ARMV7()			\
235	__PMC_EV(ARMV7, EVENT_00H)		\
236	__PMC_EV(ARMV7, EVENT_01H)		\
237	__PMC_EV(ARMV7, EVENT_02H)		\
238	__PMC_EV(ARMV7, EVENT_03H)		\
239	__PMC_EV(ARMV7, EVENT_04H)		\
240	__PMC_EV(ARMV7, EVENT_05H)		\
241	__PMC_EV(ARMV7, EVENT_06H)		\
242	__PMC_EV(ARMV7, EVENT_07H)		\
243	__PMC_EV(ARMV7, EVENT_08H)		\
244	__PMC_EV(ARMV7, EVENT_09H)		\
245	__PMC_EV(ARMV7, EVENT_0AH)		\
246	__PMC_EV(ARMV7, EVENT_0BH)		\
247	__PMC_EV(ARMV7, EVENT_0CH)		\
248	__PMC_EV(ARMV7, EVENT_0DH)		\
249	__PMC_EV(ARMV7, EVENT_0EH)		\
250	__PMC_EV(ARMV7, EVENT_0FH)		\
251	__PMC_EV(ARMV7, EVENT_10H)		\
252	__PMC_EV(ARMV7, EVENT_11H)		\
253	__PMC_EV(ARMV7, EVENT_12H)		\
254	__PMC_EV(ARMV7, EVENT_13H)		\
255	__PMC_EV(ARMV7, EVENT_14H)		\
256	__PMC_EV(ARMV7, EVENT_15H)		\
257	__PMC_EV(ARMV7, EVENT_16H)		\
258	__PMC_EV(ARMV7, EVENT_17H)		\
259	__PMC_EV(ARMV7, EVENT_18H)		\
260	__PMC_EV(ARMV7, EVENT_19H)		\
261	__PMC_EV(ARMV7, EVENT_1AH)		\
262	__PMC_EV(ARMV7, EVENT_1BH)		\
263	__PMC_EV(ARMV7, EVENT_1CH)		\
264	__PMC_EV(ARMV7, EVENT_1DH)		\
265	__PMC_EV(ARMV7, EVENT_1EH)		\
266	__PMC_EV(ARMV7, EVENT_1FH)		\
267	__PMC_EV(ARMV7, EVENT_20H)		\
268	__PMC_EV(ARMV7, EVENT_21H)		\
269	__PMC_EV(ARMV7, EVENT_22H)		\
270	__PMC_EV(ARMV7, EVENT_23H)		\
271	__PMC_EV(ARMV7, EVENT_24H)		\
272	__PMC_EV(ARMV7, EVENT_25H)		\
273	__PMC_EV(ARMV7, EVENT_26H)		\
274	__PMC_EV(ARMV7, EVENT_27H)		\
275	__PMC_EV(ARMV7, EVENT_28H)		\
276	__PMC_EV(ARMV7, EVENT_29H)		\
277	__PMC_EV(ARMV7, EVENT_2AH)		\
278	__PMC_EV(ARMV7, EVENT_2BH)		\
279	__PMC_EV(ARMV7, EVENT_2CH)		\
280	__PMC_EV(ARMV7, EVENT_2DH)		\
281	__PMC_EV(ARMV7, EVENT_2EH)		\
282	__PMC_EV(ARMV7, EVENT_2FH)		\
283	__PMC_EV(ARMV7, EVENT_30H)		\
284	__PMC_EV(ARMV7, EVENT_31H)		\
285	__PMC_EV(ARMV7, EVENT_32H)		\
286	__PMC_EV(ARMV7, EVENT_33H)		\
287	__PMC_EV(ARMV7, EVENT_34H)		\
288	__PMC_EV(ARMV7, EVENT_35H)		\
289	__PMC_EV(ARMV7, EVENT_36H)		\
290	__PMC_EV(ARMV7, EVENT_37H)		\
291	__PMC_EV(ARMV7, EVENT_38H)		\
292	__PMC_EV(ARMV7, EVENT_39H)		\
293	__PMC_EV(ARMV7, EVENT_3AH)		\
294	__PMC_EV(ARMV7, EVENT_3BH)		\
295	__PMC_EV(ARMV7, EVENT_3CH)		\
296	__PMC_EV(ARMV7, EVENT_3DH)		\
297	__PMC_EV(ARMV7, EVENT_3EH)		\
298	__PMC_EV(ARMV7, EVENT_3FH)		\
299	__PMC_EV(ARMV7, EVENT_40H)		\
300	__PMC_EV(ARMV7, EVENT_41H)		\
301	__PMC_EV(ARMV7, EVENT_42H)		\
302	__PMC_EV(ARMV7, EVENT_43H)		\
303	__PMC_EV(ARMV7, EVENT_44H)		\
304	__PMC_EV(ARMV7, EVENT_45H)		\
305	__PMC_EV(ARMV7, EVENT_46H)		\
306	__PMC_EV(ARMV7, EVENT_47H)		\
307	__PMC_EV(ARMV7, EVENT_48H)		\
308	__PMC_EV(ARMV7, EVENT_49H)		\
309	__PMC_EV(ARMV7, EVENT_4AH)		\
310	__PMC_EV(ARMV7, EVENT_4BH)		\
311	__PMC_EV(ARMV7, EVENT_4CH)		\
312	__PMC_EV(ARMV7, EVENT_4DH)		\
313	__PMC_EV(ARMV7, EVENT_4EH)		\
314	__PMC_EV(ARMV7, EVENT_4FH)		\
315	__PMC_EV(ARMV7, EVENT_50H)		\
316	__PMC_EV(ARMV7, EVENT_51H)		\
317	__PMC_EV(ARMV7, EVENT_52H)		\
318	__PMC_EV(ARMV7, EVENT_53H)		\
319	__PMC_EV(ARMV7, EVENT_54H)		\
320	__PMC_EV(ARMV7, EVENT_55H)		\
321	__PMC_EV(ARMV7, EVENT_56H)		\
322	__PMC_EV(ARMV7, EVENT_57H)		\
323	__PMC_EV(ARMV7, EVENT_58H)		\
324	__PMC_EV(ARMV7, EVENT_59H)		\
325	__PMC_EV(ARMV7, EVENT_5AH)		\
326	__PMC_EV(ARMV7, EVENT_5BH)		\
327	__PMC_EV(ARMV7, EVENT_5CH)		\
328	__PMC_EV(ARMV7, EVENT_5DH)		\
329	__PMC_EV(ARMV7, EVENT_5EH)		\
330	__PMC_EV(ARMV7, EVENT_5FH)		\
331	__PMC_EV(ARMV7, EVENT_60H)		\
332	__PMC_EV(ARMV7, EVENT_61H)		\
333	__PMC_EV(ARMV7, EVENT_62H)		\
334	__PMC_EV(ARMV7, EVENT_63H)		\
335	__PMC_EV(ARMV7, EVENT_64H)		\
336	__PMC_EV(ARMV7, EVENT_65H)		\
337	__PMC_EV(ARMV7, EVENT_66H)		\
338	__PMC_EV(ARMV7, EVENT_67H)		\
339	__PMC_EV(ARMV7, EVENT_68H)		\
340	__PMC_EV(ARMV7, EVENT_69H)		\
341	__PMC_EV(ARMV7, EVENT_6AH)		\
342	__PMC_EV(ARMV7, EVENT_6BH)		\
343	__PMC_EV(ARMV7, EVENT_6CH)		\
344	__PMC_EV(ARMV7, EVENT_6DH)		\
345	__PMC_EV(ARMV7, EVENT_6EH)		\
346	__PMC_EV(ARMV7, EVENT_6FH)		\
347	__PMC_EV(ARMV7, EVENT_70H)		\
348	__PMC_EV(ARMV7, EVENT_71H)		\
349	__PMC_EV(ARMV7, EVENT_72H)		\
350	__PMC_EV(ARMV7, EVENT_73H)		\
351	__PMC_EV(ARMV7, EVENT_74H)		\
352	__PMC_EV(ARMV7, EVENT_75H)		\
353	__PMC_EV(ARMV7, EVENT_76H)		\
354	__PMC_EV(ARMV7, EVENT_77H)		\
355	__PMC_EV(ARMV7, EVENT_78H)		\
356	__PMC_EV(ARMV7, EVENT_79H)		\
357	__PMC_EV(ARMV7, EVENT_7AH)		\
358	__PMC_EV(ARMV7, EVENT_7BH)		\
359	__PMC_EV(ARMV7, EVENT_7CH)		\
360	__PMC_EV(ARMV7, EVENT_7DH)		\
361	__PMC_EV(ARMV7, EVENT_7EH)		\
362	__PMC_EV(ARMV7, EVENT_7FH)		\
363	__PMC_EV(ARMV7, EVENT_80H)		\
364	__PMC_EV(ARMV7, EVENT_81H)		\
365	__PMC_EV(ARMV7, EVENT_82H)		\
366	__PMC_EV(ARMV7, EVENT_83H)		\
367	__PMC_EV(ARMV7, EVENT_84H)		\
368	__PMC_EV(ARMV7, EVENT_85H)		\
369	__PMC_EV(ARMV7, EVENT_86H)		\
370	__PMC_EV(ARMV7, EVENT_87H)		\
371	__PMC_EV(ARMV7, EVENT_88H)		\
372	__PMC_EV(ARMV7, EVENT_89H)		\
373	__PMC_EV(ARMV7, EVENT_8AH)		\
374	__PMC_EV(ARMV7, EVENT_8BH)		\
375	__PMC_EV(ARMV7, EVENT_8CH)		\
376	__PMC_EV(ARMV7, EVENT_8DH)		\
377	__PMC_EV(ARMV7, EVENT_8EH)		\
378	__PMC_EV(ARMV7, EVENT_8FH)		\
379	__PMC_EV(ARMV7, EVENT_90H)		\
380	__PMC_EV(ARMV7, EVENT_91H)		\
381	__PMC_EV(ARMV7, EVENT_92H)		\
382	__PMC_EV(ARMV7, EVENT_93H)		\
383	__PMC_EV(ARMV7, EVENT_94H)		\
384	__PMC_EV(ARMV7, EVENT_95H)		\
385	__PMC_EV(ARMV7, EVENT_96H)		\
386	__PMC_EV(ARMV7, EVENT_97H)		\
387	__PMC_EV(ARMV7, EVENT_98H)		\
388	__PMC_EV(ARMV7, EVENT_99H)		\
389	__PMC_EV(ARMV7, EVENT_9AH)		\
390	__PMC_EV(ARMV7, EVENT_9BH)		\
391	__PMC_EV(ARMV7, EVENT_9CH)		\
392	__PMC_EV(ARMV7, EVENT_9DH)		\
393	__PMC_EV(ARMV7, EVENT_9EH)		\
394	__PMC_EV(ARMV7, EVENT_9FH)		\
395	__PMC_EV(ARMV7, EVENT_A0H)		\
396	__PMC_EV(ARMV7, EVENT_A1H)		\
397	__PMC_EV(ARMV7, EVENT_A2H)		\
398	__PMC_EV(ARMV7, EVENT_A3H)		\
399	__PMC_EV(ARMV7, EVENT_A4H)		\
400	__PMC_EV(ARMV7, EVENT_A5H)		\
401	__PMC_EV(ARMV7, EVENT_A6H)		\
402	__PMC_EV(ARMV7, EVENT_A7H)		\
403	__PMC_EV(ARMV7, EVENT_A8H)		\
404	__PMC_EV(ARMV7, EVENT_A9H)		\
405	__PMC_EV(ARMV7, EVENT_AAH)		\
406	__PMC_EV(ARMV7, EVENT_ABH)		\
407	__PMC_EV(ARMV7, EVENT_ACH)		\
408	__PMC_EV(ARMV7, EVENT_ADH)		\
409	__PMC_EV(ARMV7, EVENT_AEH)		\
410	__PMC_EV(ARMV7, EVENT_AFH)		\
411	__PMC_EV(ARMV7, EVENT_B0H)		\
412	__PMC_EV(ARMV7, EVENT_B1H)		\
413	__PMC_EV(ARMV7, EVENT_B2H)		\
414	__PMC_EV(ARMV7, EVENT_B3H)		\
415	__PMC_EV(ARMV7, EVENT_B4H)		\
416	__PMC_EV(ARMV7, EVENT_B5H)		\
417	__PMC_EV(ARMV7, EVENT_B6H)		\
418	__PMC_EV(ARMV7, EVENT_B7H)		\
419	__PMC_EV(ARMV7, EVENT_B8H)		\
420	__PMC_EV(ARMV7, EVENT_B9H)		\
421	__PMC_EV(ARMV7, EVENT_BAH)		\
422	__PMC_EV(ARMV7, EVENT_BBH)		\
423	__PMC_EV(ARMV7, EVENT_BCH)		\
424	__PMC_EV(ARMV7, EVENT_BDH)		\
425	__PMC_EV(ARMV7, EVENT_BEH)		\
426	__PMC_EV(ARMV7, EVENT_BFH)		\
427	__PMC_EV(ARMV7, EVENT_C0H)		\
428	__PMC_EV(ARMV7, EVENT_C1H)		\
429	__PMC_EV(ARMV7, EVENT_C2H)		\
430	__PMC_EV(ARMV7, EVENT_C3H)		\
431	__PMC_EV(ARMV7, EVENT_C4H)		\
432	__PMC_EV(ARMV7, EVENT_C5H)		\
433	__PMC_EV(ARMV7, EVENT_C6H)		\
434	__PMC_EV(ARMV7, EVENT_C7H)		\
435	__PMC_EV(ARMV7, EVENT_C8H)		\
436	__PMC_EV(ARMV7, EVENT_C9H)		\
437	__PMC_EV(ARMV7, EVENT_CAH)		\
438	__PMC_EV(ARMV7, EVENT_CBH)		\
439	__PMC_EV(ARMV7, EVENT_CCH)		\
440	__PMC_EV(ARMV7, EVENT_CDH)		\
441	__PMC_EV(ARMV7, EVENT_CEH)		\
442	__PMC_EV(ARMV7, EVENT_CFH)		\
443	__PMC_EV(ARMV7, EVENT_D0H)		\
444	__PMC_EV(ARMV7, EVENT_D1H)		\
445	__PMC_EV(ARMV7, EVENT_D2H)		\
446	__PMC_EV(ARMV7, EVENT_D3H)		\
447	__PMC_EV(ARMV7, EVENT_D4H)		\
448	__PMC_EV(ARMV7, EVENT_D5H)		\
449	__PMC_EV(ARMV7, EVENT_D6H)		\
450	__PMC_EV(ARMV7, EVENT_D7H)		\
451	__PMC_EV(ARMV7, EVENT_D8H)		\
452	__PMC_EV(ARMV7, EVENT_D9H)		\
453	__PMC_EV(ARMV7, EVENT_DAH)		\
454	__PMC_EV(ARMV7, EVENT_DBH)		\
455	__PMC_EV(ARMV7, EVENT_DCH)		\
456	__PMC_EV(ARMV7, EVENT_DDH)		\
457	__PMC_EV(ARMV7, EVENT_DEH)		\
458	__PMC_EV(ARMV7, EVENT_DFH)		\
459	__PMC_EV(ARMV7, EVENT_E0H)		\
460	__PMC_EV(ARMV7, EVENT_E1H)		\
461	__PMC_EV(ARMV7, EVENT_E2H)		\
462	__PMC_EV(ARMV7, EVENT_E3H)		\
463	__PMC_EV(ARMV7, EVENT_E4H)		\
464	__PMC_EV(ARMV7, EVENT_E5H)		\
465	__PMC_EV(ARMV7, EVENT_E6H)		\
466	__PMC_EV(ARMV7, EVENT_E7H)		\
467	__PMC_EV(ARMV7, EVENT_E8H)		\
468	__PMC_EV(ARMV7, EVENT_E9H)		\
469	__PMC_EV(ARMV7, EVENT_EAH)		\
470	__PMC_EV(ARMV7, EVENT_EBH)		\
471	__PMC_EV(ARMV7, EVENT_ECH)		\
472	__PMC_EV(ARMV7, EVENT_EDH)		\
473	__PMC_EV(ARMV7, EVENT_EEH)		\
474	__PMC_EV(ARMV7, EVENT_EFH)		\
475	__PMC_EV(ARMV7, EVENT_F0H)		\
476	__PMC_EV(ARMV7, EVENT_F1H)		\
477	__PMC_EV(ARMV7, EVENT_F2H)		\
478	__PMC_EV(ARMV7, EVENT_F3H)		\
479	__PMC_EV(ARMV7, EVENT_F4H)		\
480	__PMC_EV(ARMV7, EVENT_F5H)		\
481	__PMC_EV(ARMV7, EVENT_F6H)		\
482	__PMC_EV(ARMV7, EVENT_F7H)		\
483	__PMC_EV(ARMV7, EVENT_F8H)		\
484	__PMC_EV(ARMV7, EVENT_F9H)		\
485	__PMC_EV(ARMV7, EVENT_FAH)		\
486	__PMC_EV(ARMV7, EVENT_FBH)		\
487	__PMC_EV(ARMV7, EVENT_FCH)		\
488	__PMC_EV(ARMV7, EVENT_FDH)		\
489	__PMC_EV(ARMV7, EVENT_FEH)		\
490	__PMC_EV(ARMV7, EVENT_FFH)
491
492#define	PMC_EV_ARMV7_FIRST	PMC_EV_ARMV7_EVENT_00H
493#define	PMC_EV_ARMV7_LAST	PMC_EV_ARMV7_EVENT_FFH
494
495#define	__PMC_EV_ALIAS_ARMV7_COMMON()					\
496	__PMC_EV_ALIAS("PMNC_SW_INCR",		ARMV7_EVENT_00H)	\
497	__PMC_EV_ALIAS("L1_ICACHE_REFILL",	ARMV7_EVENT_01H)	\
498	__PMC_EV_ALIAS("ITLB_REFILL",		ARMV7_EVENT_02H)	\
499	__PMC_EV_ALIAS("L1_DCACHE_REFILL",	ARMV7_EVENT_03H)	\
500	__PMC_EV_ALIAS("L1_DCACHE_ACCESS",	ARMV7_EVENT_04H)	\
501	__PMC_EV_ALIAS("DTLB_REFILL",		ARMV7_EVENT_05H)	\
502	__PMC_EV_ALIAS("MEM_READ",		ARMV7_EVENT_06H)	\
503	__PMC_EV_ALIAS("MEM_WRITE",		ARMV7_EVENT_07H)	\
504	__PMC_EV_ALIAS("EXC_TAKEN",		ARMV7_EVENT_09H)	\
505	__PMC_EV_ALIAS("EXC_EXECUTED",		ARMV7_EVENT_0AH)	\
506	__PMC_EV_ALIAS("CID_WRITE",		ARMV7_EVENT_0BH)	\
507	__PMC_EV_ALIAS("PC_WRITE",		ARMV7_EVENT_0CH)	\
508	__PMC_EV_ALIAS("PC_IMM_BRANCH",		ARMV7_EVENT_0DH)	\
509	__PMC_EV_ALIAS("MEM_UNALIGNED_ACCESS",	ARMV7_EVENT_0FH)	\
510	__PMC_EV_ALIAS("PC_BRANCH_MIS_PRED",	ARMV7_EVENT_10H)	\
511	__PMC_EV_ALIAS("CLOCK_CYCLES",		ARMV7_EVENT_11H)	\
512	__PMC_EV_ALIAS("PC_BRANCH_PRED",	ARMV7_EVENT_12H)
513
514#define	__PMC_EV_ALIAS_ARMV7_COMMON_A8()				\
515	__PMC_EV_ALIAS_ARMV7_COMMON()					\
516	__PMC_EV_ALIAS("INSTR_EXECUTED",	ARMV7_EVENT_08H)	\
517	__PMC_EV_ALIAS("PC_PROC_RETURN",	ARMV7_EVENT_0EH)	\
518	__PMC_EV_ALIAS("MEM_ACCESS",		ARMV7_EVENT_13H)	\
519	__PMC_EV_ALIAS("L1_ICACHE_ACCESS",	ARMV7_EVENT_14H)	\
520	__PMC_EV_ALIAS("L1_DCACHE_WB",		ARMV7_EVENT_15H)	\
521	__PMC_EV_ALIAS("L2_CACHE_ACCESS",	ARMV7_EVENT_16H)	\
522	__PMC_EV_ALIAS("L2_CACHE_REFILL",	ARMV7_EVENT_17H)	\
523	__PMC_EV_ALIAS("L2_CACHE_WB",		ARMV7_EVENT_18H)	\
524	__PMC_EV_ALIAS("BUS_ACCESS",		ARMV7_EVENT_19H)	\
525	__PMC_EV_ALIAS("MEM_ERROR",		ARMV7_EVENT_1AH)	\
526	__PMC_EV_ALIAS("INSTR_SPEC",		ARMV7_EVENT_1BH)	\
527	__PMC_EV_ALIAS("TTBR_WRITE",		ARMV7_EVENT_1CH)	\
528	__PMC_EV_ALIAS("BUS_CYCLES",		ARMV7_EVENT_1DH)	\
529	__PMC_EV_ALIAS("CPU_CYCLES",		ARMV7_EVENT_FFH)
530
531#define	__PMC_EV_ALIAS_ARMV7_CORTEX_A8()				 \
532	__PMC_EV_ALIAS_ARMV7_COMMON_A8()				 \
533	__PMC_EV_ALIAS("WRITE_BUF_FULL",		ARMV7_EVENT_40H) \
534	__PMC_EV_ALIAS("L2_STORE_MERGED",		ARMV7_EVENT_41H) \
535	__PMC_EV_ALIAS("L2_STORE_BUFFERABLE",		ARMV7_EVENT_42H) \
536	__PMC_EV_ALIAS("L2_ACCESS",			ARMV7_EVENT_43H) \
537	__PMC_EV_ALIAS("L2_CACHE_MISS",			ARMV7_EVENT_44H) \
538	__PMC_EV_ALIAS("AXI_READ",			ARMV7_EVENT_45H) \
539	__PMC_EV_ALIAS("AXI_WRITE",			ARMV7_EVENT_46H) \
540	__PMC_EV_ALIAS("MEM_REPLAY_EVT",		ARMV7_EVENT_47H) \
541	__PMC_EV_ALIAS("MEM_UNALIGNED_ACCESS_REPLAY",	ARMV7_EVENT_48H) \
542	__PMC_EV_ALIAS("L1_DCACHE_HASH_MISS",		ARMV7_EVENT_49H) \
543	__PMC_EV_ALIAS("L1_ICACHE_HASH_MISS",		ARMV7_EVENT_4AH) \
544	__PMC_EV_ALIAS("L1_CACHE_PAGECOL_ALIAS",	ARMV7_EVENT_4BH) \
545	__PMC_EV_ALIAS("L1_DCACHE_NEON_ACCESS",		ARMV7_EVENT_4CH) \
546	__PMC_EV_ALIAS("L1_DCACHE_NEON_CACHEABLE",	ARMV7_EVENT_4DH) \
547	__PMC_EV_ALIAS("L2_CACHE_NEON_MEM_ACCESS",	ARMV7_EVENT_4EH) \
548	__PMC_EV_ALIAS("L2_CACHE_NEON_HIT",		ARMV7_EVENT_4FH) \
549	__PMC_EV_ALIAS("L1_CACHE_ACCESS_NOCP15",	ARMV7_EVENT_50H) \
550	__PMC_EV_ALIAS("RET_STACK_MISPREDICT",		ARMV7_EVENT_51H) \
551	__PMC_EV_ALIAS("BRANCH_DIR_MISPREDICT",		ARMV7_EVENT_52H) \
552	__PMC_EV_ALIAS("PRED_BRANCH_PRED_TAKEN",	ARMV7_EVENT_53H) \
553	__PMC_EV_ALIAS("PRED_BRANCH_EXEC_TAKEN",	ARMV7_EVENT_54H) \
554	__PMC_EV_ALIAS("OPS_ISSUED",			ARMV7_EVENT_55H) \
555	__PMC_EV_ALIAS("CYCLES_NO_INSTRUCTION",		ARMV7_EVENT_56H) \
556	__PMC_EV_ALIAS("INSTRUCTIONS_ISSUED_CYCLE",	ARMV7_EVENT_57H) \
557	__PMC_EV_ALIAS("CYCLES_STALLED_NEON_MRC",	ARMV7_EVENT_58H) \
558	__PMC_EV_ALIAS("CYCLES_STALLED_NEON_FULLQ",	ARMV7_EVENT_59H) \
559	__PMC_EV_ALIAS("CYCLES_NONIDLE_NEON_INT",	ARMV7_EVENT_5AH) \
560	__PMC_EV_ALIAS("PMUEXTIN0_EVT",			ARMV7_EVENT_70H) \
561	__PMC_EV_ALIAS("PMUEXTIN1_EVT",			ARMV7_EVENT_71H) \
562	__PMC_EV_ALIAS("PMUEXTIN_EVT",			ARMV7_EVENT_72H)
563#define	PMC_EV_ARMV7_CORTEX_A8_FIRST	PMC_EV_ARMV7_PMNC_SW_INCR
564#define	PMC_EV_ARMV7_CORTEX_A8_LAST	PMC_EV_ARMV7_PMUEXTIN_EVT
565
566#define	__PMC_EV_ALIAS_ARMV7_CORTEX_A9()					\
567	__PMC_EV_ALIAS_ARMV7_COMMON()						\
568	__PMC_EV_ALIAS("JAVA_BYTECODE",			ARMV7_EVENT_40H)	\
569	__PMC_EV_ALIAS("SOFTWARE_JAVA_BYTECODE",	ARMV7_EVENT_41H)	\
570	__PMC_EV_ALIAS("JAZELLE_BACKWARD_BRANCH",	ARMV7_EVENT_42H)	\
571	__PMC_EV_ALIAS("COHERENT_LINEFILL_MISSC",	ARMV7_EVENT_50H)	\
572	__PMC_EV_ALIAS("COHERENT_LINEFILL_HITC",	ARMV7_EVENT_51H)	\
573	__PMC_EV_ALIAS("INSTR_CACHE_DEPENDENT_STALL",	ARMV7_EVENT_60H)	\
574	__PMC_EV_ALIAS("DATA_CACHE_DEPENDENT_STALL",	ARMV7_EVENT_61H)	\
575	__PMC_EV_ALIAS("MAIN_TLB_MISS_STALL",		ARMV7_EVENT_62H)	\
576	__PMC_EV_ALIAS("STREX_PASSED",			ARMV7_EVENT_63H)	\
577	__PMC_EV_ALIAS("STREX_FAILED",			ARMV7_EVENT_64H)	\
578	__PMC_EV_ALIAS("DATA_EVICTION",			ARMV7_EVENT_65H)	\
579	__PMC_EV_ALIAS("ISSUE_DNOT_DISPATCH_ANY_INSTR",	ARMV7_EVENT_66H)	\
580	__PMC_EV_ALIAS("ISSUE_IS_EMPTY",		ARMV7_EVENT_67H)	\
581	__PMC_EV_ALIAS("INSTR_RENAMED",			ARMV7_EVENT_68H)	\
582	__PMC_EV_ALIAS("PREDICTABLE_FUNCTION_RETURN",	ARMV7_EVENT_6EH)	\
583	__PMC_EV_ALIAS("MAIN_EXECUTION_UNIT_PIPE",	ARMV7_EVENT_70H)	\
584	__PMC_EV_ALIAS("SECOND_EXECUTION_UNIT_PIPE",	ARMV7_EVENT_71H)	\
585	__PMC_EV_ALIAS("LOAD_STORE_PIPE",		ARMV7_EVENT_72H)	\
586	__PMC_EV_ALIAS("FLOATING_POINT_INSTR_RENAMED",	ARMV7_EVENT_73H)	\
587	__PMC_EV_ALIAS("NEON_INSTRS_RENAMED",		ARMV7_EVENT_74H)	\
588	__PMC_EV_ALIAS("PLD_STALL",			ARMV7_EVENT_80H)	\
589	__PMC_EV_ALIAS("WRITE_STALL",			ARMV7_EVENT_81H)	\
590	__PMC_EV_ALIAS("INSTR_MAIN_TLB_MISS_STALL",	ARMV7_EVENT_82H)	\
591	__PMC_EV_ALIAS("DATA_MAIN_TLB_MISS_STALL",	ARMV7_EVENT_83H)	\
592	__PMC_EV_ALIAS("INSTR_MICRO_TLB_MISS_STALL",	ARMV7_EVENT_84H)	\
593	__PMC_EV_ALIAS("DATA_MICRO_TLB_MISS_STALL",	ARMV7_EVENT_85H)	\
594	__PMC_EV_ALIAS("DMB_STALL",			ARMV7_EVENT_86H)	\
595	__PMC_EV_ALIAS("INTEGER_CORE_CLOCK_ENABLED",	ARMV7_EVENT_8AH)	\
596	__PMC_EV_ALIAS("DATA_ENGINE_CLOCK_ENABLED",	ARMV7_EVENT_8BH)	\
597	__PMC_EV_ALIAS("ISB",				ARMV7_EVENT_90H)	\
598	__PMC_EV_ALIAS("DSB",				ARMV7_EVENT_91H)	\
599	__PMC_EV_ALIAS("DMB",				ARMV7_EVENT_92H)	\
600	__PMC_EV_ALIAS("EXTERNAL_INTERRUPT",		ARMV7_EVENT_93H)	\
601	__PMC_EV_ALIAS("PLE_CACHE_LINE_REQ_COMPLETED",	ARMV7_EVENT_A0H)	\
602	__PMC_EV_ALIAS("PLE_CACHE_LINE_REQ_SKIPPED",	ARMV7_EVENT_A1H)	\
603	__PMC_EV_ALIAS("PLE_FIFO_FLUSH",		ARMV7_EVENT_A2H)	\
604	__PMC_EV_ALIAS("PLE_REQUEST_COMPLETED",		ARMV7_EVENT_A3H)	\
605	__PMC_EV_ALIAS("PLE_FIFO_OVERFLOW",		ARMV7_EVENT_A4H)	\
606	__PMC_EV_ALIAS("PLE_REQUEST_PROGRAMMED",	ARMV7_EVENT_A5H)
607
608/*
609 * ARMv8 Events
610 */
611
612#define	__PMC_EV_ARMV8()			\
613	__PMC_EV(ARMV8, EVENT_00H)		\
614	__PMC_EV(ARMV8, EVENT_01H)		\
615	__PMC_EV(ARMV8, EVENT_02H)		\
616	__PMC_EV(ARMV8, EVENT_03H)		\
617	__PMC_EV(ARMV8, EVENT_04H)		\
618	__PMC_EV(ARMV8, EVENT_05H)		\
619	__PMC_EV(ARMV8, EVENT_06H)		\
620	__PMC_EV(ARMV8, EVENT_07H)		\
621	__PMC_EV(ARMV8, EVENT_08H)		\
622	__PMC_EV(ARMV8, EVENT_09H)		\
623	__PMC_EV(ARMV8, EVENT_0AH)		\
624	__PMC_EV(ARMV8, EVENT_0BH)		\
625	__PMC_EV(ARMV8, EVENT_0CH)		\
626	__PMC_EV(ARMV8, EVENT_0DH)		\
627	__PMC_EV(ARMV8, EVENT_0EH)		\
628	__PMC_EV(ARMV8, EVENT_0FH)		\
629	__PMC_EV(ARMV8, EVENT_10H)		\
630	__PMC_EV(ARMV8, EVENT_11H)		\
631	__PMC_EV(ARMV8, EVENT_12H)		\
632	__PMC_EV(ARMV8, EVENT_13H)		\
633	__PMC_EV(ARMV8, EVENT_14H)		\
634	__PMC_EV(ARMV8, EVENT_15H)		\
635	__PMC_EV(ARMV8, EVENT_16H)		\
636	__PMC_EV(ARMV8, EVENT_17H)		\
637	__PMC_EV(ARMV8, EVENT_18H)		\
638	__PMC_EV(ARMV8, EVENT_19H)		\
639	__PMC_EV(ARMV8, EVENT_1AH)		\
640	__PMC_EV(ARMV8, EVENT_1BH)		\
641	__PMC_EV(ARMV8, EVENT_1CH)		\
642	__PMC_EV(ARMV8, EVENT_1DH)		\
643	__PMC_EV(ARMV8, EVENT_1EH)		\
644	__PMC_EV(ARMV8, EVENT_1FH)		\
645	__PMC_EV(ARMV8, EVENT_20H)		\
646	__PMC_EV(ARMV8, EVENT_21H)		\
647	__PMC_EV(ARMV8, EVENT_22H)		\
648	__PMC_EV(ARMV8, EVENT_23H)		\
649	__PMC_EV(ARMV8, EVENT_24H)		\
650	__PMC_EV(ARMV8, EVENT_25H)		\
651	__PMC_EV(ARMV8, EVENT_26H)		\
652	__PMC_EV(ARMV8, EVENT_27H)		\
653	__PMC_EV(ARMV8, EVENT_28H)		\
654	__PMC_EV(ARMV8, EVENT_29H)		\
655	__PMC_EV(ARMV8, EVENT_2AH)		\
656	__PMC_EV(ARMV8, EVENT_2BH)		\
657	__PMC_EV(ARMV8, EVENT_2CH)		\
658	__PMC_EV(ARMV8, EVENT_2DH)		\
659	__PMC_EV(ARMV8, EVENT_2EH)		\
660	__PMC_EV(ARMV8, EVENT_2FH)		\
661	__PMC_EV(ARMV8, EVENT_30H)		\
662	__PMC_EV(ARMV8, EVENT_31H)		\
663	__PMC_EV(ARMV8, EVENT_32H)		\
664	__PMC_EV(ARMV8, EVENT_33H)		\
665	__PMC_EV(ARMV8, EVENT_34H)		\
666	__PMC_EV(ARMV8, EVENT_35H)		\
667	__PMC_EV(ARMV8, EVENT_36H)		\
668	__PMC_EV(ARMV8, EVENT_37H)		\
669	__PMC_EV(ARMV8, EVENT_38H)		\
670	__PMC_EV(ARMV8, EVENT_39H)		\
671	__PMC_EV(ARMV8, EVENT_3AH)		\
672	__PMC_EV(ARMV8, EVENT_3BH)		\
673	__PMC_EV(ARMV8, EVENT_3CH)		\
674	__PMC_EV(ARMV8, EVENT_3DH)		\
675	__PMC_EV(ARMV8, EVENT_3EH)		\
676	__PMC_EV(ARMV8, EVENT_3FH)		\
677	__PMC_EV(ARMV8, EVENT_40H)		\
678	__PMC_EV(ARMV8, EVENT_41H)		\
679	__PMC_EV(ARMV8, EVENT_42H)		\
680	__PMC_EV(ARMV8, EVENT_43H)		\
681	__PMC_EV(ARMV8, EVENT_44H)		\
682	__PMC_EV(ARMV8, EVENT_45H)		\
683	__PMC_EV(ARMV8, EVENT_46H)		\
684	__PMC_EV(ARMV8, EVENT_47H)		\
685	__PMC_EV(ARMV8, EVENT_48H)		\
686	__PMC_EV(ARMV8, EVENT_49H)		\
687	__PMC_EV(ARMV8, EVENT_4AH)		\
688	__PMC_EV(ARMV8, EVENT_4BH)		\
689	__PMC_EV(ARMV8, EVENT_4CH)		\
690	__PMC_EV(ARMV8, EVENT_4DH)		\
691	__PMC_EV(ARMV8, EVENT_4EH)		\
692	__PMC_EV(ARMV8, EVENT_4FH)		\
693	__PMC_EV(ARMV8, EVENT_50H)		\
694	__PMC_EV(ARMV8, EVENT_51H)		\
695	__PMC_EV(ARMV8, EVENT_52H)		\
696	__PMC_EV(ARMV8, EVENT_53H)		\
697	__PMC_EV(ARMV8, EVENT_54H)		\
698	__PMC_EV(ARMV8, EVENT_55H)		\
699	__PMC_EV(ARMV8, EVENT_56H)		\
700	__PMC_EV(ARMV8, EVENT_57H)		\
701	__PMC_EV(ARMV8, EVENT_58H)		\
702	__PMC_EV(ARMV8, EVENT_59H)		\
703	__PMC_EV(ARMV8, EVENT_5AH)		\
704	__PMC_EV(ARMV8, EVENT_5BH)		\
705	__PMC_EV(ARMV8, EVENT_5CH)		\
706	__PMC_EV(ARMV8, EVENT_5DH)		\
707	__PMC_EV(ARMV8, EVENT_5EH)		\
708	__PMC_EV(ARMV8, EVENT_5FH)		\
709	__PMC_EV(ARMV8, EVENT_60H)		\
710	__PMC_EV(ARMV8, EVENT_61H)		\
711	__PMC_EV(ARMV8, EVENT_62H)		\
712	__PMC_EV(ARMV8, EVENT_63H)		\
713	__PMC_EV(ARMV8, EVENT_64H)		\
714	__PMC_EV(ARMV8, EVENT_65H)		\
715	__PMC_EV(ARMV8, EVENT_66H)		\
716	__PMC_EV(ARMV8, EVENT_67H)		\
717	__PMC_EV(ARMV8, EVENT_68H)		\
718	__PMC_EV(ARMV8, EVENT_69H)		\
719	__PMC_EV(ARMV8, EVENT_6AH)		\
720	__PMC_EV(ARMV8, EVENT_6BH)		\
721	__PMC_EV(ARMV8, EVENT_6CH)		\
722	__PMC_EV(ARMV8, EVENT_6DH)		\
723	__PMC_EV(ARMV8, EVENT_6EH)		\
724	__PMC_EV(ARMV8, EVENT_6FH)		\
725	__PMC_EV(ARMV8, EVENT_70H)		\
726	__PMC_EV(ARMV8, EVENT_71H)		\
727	__PMC_EV(ARMV8, EVENT_72H)		\
728	__PMC_EV(ARMV8, EVENT_73H)		\
729	__PMC_EV(ARMV8, EVENT_74H)		\
730	__PMC_EV(ARMV8, EVENT_75H)		\
731	__PMC_EV(ARMV8, EVENT_76H)		\
732	__PMC_EV(ARMV8, EVENT_77H)		\
733	__PMC_EV(ARMV8, EVENT_78H)		\
734	__PMC_EV(ARMV8, EVENT_79H)		\
735	__PMC_EV(ARMV8, EVENT_7AH)		\
736	__PMC_EV(ARMV8, EVENT_7BH)		\
737	__PMC_EV(ARMV8, EVENT_7CH)		\
738	__PMC_EV(ARMV8, EVENT_7DH)		\
739	__PMC_EV(ARMV8, EVENT_7EH)		\
740	__PMC_EV(ARMV8, EVENT_7FH)		\
741	__PMC_EV(ARMV8, EVENT_80H)		\
742	__PMC_EV(ARMV8, EVENT_81H)		\
743	__PMC_EV(ARMV8, EVENT_82H)		\
744	__PMC_EV(ARMV8, EVENT_83H)		\
745	__PMC_EV(ARMV8, EVENT_84H)		\
746	__PMC_EV(ARMV8, EVENT_85H)		\
747	__PMC_EV(ARMV8, EVENT_86H)		\
748	__PMC_EV(ARMV8, EVENT_87H)		\
749	__PMC_EV(ARMV8, EVENT_88H)		\
750	__PMC_EV(ARMV8, EVENT_89H)		\
751	__PMC_EV(ARMV8, EVENT_8AH)		\
752	__PMC_EV(ARMV8, EVENT_8BH)		\
753	__PMC_EV(ARMV8, EVENT_8CH)		\
754	__PMC_EV(ARMV8, EVENT_8DH)		\
755	__PMC_EV(ARMV8, EVENT_8EH)		\
756	__PMC_EV(ARMV8, EVENT_8FH)		\
757	__PMC_EV(ARMV8, EVENT_90H)		\
758	__PMC_EV(ARMV8, EVENT_91H)		\
759	__PMC_EV(ARMV8, EVENT_92H)		\
760	__PMC_EV(ARMV8, EVENT_93H)		\
761	__PMC_EV(ARMV8, EVENT_94H)		\
762	__PMC_EV(ARMV8, EVENT_95H)		\
763	__PMC_EV(ARMV8, EVENT_96H)		\
764	__PMC_EV(ARMV8, EVENT_97H)		\
765	__PMC_EV(ARMV8, EVENT_98H)		\
766	__PMC_EV(ARMV8, EVENT_99H)		\
767	__PMC_EV(ARMV8, EVENT_9AH)		\
768	__PMC_EV(ARMV8, EVENT_9BH)		\
769	__PMC_EV(ARMV8, EVENT_9CH)		\
770	__PMC_EV(ARMV8, EVENT_9DH)		\
771	__PMC_EV(ARMV8, EVENT_9EH)		\
772	__PMC_EV(ARMV8, EVENT_9FH)		\
773	__PMC_EV(ARMV8, EVENT_A0H)		\
774	__PMC_EV(ARMV8, EVENT_A1H)		\
775	__PMC_EV(ARMV8, EVENT_A2H)		\
776	__PMC_EV(ARMV8, EVENT_A3H)		\
777	__PMC_EV(ARMV8, EVENT_A4H)		\
778	__PMC_EV(ARMV8, EVENT_A5H)		\
779	__PMC_EV(ARMV8, EVENT_A6H)		\
780	__PMC_EV(ARMV8, EVENT_A7H)		\
781	__PMC_EV(ARMV8, EVENT_A8H)		\
782	__PMC_EV(ARMV8, EVENT_A9H)		\
783	__PMC_EV(ARMV8, EVENT_AAH)		\
784	__PMC_EV(ARMV8, EVENT_ABH)		\
785	__PMC_EV(ARMV8, EVENT_ACH)		\
786	__PMC_EV(ARMV8, EVENT_ADH)		\
787	__PMC_EV(ARMV8, EVENT_AEH)		\
788	__PMC_EV(ARMV8, EVENT_AFH)		\
789	__PMC_EV(ARMV8, EVENT_B0H)		\
790	__PMC_EV(ARMV8, EVENT_B1H)		\
791	__PMC_EV(ARMV8, EVENT_B2H)		\
792	__PMC_EV(ARMV8, EVENT_B3H)		\
793	__PMC_EV(ARMV8, EVENT_B4H)		\
794	__PMC_EV(ARMV8, EVENT_B5H)		\
795	__PMC_EV(ARMV8, EVENT_B6H)		\
796	__PMC_EV(ARMV8, EVENT_B7H)		\
797	__PMC_EV(ARMV8, EVENT_B8H)		\
798	__PMC_EV(ARMV8, EVENT_B9H)		\
799	__PMC_EV(ARMV8, EVENT_BAH)		\
800	__PMC_EV(ARMV8, EVENT_BBH)		\
801	__PMC_EV(ARMV8, EVENT_BCH)		\
802	__PMC_EV(ARMV8, EVENT_BDH)		\
803	__PMC_EV(ARMV8, EVENT_BEH)		\
804	__PMC_EV(ARMV8, EVENT_BFH)		\
805	__PMC_EV(ARMV8, EVENT_C0H)		\
806	__PMC_EV(ARMV8, EVENT_C1H)		\
807	__PMC_EV(ARMV8, EVENT_C2H)		\
808	__PMC_EV(ARMV8, EVENT_C3H)		\
809	__PMC_EV(ARMV8, EVENT_C4H)		\
810	__PMC_EV(ARMV8, EVENT_C5H)		\
811	__PMC_EV(ARMV8, EVENT_C6H)		\
812	__PMC_EV(ARMV8, EVENT_C7H)		\
813	__PMC_EV(ARMV8, EVENT_C8H)		\
814	__PMC_EV(ARMV8, EVENT_C9H)		\
815	__PMC_EV(ARMV8, EVENT_CAH)		\
816	__PMC_EV(ARMV8, EVENT_CBH)		\
817	__PMC_EV(ARMV8, EVENT_CCH)		\
818	__PMC_EV(ARMV8, EVENT_CDH)		\
819	__PMC_EV(ARMV8, EVENT_CEH)		\
820	__PMC_EV(ARMV8, EVENT_CFH)		\
821	__PMC_EV(ARMV8, EVENT_D0H)		\
822	__PMC_EV(ARMV8, EVENT_D1H)		\
823	__PMC_EV(ARMV8, EVENT_D2H)		\
824	__PMC_EV(ARMV8, EVENT_D3H)		\
825	__PMC_EV(ARMV8, EVENT_D4H)		\
826	__PMC_EV(ARMV8, EVENT_D5H)		\
827	__PMC_EV(ARMV8, EVENT_D6H)		\
828	__PMC_EV(ARMV8, EVENT_D7H)		\
829	__PMC_EV(ARMV8, EVENT_D8H)		\
830	__PMC_EV(ARMV8, EVENT_D9H)		\
831	__PMC_EV(ARMV8, EVENT_DAH)		\
832	__PMC_EV(ARMV8, EVENT_DBH)		\
833	__PMC_EV(ARMV8, EVENT_DCH)		\
834	__PMC_EV(ARMV8, EVENT_DDH)		\
835	__PMC_EV(ARMV8, EVENT_DEH)		\
836	__PMC_EV(ARMV8, EVENT_DFH)		\
837	__PMC_EV(ARMV8, EVENT_E0H)		\
838	__PMC_EV(ARMV8, EVENT_E1H)		\
839	__PMC_EV(ARMV8, EVENT_E2H)		\
840	__PMC_EV(ARMV8, EVENT_E3H)		\
841	__PMC_EV(ARMV8, EVENT_E4H)		\
842	__PMC_EV(ARMV8, EVENT_E5H)		\
843	__PMC_EV(ARMV8, EVENT_E6H)		\
844	__PMC_EV(ARMV8, EVENT_E7H)		\
845	__PMC_EV(ARMV8, EVENT_E8H)		\
846	__PMC_EV(ARMV8, EVENT_E9H)		\
847	__PMC_EV(ARMV8, EVENT_EAH)		\
848	__PMC_EV(ARMV8, EVENT_EBH)		\
849	__PMC_EV(ARMV8, EVENT_ECH)		\
850	__PMC_EV(ARMV8, EVENT_EDH)		\
851	__PMC_EV(ARMV8, EVENT_EEH)		\
852	__PMC_EV(ARMV8, EVENT_EFH)		\
853	__PMC_EV(ARMV8, EVENT_F0H)		\
854	__PMC_EV(ARMV8, EVENT_F1H)		\
855	__PMC_EV(ARMV8, EVENT_F2H)		\
856	__PMC_EV(ARMV8, EVENT_F3H)		\
857	__PMC_EV(ARMV8, EVENT_F4H)		\
858	__PMC_EV(ARMV8, EVENT_F5H)		\
859	__PMC_EV(ARMV8, EVENT_F6H)		\
860	__PMC_EV(ARMV8, EVENT_F7H)		\
861	__PMC_EV(ARMV8, EVENT_F8H)		\
862	__PMC_EV(ARMV8, EVENT_F9H)		\
863	__PMC_EV(ARMV8, EVENT_FAH)		\
864	__PMC_EV(ARMV8, EVENT_FBH)		\
865	__PMC_EV(ARMV8, EVENT_FCH)		\
866	__PMC_EV(ARMV8, EVENT_FDH)		\
867	__PMC_EV(ARMV8, EVENT_FEH)		\
868	__PMC_EV(ARMV8, EVENT_FFH)
869
870#define	PMC_EV_ARMV8_FIRST	PMC_EV_ARMV8_EVENT_00H
871#define	PMC_EV_ARMV8_LAST	PMC_EV_ARMV8_EVENT_FFH
872
873#define	__PMC_EV_ALIAS_ARMV8_COMMON()					\
874	__PMC_EV_ALIAS("SW_INCR",		ARMV8_EVENT_00H)	\
875	__PMC_EV_ALIAS("L1I_CACHE_REFILL",	ARMV8_EVENT_01H)	\
876	__PMC_EV_ALIAS("L1I_TLB_REFILL",	ARMV8_EVENT_02H)	\
877	__PMC_EV_ALIAS("L1D_CACHE_REFILL",	ARMV8_EVENT_03H)	\
878	__PMC_EV_ALIAS("L1D_CACHE",		ARMV8_EVENT_04H)	\
879	__PMC_EV_ALIAS("L1D_TLB_REFILL",	ARMV8_EVENT_05H)	\
880	__PMC_EV_ALIAS("INST_RETIRED",		ARMV8_EVENT_08H)	\
881	__PMC_EV_ALIAS("EXC_TAKEN",		ARMV8_EVENT_09H)	\
882	__PMC_EV_ALIAS("EXC_RETURN",		ARMV8_EVENT_0AH)	\
883	__PMC_EV_ALIAS("CID_WRITE_RETIRED",	ARMV8_EVENT_0BH)	\
884	__PMC_EV_ALIAS("BR_MIS_PRED",		ARMV8_EVENT_10H)	\
885	__PMC_EV_ALIAS("CPU_CYCLES",		ARMV8_EVENT_11H)	\
886	__PMC_EV_ALIAS("BR_PRED",		ARMV8_EVENT_12H)	\
887	__PMC_EV_ALIAS("MEM_ACCESS",		ARMV8_EVENT_13H)	\
888	__PMC_EV_ALIAS("L1I_CACHE",		ARMV8_EVENT_14H)	\
889	__PMC_EV_ALIAS("L1D_CACHE_WB",		ARMV8_EVENT_15H)	\
890	__PMC_EV_ALIAS("L2D_CACHE",		ARMV8_EVENT_16H)	\
891	__PMC_EV_ALIAS("L2D_CACHE_REFILL",	ARMV8_EVENT_17H)	\
892	__PMC_EV_ALIAS("L2D_CACHE_WB",		ARMV8_EVENT_18H)	\
893	__PMC_EV_ALIAS("BUS_ACCESS",		ARMV8_EVENT_19H)	\
894	__PMC_EV_ALIAS("MEMORY_ERROR",		ARMV8_EVENT_1AH)	\
895	__PMC_EV_ALIAS("BUS_CYCLES",		ARMV8_EVENT_1DH)	\
896	__PMC_EV_ALIAS("CHAIN",			ARMV8_EVENT_1EH)	\
897	__PMC_EV_ALIAS("BUS_ACCESS_LD",		ARMV8_EVENT_60H)	\
898	__PMC_EV_ALIAS("BUS_ACCESS_ST",		ARMV8_EVENT_61H)	\
899	__PMC_EV_ALIAS("BR_INDIRECT_SPEC",	ARMV8_EVENT_7AH)	\
900	__PMC_EV_ALIAS("EXC_IRQ",		ARMV8_EVENT_86H)	\
901	__PMC_EV_ALIAS("EXC_FIQ",		ARMV8_EVENT_87H)
902
903#define	__PMC_EV_ALIAS_ARMV8_CORTEX_A53()				\
904	__PMC_EV_ALIAS_ARMV8_COMMON()					\
905	__PMC_EV_ALIAS("LD_RETIRED",		ARMV8_EVENT_06H)	\
906	__PMC_EV_ALIAS("ST_RETIRED",		ARMV8_EVENT_07H)	\
907	__PMC_EV_ALIAS("PC_WRITE_RETIRED",	ARMV8_EVENT_0CH)	\
908	__PMC_EV_ALIAS("BR_IMMED_RETIRED",	ARMV8_EVENT_0DH)	\
909	__PMC_EV_ALIAS("BR_RETURN_RETIRED",	ARMV8_EVENT_0EH)	\
910	__PMC_EV_ALIAS("UNALIGNED_LDST_RETIRED",ARMV8_EVENT_0FH)
911
912#define	__PMC_EV_ALIAS_ARMV8_CORTEX_A57_A76()				\
913	__PMC_EV_ALIAS_ARMV8_COMMON()					\
914	__PMC_EV_ALIAS("INST_SPEC",		ARMV8_EVENT_1BH)	\
915	__PMC_EV_ALIAS("TTBR_WRITE_RETIRED",	ARMV8_EVENT_1CH)	\
916	__PMC_EV_ALIAS("L1D_CACHE_LD",		ARMV8_EVENT_40H)	\
917	__PMC_EV_ALIAS("L1D_CACHE_ST",		ARMV8_EVENT_41H)	\
918	__PMC_EV_ALIAS("L1D_CACHE_REFILL_LD",	ARMV8_EVENT_42H)	\
919	__PMC_EV_ALIAS("L1D_CACHE_REFILL_ST",	ARMV8_EVENT_43H)	\
920	__PMC_EV_ALIAS("L1D_CACHE_WB_VICTIM",	ARMV8_EVENT_46H)	\
921	__PMC_EV_ALIAS("L1D_CACHE_WB_CLEAN",	ARMV8_EVENT_47H)	\
922	__PMC_EV_ALIAS("L1D_CACHE_INVAL",	ARMV8_EVENT_48H)	\
923	__PMC_EV_ALIAS("L1D_TLB_REFILL_LD",	ARMV8_EVENT_4CH)	\
924	__PMC_EV_ALIAS("L1D_TLB_REFILL_ST",	ARMV8_EVENT_4DH)	\
925	__PMC_EV_ALIAS("L2D_CACHE_LD",		ARMV8_EVENT_50H)	\
926	__PMC_EV_ALIAS("L2D_CACHE_ST",		ARMV8_EVENT_51H)	\
927	__PMC_EV_ALIAS("L2D_CACHE_REFILL_LD",	ARMV8_EVENT_52H)	\
928	__PMC_EV_ALIAS("L2D_CACHE_REFILL_ST",	ARMV8_EVENT_53H)	\
929	__PMC_EV_ALIAS("L2D_CACHE_WB_VICTIM",	ARMV8_EVENT_56H)	\
930	__PMC_EV_ALIAS("L2D_CACHE_WB_CLEAN",	ARMV8_EVENT_57H)	\
931	__PMC_EV_ALIAS("L2D_CACHE_INVAL",	ARMV8_EVENT_58H)	\
932	__PMC_EV_ALIAS("MEM_ACCESS_LD",		ARMV8_EVENT_66H)	\
933	__PMC_EV_ALIAS("MEM_ACCESS_ST",		ARMV8_EVENT_67H)	\
934	__PMC_EV_ALIAS("UNALIGNED_LD_SPEC",	ARMV8_EVENT_68H)	\
935	__PMC_EV_ALIAS("UNALIGNED_ST_SPEC",	ARMV8_EVENT_69H)	\
936	__PMC_EV_ALIAS("UNALIGNED_LDST_SPEC",	ARMV8_EVENT_6AH)	\
937	__PMC_EV_ALIAS("LDREX_SPEC",		ARMV8_EVENT_6CH)	\
938	__PMC_EV_ALIAS("STREX_PASS_SPEC",	ARMV8_EVENT_6DH)	\
939	__PMC_EV_ALIAS("STREX_FAIL_SPEC",	ARMV8_EVENT_6EH)	\
940	__PMC_EV_ALIAS("LD_SPEC",		ARMV8_EVENT_70H)	\
941	__PMC_EV_ALIAS("ST_SPEC",		ARMV8_EVENT_71H)	\
942	__PMC_EV_ALIAS("LDST_SPEC",		ARMV8_EVENT_72H)	\
943	__PMC_EV_ALIAS("DP_SPEC",		ARMV8_EVENT_73H)	\
944	__PMC_EV_ALIAS("ASE_SPEC",		ARMV8_EVENT_74H)	\
945	__PMC_EV_ALIAS("VFP_SPEC",		ARMV8_EVENT_75H)	\
946	__PMC_EV_ALIAS("PC_WRITE_SPEC",		ARMV8_EVENT_76H)	\
947	__PMC_EV_ALIAS("CRYPTO_SPEC",		ARMV8_EVENT_77H)	\
948	__PMC_EV_ALIAS("BR_IMMED_SPEC",		ARMV8_EVENT_78H)	\
949	__PMC_EV_ALIAS("BR_RETURN_SPEC",	ARMV8_EVENT_79H)	\
950	__PMC_EV_ALIAS("ISB_SPEC",		ARMV8_EVENT_7CH)	\
951	__PMC_EV_ALIAS("DSB_SPEC",		ARMV8_EVENT_7DH)	\
952	__PMC_EV_ALIAS("DMB_SPEC",		ARMV8_EVENT_7EH)	\
953	__PMC_EV_ALIAS("EXC_UNDEF",		ARMV8_EVENT_81H)	\
954	__PMC_EV_ALIAS("EXC_SVC",		ARMV8_EVENT_82H)	\
955	__PMC_EV_ALIAS("EXC_PABORT",		ARMV8_EVENT_83H)	\
956	__PMC_EV_ALIAS("EXC_DABORT",		ARMV8_EVENT_84H)	\
957	__PMC_EV_ALIAS("EXC_SMC",		ARMV8_EVENT_88H)	\
958	__PMC_EV_ALIAS("EXC_HVC",		ARMV8_EVENT_8AH)	\
959	__PMC_EV_ALIAS("EXC_TRAP_PABORT",	ARMV8_EVENT_8BH)	\
960	__PMC_EV_ALIAS("EXC_TRAP_DABORT",	ARMV8_EVENT_8CH)	\
961	__PMC_EV_ALIAS("EXC_TRAP_OTHER",	ARMV8_EVENT_8DH)	\
962	__PMC_EV_ALIAS("EXC_TRAP_IRQ",		ARMV8_EVENT_8EH)	\
963	__PMC_EV_ALIAS("EXC_TRAP_FIQ",		ARMV8_EVENT_8FH)	\
964	__PMC_EV_ALIAS("RC_LD_SPEC",		ARMV8_EVENT_90H)	\
965	__PMC_EV_ALIAS("RC_ST_SPEC",		ARMV8_EVENT_91H)
966
967#define	__PMC_EV_ALIAS_ARMV8_CORTEX_A57()				\
968	__PMC_EV_ALIAS_ARMV8_CORTEX_A57_A76()				\
969	__PMC_EV_ALIAS("BUS_ACCESS_SHARED",	ARMV8_EVENT_62H)	\
970	__PMC_EV_ALIAS("BUS_ACCESS_NOT_SHARED",	ARMV8_EVENT_63H)	\
971	__PMC_EV_ALIAS("BUS_ACCESS_NORMAL",	ARMV8_EVENT_64H)	\
972	__PMC_EV_ALIAS("BUS_ACCESS_PERIPH",	ARMV8_EVENT_65H)
973
974#define	__PMC_EV_ALIAS_ARMV8_CORTEX_A76()				\
975	__PMC_EV_ALIAS_ARMV8_CORTEX_A57_A76()				\
976	__PMC_EV_ALIAS("L2D_CACHE_ALLOCATE",	ARMV8_EVENT_20H)	\
977	__PMC_EV_ALIAS("BR_RETIRED",		ARMV8_EVENT_21H)	\
978	__PMC_EV_ALIAS("BR_MIS_PRED_RETIRED",	ARMV8_EVENT_22H)	\
979	__PMC_EV_ALIAS("STALL_FRONTEND",	ARMV8_EVENT_23H)	\
980	__PMC_EV_ALIAS("STALL_BACKEND",		ARMV8_EVENT_24H)	\
981	__PMC_EV_ALIAS("L1D_TLB",		ARMV8_EVENT_25H)	\
982	__PMC_EV_ALIAS("L1I_TLB",		ARMV8_EVENT_26H)	\
983	__PMC_EV_ALIAS("L3D_CACHE_ALLOCATE",	ARMV8_EVENT_29H)	\
984	__PMC_EV_ALIAS("L3D_CACHE_REFILL",	ARMV8_EVENT_2AH)	\
985	__PMC_EV_ALIAS("L3D_CACHE",		ARMV8_EVENT_2BH)	\
986	__PMC_EV_ALIAS("L2D_TLB_REFILL",	ARMV8_EVENT_2DH)	\
987	__PMC_EV_ALIAS("L2D_TLB",		ARMV8_EVENT_2FH)	\
988	__PMC_EV_ALIAS("REMOTE_ACCESS",		ARMV8_EVENT_31H)	\
989	__PMC_EV_ALIAS("DTLB_WALK",		ARMV8_EVENT_34H)	\
990	__PMC_EV_ALIAS("ITLB_WALK",		ARMV8_EVENT_35H)	\
991	__PMC_EV_ALIAS("LL_CACHE_RD",		ARMV8_EVENT_36H)	\
992	__PMC_EV_ALIAS("LL_CACHE_MISS_RD",	ARMV8_EVENT_37H)	\
993	__PMC_EV_ALIAS("L1D_CACHE_REFILL_INNER", ARMV8_EVENT_44H)	\
994	__PMC_EV_ALIAS("L1D_CACHE_REFILL_OUTER", ARMV8_EVENT_45H)	\
995	__PMC_EV_ALIAS("L1D_TLB_RD",		ARMV8_EVENT_4EH)	\
996	__PMC_EV_ALIAS("L1D_TLB_WR",		ARMV8_EVENT_4FH)	\
997	__PMC_EV_ALIAS("L2D_TLB_REFILL_RD",	ARMV8_EVENT_5CH)	\
998	__PMC_EV_ALIAS("L2D_TLB_REFILL_WR",	ARMV8_EVENT_5DH)	\
999	__PMC_EV_ALIAS("L2D_TLB_RD",		ARMV8_EVENT_5EH)	\
1000	__PMC_EV_ALIAS("L2D_TLB_WR",		ARMV8_EVENT_5FH)	\
1001	__PMC_EV_ALIAS("STREX_SPEC",		ARMV8_EVENT_6FH)	\
1002	__PMC_EV_ALIAS("L3_CACHE_RD",		ARMV8_EVENT_A0H)
1003
1004/*
1005 * MIPS Events from "Programming the MIPS32 24K Core Family",
1006 * Document Number: MD00355 Revision 04.63 December 19, 2008
1007 * These events are kept in the order found in Table 7.4.
1008 * For counters which are different between the left hand
1009 * column (0/2) and the right hand column (1/3) the left
1010 * hand is given first, e.g. BRANCH_COMPLETED and BRANCH_MISPRED
1011 * in the definition below.
1012 */
1013
1014#define __PMC_EV_MIPS24K()                         \
1015	__PMC_EV(MIPS24K, CYCLE)                   \
1016	__PMC_EV(MIPS24K, INSTR_EXECUTED)          \
1017	__PMC_EV(MIPS24K, BRANCH_COMPLETED)        \
1018	__PMC_EV(MIPS24K, BRANCH_MISPRED)          \
1019	__PMC_EV(MIPS24K, RETURN)                  \
1020	__PMC_EV(MIPS24K, RETURN_MISPRED)          \
1021	__PMC_EV(MIPS24K, RETURN_NOT_31)           \
1022	__PMC_EV(MIPS24K, RETURN_NOTPRED)          \
1023	__PMC_EV(MIPS24K, ITLB_ACCESS)             \
1024	__PMC_EV(MIPS24K, ITLB_MISS)               \
1025	__PMC_EV(MIPS24K, DTLB_ACCESS)             \
1026	__PMC_EV(MIPS24K, DTLB_MISS)               \
1027	__PMC_EV(MIPS24K, JTLB_IACCESS)            \
1028	__PMC_EV(MIPS24K, JTLB_IMISS)              \
1029	__PMC_EV(MIPS24K, JTLB_DACCESS)            \
1030	__PMC_EV(MIPS24K, JTLB_DMISS)              \
1031	__PMC_EV(MIPS24K, IC_FETCH)                \
1032	__PMC_EV(MIPS24K, IC_MISS)                 \
1033	__PMC_EV(MIPS24K, DC_LOADSTORE)            \
1034	__PMC_EV(MIPS24K, DC_WRITEBACK)            \
1035	__PMC_EV(MIPS24K, DC_MISS)                 \
1036	__PMC_EV(MIPS24K, STORE_MISS)              \
1037	__PMC_EV(MIPS24K, LOAD_MISS)               \
1038	__PMC_EV(MIPS24K, INTEGER_COMPLETED)       \
1039	__PMC_EV(MIPS24K, FP_COMPLETED)            \
1040	__PMC_EV(MIPS24K, LOAD_COMPLETED)          \
1041	__PMC_EV(MIPS24K, STORE_COMPLETED)         \
1042	__PMC_EV(MIPS24K, BARRIER_COMPLETED)       \
1043	__PMC_EV(MIPS24K, MIPS16_COMPLETED)        \
1044	__PMC_EV(MIPS24K, NOP_COMPLETED)           \
1045	__PMC_EV(MIPS24K, INTEGER_MULDIV_COMPLETED)\
1046	__PMC_EV(MIPS24K, RF_STALL)                \
1047	__PMC_EV(MIPS24K, INSTR_REFETCH)           \
1048	__PMC_EV(MIPS24K, STORE_COND_COMPLETED)    \
1049	__PMC_EV(MIPS24K, STORE_COND_FAILED)       \
1050	__PMC_EV(MIPS24K, ICACHE_REQUESTS)         \
1051	__PMC_EV(MIPS24K, ICACHE_HIT)              \
1052	__PMC_EV(MIPS24K, L2_WRITEBACK)            \
1053	__PMC_EV(MIPS24K, L2_ACCESS)               \
1054	__PMC_EV(MIPS24K, L2_MISS)                 \
1055	__PMC_EV(MIPS24K, L2_ERR_CORRECTED)        \
1056	__PMC_EV(MIPS24K, EXCEPTIONS)              \
1057	__PMC_EV(MIPS24K, RF_CYCLES_STALLED)       \
1058	__PMC_EV(MIPS24K, IFU_CYCLES_STALLED)      \
1059	__PMC_EV(MIPS24K, ALU_CYCLES_STALLED)      \
1060	__PMC_EV(MIPS24K, UNCACHED_LOAD)           \
1061	__PMC_EV(MIPS24K, UNCACHED_STORE)          \
1062	__PMC_EV(MIPS24K, CP2_REG_TO_REG_COMPLETED)\
1063	__PMC_EV(MIPS24K, MFTC_COMPLETED)          \
1064	__PMC_EV(MIPS24K, IC_BLOCKED_CYCLES)       \
1065	__PMC_EV(MIPS24K, DC_BLOCKED_CYCLES)       \
1066	__PMC_EV(MIPS24K, L2_IMISS_STALL_CYCLES)   \
1067	__PMC_EV(MIPS24K, L2_DMISS_STALL_CYCLES)   \
1068	__PMC_EV(MIPS24K, DMISS_CYCLES)            \
1069	__PMC_EV(MIPS24K, L2_MISS_CYCLES)          \
1070	__PMC_EV(MIPS24K, UNCACHED_BLOCK_CYCLES)   \
1071	__PMC_EV(MIPS24K, MDU_STALL_CYCLES)        \
1072	__PMC_EV(MIPS24K, FPU_STALL_CYCLES)        \
1073	__PMC_EV(MIPS24K, CP2_STALL_CYCLES)        \
1074	__PMC_EV(MIPS24K, COREXTEND_STALL_CYCLES)  \
1075	__PMC_EV(MIPS24K, ISPRAM_STALL_CYCLES)     \
1076	__PMC_EV(MIPS24K, DSPRAM_STALL_CYCLES)     \
1077	__PMC_EV(MIPS24K, CACHE_STALL_CYCLES)      \
1078	__PMC_EV(MIPS24K, LOAD_TO_USE_STALLS)      \
1079	__PMC_EV(MIPS24K, BASE_MISPRED_STALLS)     \
1080	__PMC_EV(MIPS24K, CPO_READ_STALLS)         \
1081	__PMC_EV(MIPS24K, BRANCH_MISPRED_CYCLES)   \
1082	__PMC_EV(MIPS24K, IFETCH_BUFFER_FULL)      \
1083	__PMC_EV(MIPS24K, FETCH_BUFFER_ALLOCATED)  \
1084	__PMC_EV(MIPS24K, EJTAG_ITRIGGER)          \
1085	__PMC_EV(MIPS24K, EJTAG_DTRIGGER)          \
1086	__PMC_EV(MIPS24K, FSB_LT_QUARTER)          \
1087	__PMC_EV(MIPS24K, FSB_QUARTER_TO_HALF)     \
1088	__PMC_EV(MIPS24K, FSB_GT_HALF)             \
1089	__PMC_EV(MIPS24K, FSB_FULL_PIPELINE_STALLS)\
1090	__PMC_EV(MIPS24K, LDQ_LT_QUARTER)          \
1091	__PMC_EV(MIPS24K, LDQ_QUARTER_TO_HALF)     \
1092	__PMC_EV(MIPS24K, LDQ_GT_HALF)             \
1093	__PMC_EV(MIPS24K, LDQ_FULL_PIPELINE_STALLS)\
1094	__PMC_EV(MIPS24K, WBB_LT_QUARTER)          \
1095	__PMC_EV(MIPS24K, WBB_QUARTER_TO_HALF)     \
1096	__PMC_EV(MIPS24K, WBB_GT_HALF)             \
1097	__PMC_EV(MIPS24K, WBB_FULL_PIPELINE_STALLS) \
1098	__PMC_EV(MIPS24K, REQUEST_LATENCY)         \
1099	__PMC_EV(MIPS24K, REQUEST_COUNT)
1100
1101#define	PMC_EV_MIPS24K_FIRST	PMC_EV_MIPS24K_CYCLE
1102#define	PMC_EV_MIPS24K_LAST	PMC_EV_MIPS24K_WBB_FULL_PIPELINE_STALLS
1103
1104/*
1105 * MIPS74k events.  Similar to MIPS24k, the arrangement
1106 * is (0,2) then (1,3) events.
1107 */
1108#define __PMC_EV_MIPS74K()			\
1109	__PMC_EV(MIPS74K, CYCLES)		\
1110	__PMC_EV(MIPS74K, INSTR_EXECUTED)	\
1111	__PMC_EV(MIPS74K, PREDICTED_JR_31)	\
1112	__PMC_EV(MIPS74K, JR_31_MISPREDICTIONS)	\
1113	__PMC_EV(MIPS74K, REDIRECT_STALLS)	\
1114	__PMC_EV(MIPS74K, JR_31_NO_PREDICTIONS)	\
1115	__PMC_EV(MIPS74K, ITLB_ACCESSES)	\
1116	__PMC_EV(MIPS74K, ITLB_MISSES)		\
1117	__PMC_EV(MIPS74K, JTLB_INSN_MISSES)	\
1118	__PMC_EV(MIPS74K, ICACHE_ACCESSES)	\
1119	__PMC_EV(MIPS74K, ICACHE_MISSES)	\
1120	__PMC_EV(MIPS74K, ICACHE_MISS_STALLS)	\
1121	__PMC_EV(MIPS74K, UNCACHED_IFETCH_STALLS)	\
1122	__PMC_EV(MIPS74K, PDTRACE_BACK_STALLS)	\
1123	__PMC_EV(MIPS74K, IFU_REPLAYS)		\
1124	__PMC_EV(MIPS74K, KILLED_FETCH_SLOTS)	\
1125	__PMC_EV(MIPS74K, IFU_IDU_MISS_PRED_UPSTREAM_CYCLES)	\
1126	__PMC_EV(MIPS74K, IFU_IDU_NO_FETCH_CYCLES)	\
1127	__PMC_EV(MIPS74K, IFU_IDU_CLOGED_DOWNSTREAM_CYCLES)	\
1128	__PMC_EV(MIPS74K, DDQ0_FULL_DR_STALLS)	\
1129	__PMC_EV(MIPS74K, DDQ1_FULL_DR_STALLS)	\
1130	__PMC_EV(MIPS74K, ALCB_FULL_DR_STALLS)	\
1131	__PMC_EV(MIPS74K, AGCB_FULL_DR_STALLS)	\
1132	__PMC_EV(MIPS74K, CLDQ_FULL_DR_STALLS)	\
1133	__PMC_EV(MIPS74K, IODQ_FULL_DR_STALLS)	\
1134	__PMC_EV(MIPS74K, ALU_EMPTY_CYCLES)	\
1135	__PMC_EV(MIPS74K, AGEN_EMPTY_CYCLES)	\
1136	__PMC_EV(MIPS74K, ALU_OPERANDS_NOT_READY_CYCLES)	\
1137	__PMC_EV(MIPS74K, AGEN_OPERANDS_NOT_READY_CYCLES)	\
1138	__PMC_EV(MIPS74K, ALU_NO_ISSUES_CYCLES)	\
1139	__PMC_EV(MIPS74K, AGEN_NO_ISSUES_CYCLES)	\
1140	__PMC_EV(MIPS74K, ALU_BUBBLE_CYCLES)	\
1141	__PMC_EV(MIPS74K, AGEN_BUBBLE_CYCLES)	\
1142	__PMC_EV(MIPS74K, SINGLE_ISSUE_CYCLES)	\
1143	__PMC_EV(MIPS74K, DUAL_ISSUE_CYCLES)	\
1144	__PMC_EV(MIPS74K, OOO_ALU_ISSUE_CYCLES)	\
1145	__PMC_EV(MIPS74K, OOO_AGEN_ISSUE_CYCLES)	\
1146	__PMC_EV(MIPS74K, JALR_JALR_HB_INSNS)	\
1147	__PMC_EV(MIPS74K, DCACHE_LINE_REFILL_REQUESTS)	\
1148	__PMC_EV(MIPS74K, DCACHE_LOAD_ACCESSES)	\
1149	__PMC_EV(MIPS74K, DCACHE_ACCESSES)	\
1150	__PMC_EV(MIPS74K, DCACHE_WRITEBACKS)	\
1151	__PMC_EV(MIPS74K, DCACHE_MISSES)	\
1152	__PMC_EV(MIPS74K, JTLB_DATA_ACCESSES)	\
1153	__PMC_EV(MIPS74K, JTLB_DATA_MISSES)	\
1154	__PMC_EV(MIPS74K, LOAD_STORE_REPLAYS)	\
1155	__PMC_EV(MIPS74K, VA_TRANSALTION_CORNER_CASES)	\
1156	__PMC_EV(MIPS74K, LOAD_STORE_BLOCKED_CYCLES)	\
1157	__PMC_EV(MIPS74K, LOAD_STORE_NO_FILL_REQUESTS)	\
1158	__PMC_EV(MIPS74K, L2_CACHE_WRITEBACKS)	\
1159	__PMC_EV(MIPS74K, L2_CACHE_ACCESSES)	\
1160	__PMC_EV(MIPS74K, L2_CACHE_MISSES)	\
1161	__PMC_EV(MIPS74K, L2_CACHE_MISS_CYCLES)	\
1162	__PMC_EV(MIPS74K, FSB_FULL_STALLS)	\
1163	__PMC_EV(MIPS74K, FSB_OVER_50_FULL)	\
1164	__PMC_EV(MIPS74K, LDQ_FULL_STALLS)	\
1165	__PMC_EV(MIPS74K, LDQ_OVER_50_FULL)	\
1166	__PMC_EV(MIPS74K, WBB_FULL_STALLS)	\
1167	__PMC_EV(MIPS74K, WBB_OVER_50_FULL)	\
1168	__PMC_EV(MIPS74K, LOAD_MISS_CONSUMER_REPLAYS)	\
1169	__PMC_EV(MIPS74K, CP1_CP2_LOAD_INSNS)	\
1170	__PMC_EV(MIPS74K, JR_NON_31_INSNS)	\
1171	__PMC_EV(MIPS74K, MISPREDICTED_JR_31_INSNS)	\
1172	__PMC_EV(MIPS74K, BRANCH_INSNS)		\
1173	__PMC_EV(MIPS74K, CP1_CP2_COND_BRANCH_INSNS)	\
1174	__PMC_EV(MIPS74K, BRANCH_LIKELY_INSNS)	\
1175	__PMC_EV(MIPS74K, MISPREDICTED_BRANCH_LIKELY_INSNS)	\
1176	__PMC_EV(MIPS74K, COND_BRANCH_INSNS)	\
1177	__PMC_EV(MIPS74K, MISPREDICTED_BRANCH_INSNS)	\
1178	__PMC_EV(MIPS74K, INTEGER_INSNS)	\
1179	__PMC_EV(MIPS74K, FPU_INSNS)		\
1180	__PMC_EV(MIPS74K, LOAD_INSNS)		\
1181	__PMC_EV(MIPS74K, STORE_INSNS)		\
1182	__PMC_EV(MIPS74K, J_JAL_INSNS)		\
1183	__PMC_EV(MIPS74K, MIPS16_INSNS)		\
1184	__PMC_EV(MIPS74K, NOP_INSNS)		\
1185	__PMC_EV(MIPS74K, NT_MUL_DIV_INSNS)	\
1186	__PMC_EV(MIPS74K, DSP_INSNS)		\
1187	__PMC_EV(MIPS74K, ALU_DSP_SATURATION_INSNS)	\
1188	__PMC_EV(MIPS74K, DSP_BRANCH_INSNS)	\
1189	__PMC_EV(MIPS74K, MDU_DSP_SATURATION_INSNS)	\
1190	__PMC_EV(MIPS74K, UNCACHED_LOAD_INSNS)	\
1191	__PMC_EV(MIPS74K, UNCACHED_STORE_INSNS)	\
1192	__PMC_EV(MIPS74K, EJTAG_INSN_TRIGGERS)	\
1193	__PMC_EV(MIPS74K, CP1_BRANCH_MISPREDICTIONS)	\
1194	__PMC_EV(MIPS74K, SC_INSNS)		\
1195	__PMC_EV(MIPS74K, FAILED_SC_INSNS)	\
1196	__PMC_EV(MIPS74K, PREFETCH_INSNS)	\
1197	__PMC_EV(MIPS74K, CACHE_HIT_PREFETCH_INSNS)	\
1198	__PMC_EV(MIPS74K, NO_INSN_CYCLES)	\
1199	__PMC_EV(MIPS74K, LOAD_MISS_INSNS)	\
1200	__PMC_EV(MIPS74K, ONE_INSN_CYCLES)	\
1201	__PMC_EV(MIPS74K, TWO_INSNS_CYCLES)	\
1202	__PMC_EV(MIPS74K, GFIFO_BLOCKED_CYCLES)	\
1203	__PMC_EV(MIPS74K, CP1_CP2_STORE_INSNS)	\
1204	__PMC_EV(MIPS74K, MISPREDICTION_STALLS)	\
1205	__PMC_EV(MIPS74K, MISPREDICTED_BRANCH_INSNS_CYCLES)	\
1206	__PMC_EV(MIPS74K, EXCEPTIONS_TAKEN)	\
1207	__PMC_EV(MIPS74K, GRADUATION_REPLAYS)	\
1208	__PMC_EV(MIPS74K, COREEXTEND_EVENTS)	\
1209	__PMC_EV(MIPS74K, ISPRAM_EVENTS)	\
1210	__PMC_EV(MIPS74K, DSPRAM_EVENTS)	\
1211	__PMC_EV(MIPS74K, L2_CACHE_SINGLE_BIT_ERRORS)	\
1212	__PMC_EV(MIPS74K, SYSTEM_EVENT_0)	\
1213	__PMC_EV(MIPS74K, SYSTEM_EVENT_1)	\
1214	__PMC_EV(MIPS74K, SYSTEM_EVENT_2)	\
1215	__PMC_EV(MIPS74K, SYSTEM_EVENT_3)	\
1216	__PMC_EV(MIPS74K, SYSTEM_EVENT_4)	\
1217	__PMC_EV(MIPS74K, SYSTEM_EVENT_5)	\
1218	__PMC_EV(MIPS74K, SYSTEM_EVENT_6)	\
1219	__PMC_EV(MIPS74K, SYSTEM_EVENT_7)	\
1220	__PMC_EV(MIPS74K, OCP_ALL_REQUESTS)	\
1221	__PMC_EV(MIPS74K, OCP_ALL_CACHEABLE_REQUESTS)	\
1222	__PMC_EV(MIPS74K, OCP_READ_REQUESTS)	\
1223	__PMC_EV(MIPS74K, OCP_READ_CACHEABLE_REQUESTS)	\
1224	__PMC_EV(MIPS74K, OCP_WRITE_REQUESTS)	\
1225	__PMC_EV(MIPS74K, OCP_WRITE_CACHEABLE_REQUESTS)	\
1226	__PMC_EV(MIPS74K, FSB_LESS_25_FULL)	\
1227	__PMC_EV(MIPS74K, FSB_25_50_FULL)	\
1228	__PMC_EV(MIPS74K, LDQ_LESS_25_FULL)	\
1229	__PMC_EV(MIPS74K, LDQ_25_50_FULL)	\
1230	__PMC_EV(MIPS74K, WBB_LESS_25_FULL)	\
1231	__PMC_EV(MIPS74K, WBB_25_50_FULL)
1232
1233#define	PMC_EV_MIPS74K_FIRST	PMC_EV_MIPS74K_CYCLES
1234#define	PMC_EV_MIPS74K_LAST	PMC_EV_MIPS74K_WBB_25_50_FULL
1235
1236#define __PMC_EV_BERI()					\
1237	__PMC_EV(BERI, CYCLE)				\
1238	__PMC_EV(BERI, INST)				\
1239	__PMC_EV(BERI, INST_USER)			\
1240	__PMC_EV(BERI, INST_KERNEL)			\
1241	__PMC_EV(BERI, IMPRECISE_SETBOUNDS)		\
1242	__PMC_EV(BERI, UNREPRESENTABLE_CAPS)		\
1243	__PMC_EV(BERI, ITLB_MISS)			\
1244	__PMC_EV(BERI, DTLB_MISS)			\
1245	__PMC_EV(BERI, ICACHE_WRITE_HIT)		\
1246	__PMC_EV(BERI, ICACHE_WRITE_MISS)		\
1247	__PMC_EV(BERI, ICACHE_READ_HIT)			\
1248	__PMC_EV(BERI, ICACHE_READ_MISS)		\
1249	__PMC_EV(BERI, ICACHE_EVICT)			\
1250	__PMC_EV(BERI, DCACHE_WRITE_HIT)		\
1251	__PMC_EV(BERI, DCACHE_WRITE_MISS)		\
1252	__PMC_EV(BERI, DCACHE_READ_HIT)			\
1253	__PMC_EV(BERI, DCACHE_READ_MISS)		\
1254	__PMC_EV(BERI, DCACHE_EVICT)			\
1255	__PMC_EV(BERI, DCACHE_SET_TAG_WRITE)		\
1256	__PMC_EV(BERI, DCACHE_SET_TAG_READ)		\
1257	__PMC_EV(BERI, L2CACHE_WRITE_HIT)		\
1258	__PMC_EV(BERI, L2CACHE_WRITE_MISS)		\
1259	__PMC_EV(BERI, L2CACHE_READ_HIT)		\
1260	__PMC_EV(BERI, L2CACHE_READ_MISS)		\
1261	__PMC_EV(BERI, L2CACHE_EVICT)			\
1262	__PMC_EV(BERI, L2CACHE_SET_TAG_WRITE)		\
1263	__PMC_EV(BERI, L2CACHE_SET_TAG_READ)		\
1264	__PMC_EV(BERI, MEM_BYTE_READ)			\
1265	__PMC_EV(BERI, MEM_BYTE_WRITE)			\
1266	__PMC_EV(BERI, MEM_HWORD_READ)			\
1267	__PMC_EV(BERI, MEM_HWORD_WRITE)			\
1268	__PMC_EV(BERI, MEM_WORD_READ)			\
1269	__PMC_EV(BERI, MEM_WORD_WRITE)			\
1270	__PMC_EV(BERI, MEM_DWORD_READ)			\
1271	__PMC_EV(BERI, MEM_DWORD_WRITE)			\
1272	__PMC_EV(BERI, MEM_CAP_READ)			\
1273	__PMC_EV(BERI, MEM_CAP_WRITE)			\
1274	__PMC_EV(BERI, MEM_CAP_READ_TAG_SET)		\
1275	__PMC_EV(BERI, MEM_CAP_WRITE_TAG_SET)		\
1276	__PMC_EV(BERI, TAGCACHE_WRITE_HIT)		\
1277	__PMC_EV(BERI, TAGCACHE_WRITE_MISS)		\
1278	__PMC_EV(BERI, TAGCACHE_READ_HIT)		\
1279	__PMC_EV(BERI, TAGCACHE_READ_MISS)		\
1280	__PMC_EV(BERI, TAGCACHE_EVICT)			\
1281	__PMC_EV(BERI, L2CACHEMASTER_READ_REQ)		\
1282	__PMC_EV(BERI, L2CACHEMASTER_WRITE_REQ)		\
1283	__PMC_EV(BERI, L2CACHEMASTER_WRITE_REQ_FLIT)	\
1284	__PMC_EV(BERI, L2CACHEMASTER_READ_RSP)		\
1285	__PMC_EV(BERI, L2CACHEMASTER_READ_RSP_FLIT)	\
1286	__PMC_EV(BERI, L2CACHEMASTER_WRITE_RSP)		\
1287	__PMC_EV(BERI, TAGCACHEMASTER_READ_REQ)		\
1288	__PMC_EV(BERI, TAGCACHEMASTER_WRITE_REQ)	\
1289	__PMC_EV(BERI, TAGCACHEMASTER_WRITE_REQ_FLIT)	\
1290	__PMC_EV(BERI, TAGCACHEMASTER_READ_RSP)		\
1291	__PMC_EV(BERI, TAGCACHEMASTER_READ_RSP_FLIT)	\
1292	__PMC_EV(BERI, TAGCACHEMASTER_WRITE_RSP)
1293
1294#define	PMC_EV_BERI_FIRST	PMC_EV_BERI_CYCLE
1295#define	PMC_EV_BERI_LAST	PMC_EV_BERI_TAGCACHEMASTER_WRITE_RSP
1296
1297/*
1298 * Cavium Octeon counters. Obtained from cvmx-core.h
1299 */
1300#define __PMC_EV_OCTEON()                         \
1301    __PMC_EV(OCTEON, CLK)                         \
1302    __PMC_EV(OCTEON, ISSUE)                       \
1303    __PMC_EV(OCTEON, RET)                         \
1304    __PMC_EV(OCTEON, NISSUE)                      \
1305    __PMC_EV(OCTEON, SISSUE)                      \
1306    __PMC_EV(OCTEON, DISSUE)                      \
1307    __PMC_EV(OCTEON, IFI)                         \
1308    __PMC_EV(OCTEON, BR)                          \
1309    __PMC_EV(OCTEON, BRMIS)                       \
1310    __PMC_EV(OCTEON, J)                           \
1311    __PMC_EV(OCTEON, JMIS)                        \
1312    __PMC_EV(OCTEON, REPLAY)                      \
1313    __PMC_EV(OCTEON, IUNA)                        \
1314    __PMC_EV(OCTEON, TRAP)                        \
1315    __PMC_EV(OCTEON, UULOAD)                      \
1316    __PMC_EV(OCTEON, UUSTORE)                     \
1317    __PMC_EV(OCTEON, ULOAD)                       \
1318    __PMC_EV(OCTEON, USTORE)                      \
1319    __PMC_EV(OCTEON, EC)                          \
1320    __PMC_EV(OCTEON, MC)                          \
1321    __PMC_EV(OCTEON, CC)                          \
1322    __PMC_EV(OCTEON, CSRC)                        \
1323    __PMC_EV(OCTEON, CFETCH)                      \
1324    __PMC_EV(OCTEON, CPREF)                       \
1325    __PMC_EV(OCTEON, ICA)                         \
1326    __PMC_EV(OCTEON, II)                          \
1327    __PMC_EV(OCTEON, IP)                          \
1328    __PMC_EV(OCTEON, CIMISS)                      \
1329    __PMC_EV(OCTEON, WBUF)                        \
1330    __PMC_EV(OCTEON, WDAT)                        \
1331    __PMC_EV(OCTEON, WBUFLD)                      \
1332    __PMC_EV(OCTEON, WBUFFL)                      \
1333    __PMC_EV(OCTEON, WBUFTR)                      \
1334    __PMC_EV(OCTEON, BADD)                        \
1335    __PMC_EV(OCTEON, BADDL2)                      \
1336    __PMC_EV(OCTEON, BFILL)                       \
1337    __PMC_EV(OCTEON, DDIDS)                       \
1338    __PMC_EV(OCTEON, IDIDS)                       \
1339    __PMC_EV(OCTEON, DIDNA)                       \
1340    __PMC_EV(OCTEON, LDS)                         \
1341    __PMC_EV(OCTEON, LMLDS)                       \
1342    __PMC_EV(OCTEON, IOLDS)                       \
1343    __PMC_EV(OCTEON, DMLDS)                       \
1344    __PMC_EV(OCTEON, STS)                         \
1345    __PMC_EV(OCTEON, LMSTS)                       \
1346    __PMC_EV(OCTEON, IOSTS)                       \
1347    __PMC_EV(OCTEON, IOBDMA)                      \
1348    __PMC_EV(OCTEON, DTLB)                        \
1349    __PMC_EV(OCTEON, DTLBAD)                      \
1350    __PMC_EV(OCTEON, ITLB)                        \
1351    __PMC_EV(OCTEON, SYNC)                        \
1352    __PMC_EV(OCTEON, SYNCIOB)                     \
1353    __PMC_EV(OCTEON, SYNCW)
1354
1355#define	PMC_EV_OCTEON_FIRST	PMC_EV_OCTEON_CLK
1356#define	PMC_EV_OCTEON_LAST	PMC_EV_OCTEON_SYNCW
1357
1358#define __PMC_EV_PPC7450()						\
1359	__PMC_EV(PPC7450, CYCLE)					\
1360	__PMC_EV(PPC7450, INSTR_COMPLETED)				\
1361	__PMC_EV(PPC7450, TLB_BIT_TRANSITIONS)				\
1362	__PMC_EV(PPC7450, INSTR_DISPATCHED)				\
1363	__PMC_EV(PPC7450, PMON_EXCEPT)					\
1364	__PMC_EV(PPC7450, PMON_SIG)					\
1365	__PMC_EV(PPC7450, VPU_INSTR_COMPLETED)				\
1366	__PMC_EV(PPC7450, VFPU_INSTR_COMPLETED)				\
1367	__PMC_EV(PPC7450, VIU1_INSTR_COMPLETED)				\
1368	__PMC_EV(PPC7450, VIU2_INSTR_COMPLETED)				\
1369	__PMC_EV(PPC7450, MTVSCR_INSTR_COMPLETED)			\
1370	__PMC_EV(PPC7450, MTVRSAVE_INSTR_COMPLETED)			\
1371	__PMC_EV(PPC7450, VPU_INSTR_WAIT_CYCLES)			\
1372	__PMC_EV(PPC7450, VFPU_INSTR_WAIT_CYCLES)			\
1373	__PMC_EV(PPC7450, VIU1_INSTR_WAIT_CYCLES)			\
1374	__PMC_EV(PPC7450, VIU2_INSTR_WAIT_CYCLES)			\
1375	__PMC_EV(PPC7450, MFVSCR_SYNC_CYCLES)				\
1376	__PMC_EV(PPC7450, VSCR_SAT_SET)					\
1377	__PMC_EV(PPC7450, STORE_INSTR_COMPLETED)			\
1378	__PMC_EV(PPC7450, L1_INSTR_CACHE_MISSES)			\
1379	__PMC_EV(PPC7450, L1_DATA_SNOOPS)				\
1380	__PMC_EV(PPC7450, UNRESOLVED_BRANCHES)				\
1381	__PMC_EV(PPC7450, SPEC_BUFFER_CYCLES)				\
1382	__PMC_EV(PPC7450, BRANCH_UNIT_STALL_CYCLES)			\
1383	__PMC_EV(PPC7450, TRUE_BRANCH_TARGET_HITS)			\
1384	__PMC_EV(PPC7450, BRANCH_LINK_STAC_PREDICTED)			\
1385	__PMC_EV(PPC7450, GPR_ISSUE_QUEUE_DISPATCHES)			\
1386	__PMC_EV(PPC7450, CYCLES_THREE_INSTR_DISPATCHED)		\
1387	__PMC_EV(PPC7450, THRESHOLD_INSTR_QUEUE_ENTRIES_CYCLES)		\
1388	__PMC_EV(PPC7450, THRESHOLD_VEC_INSTR_QUEUE_ENTRIES_CYCLES)	\
1389	__PMC_EV(PPC7450, CYCLES_NO_COMPLETED_INSTRS)			\
1390	__PMC_EV(PPC7450, IU2_INSTR_COMPLETED)				\
1391	__PMC_EV(PPC7450, BRANCHES_COMPLETED)				\
1392	__PMC_EV(PPC7450, EIEIO_INSTR_COMPLETED)			\
1393	__PMC_EV(PPC7450, MTSPR_INSTR_COMPLETED)			\
1394	__PMC_EV(PPC7450, SC_INSTR_COMPLETED)				\
1395	__PMC_EV(PPC7450, LS_LM_COMPLETED)				\
1396	__PMC_EV(PPC7450, ITLB_HW_TABLE_SEARCH_CYCLES)			\
1397	__PMC_EV(PPC7450, DTLB_HW_SEARCH_CYCLES_OVER_THRESHOLD)		\
1398	__PMC_EV(PPC7450, L1_INSTR_CACHE_ACCESSES)			\
1399	__PMC_EV(PPC7450, INSTR_BKPT_MATCHES)				\
1400	__PMC_EV(PPC7450, L1_DATA_CACHE_LOAD_MISS_CYCLES_OVER_THRESHOLD)\
1401	__PMC_EV(PPC7450, L1_DATA_SNOOP_HIT_ON_MODIFIED)		\
1402	__PMC_EV(PPC7450, LOAD_MISS_ALIAS)				\
1403	__PMC_EV(PPC7450, LOAD_MISS_ALIAS_ON_TOUCH)			\
1404	__PMC_EV(PPC7450, TOUCH_ALIAS)					\
1405	__PMC_EV(PPC7450, L1_DATA_SNOOP_HIT_CASTOUT_QUEUE)		\
1406	__PMC_EV(PPC7450, L1_DATA_SNOOP_HIT_CASTOUT)			\
1407	__PMC_EV(PPC7450, L1_DATA_SNOOP_HITS)				\
1408	__PMC_EV(PPC7450, WRITE_THROUGH_STORES)				\
1409	__PMC_EV(PPC7450, CACHE_INHIBITED_STORES)			\
1410	__PMC_EV(PPC7450, L1_DATA_LOAD_HIT)				\
1411	__PMC_EV(PPC7450, L1_DATA_TOUCH_HIT)				\
1412	__PMC_EV(PPC7450, L1_DATA_STORE_HIT)				\
1413	__PMC_EV(PPC7450, L1_DATA_TOTAL_HITS)				\
1414	__PMC_EV(PPC7450, DST_INSTR_DISPATCHED)				\
1415	__PMC_EV(PPC7450, REFRESHED_DSTS)				\
1416	__PMC_EV(PPC7450, SUCCESSFUL_DST_TABLE_SEARCHES)		\
1417	__PMC_EV(PPC7450, DSS_INSTR_COMPLETED)				\
1418	__PMC_EV(PPC7450, DST_STREAM_0_CACHE_LINE_FETCHES)		\
1419	__PMC_EV(PPC7450, VTQ_SUSPENDS_DUE_TO_CTX_CHANGE)		\
1420	__PMC_EV(PPC7450, VTQ_LINE_FETCH_HIT)				\
1421	__PMC_EV(PPC7450, VEC_LOAD_INSTR_COMPLETED)			\
1422	__PMC_EV(PPC7450, FP_STORE_INSTR_COMPLETED_IN_LSU)		\
1423	__PMC_EV(PPC7450, FPU_RENORMALIZATION)				\
1424	__PMC_EV(PPC7450, FPU_DENORMALIZATION)				\
1425	__PMC_EV(PPC7450, FP_STORE_CAUSES_STALL_IN_LSU)			\
1426	__PMC_EV(PPC7450, LD_ST_TRUE_ALIAS_STALL)			\
1427	__PMC_EV(PPC7450, LSU_INDEXED_ALIAS_STALL)			\
1428	__PMC_EV(PPC7450, LSU_ALIAS_VS_FSQ_WB0_WB1)			\
1429	__PMC_EV(PPC7450, LSU_ALIAS_VS_CSQ)				\
1430	__PMC_EV(PPC7450, LSU_LOAD_HIT_LINE_ALIAS_VS_CSQ0)		\
1431	__PMC_EV(PPC7450, LSU_LOAD_MISS_LINE_ALIAS_VS_CSQ0)		\
1432	__PMC_EV(PPC7450, LSU_TOUCH_LINE_ALIAS_VS_FSQ_WB0_WB1)		\
1433	__PMC_EV(PPC7450, LSU_TOUCH_ALIAS_VS_CSQ)			\
1434	__PMC_EV(PPC7450, LSU_LMQ_FULL_STALL)				\
1435	__PMC_EV(PPC7450, FP_LOAD_INSTR_COMPLETED_IN_LSU)		\
1436	__PMC_EV(PPC7450, FP_LOAD_SINGLE_INSTR_COMPLETED_IN_LSU)	\
1437	__PMC_EV(PPC7450, FP_LOAD_DOUBLE_COMPLETED_IN_LSU)		\
1438	__PMC_EV(PPC7450, LSU_RA_LATCH_STALL)				\
1439	__PMC_EV(PPC7450, LSU_LOAD_VS_STORE_QUEUE_ALIAS_STALL)		\
1440	__PMC_EV(PPC7450, LSU_LMQ_INDEX_ALIAS)				\
1441	__PMC_EV(PPC7450, LSU_STORE_QUEUE_INDEX_ALIAS)			\
1442	__PMC_EV(PPC7450, LSU_CSQ_FORWARDING)				\
1443	__PMC_EV(PPC7450, LSU_MISALIGNED_LOAD_FINISH)			\
1444	__PMC_EV(PPC7450, LSU_MISALIGN_STORE_COMPLETED)			\
1445	__PMC_EV(PPC7450, LSU_MISALIGN_STALL)				\
1446	__PMC_EV(PPC7450, FP_ONE_QUARTER_FPSCR_RENAMES_BUSY)		\
1447	__PMC_EV(PPC7450, FP_ONE_HALF_FPSCR_RENAMES_BUSY)		\
1448	__PMC_EV(PPC7450, FP_THREE_QUARTERS_FPSCR_RENAMES_BUSY)		\
1449	__PMC_EV(PPC7450, FP_ALL_FPSCR_RENAMES_BUSY)			\
1450	__PMC_EV(PPC7450, FP_DENORMALIZED_RESULT)			\
1451	__PMC_EV(PPC7450, L1_DATA_TOTAL_MISSES)				\
1452	__PMC_EV(PPC7450, DISPATCHES_TO_FPR_ISSUE_QUEUE)		\
1453	__PMC_EV(PPC7450, LSU_INSTR_COMPLETED)				\
1454	__PMC_EV(PPC7450, LOAD_INSTR_COMPLETED)				\
1455	__PMC_EV(PPC7450, SS_SM_INSTR_COMPLETED)			\
1456	__PMC_EV(PPC7450, TLBIE_INSTR_COMPLETED)			\
1457	__PMC_EV(PPC7450, LWARX_INSTR_COMPLETED)			\
1458	__PMC_EV(PPC7450, MFSPR_INSTR_COMPLETED)			\
1459	__PMC_EV(PPC7450, REFETCH_SERIALIZATION)			\
1460	__PMC_EV(PPC7450, COMPLETION_QUEUE_ENTRIES_OVER_THRESHOLD)	\
1461	__PMC_EV(PPC7450, CYCLES_ONE_INSTR_DISPATCHED)			\
1462	__PMC_EV(PPC7450, CYCLES_TWO_INSTR_COMPLETED)			\
1463	__PMC_EV(PPC7450, ITLB_NON_SPECULATIVE_MISSES)			\
1464	__PMC_EV(PPC7450, CYCLES_WAITING_FROM_L1_INSTR_CACHE_MISS)	\
1465	__PMC_EV(PPC7450, L1_DATA_LOAD_ACCESS_MISS)			\
1466	__PMC_EV(PPC7450, L1_DATA_TOUCH_MISS)				\
1467	__PMC_EV(PPC7450, L1_DATA_STORE_MISS)				\
1468	__PMC_EV(PPC7450, L1_DATA_TOUCH_MISS_CYCLES)			\
1469	__PMC_EV(PPC7450, L1_DATA_CYCLES_USED)				\
1470	__PMC_EV(PPC7450, DST_STREAM_1_CACHE_LINE_FETCHES)		\
1471	__PMC_EV(PPC7450, VTQ_STREAM_CANCELED_PREMATURELY)		\
1472	__PMC_EV(PPC7450, VTQ_RESUMES_DUE_TO_CTX_CHANGE)		\
1473	__PMC_EV(PPC7450, VTQ_LINE_FETCH_MISS)				\
1474	__PMC_EV(PPC7450, VTQ_LINE_FETCH)				\
1475	__PMC_EV(PPC7450, TLBIE_SNOOPS)					\
1476	__PMC_EV(PPC7450, L1_INSTR_CACHE_RELOADS)			\
1477	__PMC_EV(PPC7450, L1_DATA_CACHE_RELOADS)			\
1478	__PMC_EV(PPC7450, L1_DATA_CACHE_CASTOUTS_TO_L2)			\
1479	__PMC_EV(PPC7450, STORE_MERGE_GATHER)				\
1480	__PMC_EV(PPC7450, CACHEABLE_STORE_MERGE_TO_32_BYTES)		\
1481	__PMC_EV(PPC7450, DATA_BKPT_MATCHES)				\
1482	__PMC_EV(PPC7450, FALL_THROUGH_BRANCHES_PROCESSED)		\
1483	__PMC_EV(PPC7450,						\
1484	    FIRST_SPECULATIVE_BRANCH_BUFFER_RESOLVED_CORRECTLY)		\
1485	__PMC_EV(PPC7450, SECOND_SPECULATION_BUFFER_ACTIVE)		\
1486	__PMC_EV(PPC7450, BPU_STALL_ON_LR_DEPENDENCY)			\
1487	__PMC_EV(PPC7450, BTIC_MISS)					\
1488	__PMC_EV(PPC7450, BRANCH_LINK_STACK_CORRECTLY_RESOLVED)		\
1489	__PMC_EV(PPC7450, FPR_ISSUE_STALLED)				\
1490	__PMC_EV(PPC7450, SWITCHES_BETWEEN_PRIV_USER)			\
1491	__PMC_EV(PPC7450, LSU_COMPLETES_FP_STORE_SINGLE)		\
1492	__PMC_EV(PPC7450, VR_ISSUE_QUEUE_DISPATCHES)			\
1493	__PMC_EV(PPC7450, VR_STALLS)					\
1494	__PMC_EV(PPC7450, GPR_RENAME_BUFFER_ENTRIES_OVER_THRESHOLD)	\
1495	__PMC_EV(PPC7450, FPR_ISSUE_QUEUE_ENTRIES)			\
1496	__PMC_EV(PPC7450, FPU_INSTR_COMPLETED)				\
1497	__PMC_EV(PPC7450, STWCX_INSTR_COMPLETED)			\
1498	__PMC_EV(PPC7450, LS_LM_INSTR_PIECES)				\
1499	__PMC_EV(PPC7450, ITLB_HW_SEARCH_CYCLES_OVER_THRESHOLD)		\
1500	__PMC_EV(PPC7450, DTLB_MISSES)					\
1501	__PMC_EV(PPC7450, CANCELLED_L1_INSTR_CACHE_MISSES)		\
1502	__PMC_EV(PPC7450, L1_DATA_CACHE_OP_HIT)				\
1503	__PMC_EV(PPC7450, L1_DATA_LOAD_MISS_CYCLES)			\
1504	__PMC_EV(PPC7450, L1_DATA_PUSHES)				\
1505	__PMC_EV(PPC7450, L1_DATA_TOTAL_MISS)				\
1506	__PMC_EV(PPC7450, VT2_FETCHES)					\
1507	__PMC_EV(PPC7450, TAKEN_BRANCHES_PROCESSED)			\
1508	__PMC_EV(PPC7450, BRANCH_FLUSHES)				\
1509	__PMC_EV(PPC7450,						\
1510	    SECOND_SPECULATIVE_BRANCH_BUFFER_RESOLVED_CORRECTLY)	\
1511	__PMC_EV(PPC7450, THIRD_SPECULATION_BUFFER_ACTIVE)		\
1512	__PMC_EV(PPC7450, BRANCH_UNIT_STALL_ON_CTR_DEPENDENCY)		\
1513	__PMC_EV(PPC7450, FAST_BTIC_HIT)				\
1514	__PMC_EV(PPC7450, BRANCH_LINK_STACK_MISPREDICTED)		\
1515	__PMC_EV(PPC7450, CYCLES_THREE_INSTR_COMPLETED)			\
1516	__PMC_EV(PPC7450, CYCLES_NO_INSTR_DISPATCHED)			\
1517	__PMC_EV(PPC7450, GPR_ISSUE_QUEUE_ENTRIES_OVER_THRESHOLD)	\
1518	__PMC_EV(PPC7450, GPR_ISSUE_QUEUE_STALLED)			\
1519	__PMC_EV(PPC7450, IU1_INSTR_COMPLETED)				\
1520	__PMC_EV(PPC7450, DSSALL_INSTR_COMPLETED)			\
1521	__PMC_EV(PPC7450, TLBSYNC_INSTR_COMPLETED)			\
1522	__PMC_EV(PPC7450, SYNC_INSTR_COMPLETED)				\
1523	__PMC_EV(PPC7450, SS_SM_INSTR_PIECES)				\
1524	__PMC_EV(PPC7450, DTLB_HW_SEARCH_CYCLES)			\
1525	__PMC_EV(PPC7450, SNOOP_RETRIES)				\
1526	__PMC_EV(PPC7450, SUCCESSFUL_STWCX)				\
1527	__PMC_EV(PPC7450, DST_STREAM_3_CACHE_LINE_FETCHES)		\
1528	__PMC_EV(PPC7450,						\
1529	    THIRD_SPECULATIVE_BRANCH_BUFFER_RESOLVED_CORRECTLY)		\
1530	__PMC_EV(PPC7450, MISPREDICTED_BRANCHES)			\
1531	__PMC_EV(PPC7450, FOLDED_BRANCHES)				\
1532	__PMC_EV(PPC7450, FP_STORE_DOUBLE_COMPLETES_IN_LSU)		\
1533	__PMC_EV(PPC7450, L2_CACHE_HITS)				\
1534	__PMC_EV(PPC7450, L3_CACHE_HITS)				\
1535	__PMC_EV(PPC7450, L2_INSTR_CACHE_MISSES)			\
1536	__PMC_EV(PPC7450, L3_INSTR_CACHE_MISSES)			\
1537	__PMC_EV(PPC7450, L2_DATA_CACHE_MISSES)				\
1538	__PMC_EV(PPC7450, L3_DATA_CACHE_MISSES)				\
1539	__PMC_EV(PPC7450, L2_LOAD_HITS)					\
1540	__PMC_EV(PPC7450, L2_STORE_HITS)				\
1541	__PMC_EV(PPC7450, L3_LOAD_HITS)					\
1542	__PMC_EV(PPC7450, L3_STORE_HITS)				\
1543	__PMC_EV(PPC7450, L2_TOUCH_HITS)				\
1544	__PMC_EV(PPC7450, L3_TOUCH_HITS)				\
1545	__PMC_EV(PPC7450, SNOOP_MODIFIED)				\
1546	__PMC_EV(PPC7450, SNOOP_VALID)					\
1547	__PMC_EV(PPC7450, INTERVENTION)					\
1548	__PMC_EV(PPC7450, L2_CACHE_MISSES)				\
1549	__PMC_EV(PPC7450, L3_CACHE_MISSES)				\
1550	__PMC_EV(PPC7450, L2_CACHE_CASTOUTS)				\
1551	__PMC_EV(PPC7450, L3_CACHE_CASTOUTS)				\
1552	__PMC_EV(PPC7450, L2SQ_FULL_CYCLES)				\
1553	__PMC_EV(PPC7450, L3SQ_FULL_CYCLES)				\
1554	__PMC_EV(PPC7450, RAQ_FULL_CYCLES)				\
1555	__PMC_EV(PPC7450, WAQ_FULL_CYCLES)				\
1556	__PMC_EV(PPC7450, L1_EXTERNAL_INTERVENTIONS)			\
1557	__PMC_EV(PPC7450, L2_EXTERNAL_INTERVENTIONS)			\
1558	__PMC_EV(PPC7450, L3_EXTERNAL_INTERVENTIONS)			\
1559	__PMC_EV(PPC7450, EXTERNAL_INTERVENTIONS)			\
1560	__PMC_EV(PPC7450, EXTERNAL_PUSHES)				\
1561	__PMC_EV(PPC7450, EXTERNAL_SNOOP_RETRY)				\
1562	__PMC_EV(PPC7450, DTQ_FULL_CYCLES)				\
1563	__PMC_EV(PPC7450, BUS_RETRY)					\
1564	__PMC_EV(PPC7450, L2_VALID_REQUEST)				\
1565	__PMC_EV(PPC7450, BORDQ_FULL)					\
1566	__PMC_EV(PPC7450, BUS_TAS_FOR_READS)				\
1567	__PMC_EV(PPC7450, BUS_TAS_FOR_WRITES)				\
1568	__PMC_EV(PPC7450, BUS_READS_NOT_RETRIED)			\
1569	__PMC_EV(PPC7450, BUS_WRITES_NOT_RETRIED)			\
1570	__PMC_EV(PPC7450, BUS_READS_WRITES_NOT_RETRIED)			\
1571	__PMC_EV(PPC7450, BUS_RETRY_DUE_TO_L1_RETRY)			\
1572	__PMC_EV(PPC7450, BUS_RETRY_DUE_TO_PREVIOUS_ADJACENT)		\
1573	__PMC_EV(PPC7450, BUS_RETRY_DUE_TO_COLLISION)			\
1574	__PMC_EV(PPC7450, BUS_RETRY_DUE_TO_INTERVENTION_ORDERING)	\
1575	__PMC_EV(PPC7450, SNOOP_REQUESTS)				\
1576	__PMC_EV(PPC7450, PREFETCH_ENGINE_REQUEST)			\
1577	__PMC_EV(PPC7450, PREFETCH_ENGINE_COLLISION_VS_LOAD)		\
1578	__PMC_EV(PPC7450, PREFETCH_ENGINE_COLLISION_VS_STORE)		\
1579	__PMC_EV(PPC7450, PREFETCH_ENGINE_COLLISION_VS_INSTR_FETCH)	\
1580	__PMC_EV(PPC7450,						\
1581	    PREFETCH_ENGINE_COLLISION_VS_LOAD_STORE_INSTR_FETCH)	\
1582	__PMC_EV(PPC7450, PREFETCH_ENGINE_FULL)
1583
1584#define PMC_EV_PPC7450_FIRST	PMC_EV_PPC7450_CYCLE
1585#define PMC_EV_PPC7450_LAST	PMC_EV_PPC7450_PREFETCH_ENGINE_FULL
1586
1587#define __PMC_EV_PPC970() \
1588	__PMC_EV(PPC970, INSTR_COMPLETED) \
1589	__PMC_EV(PPC970, MARKED_GROUP_DISPATCH) \
1590	__PMC_EV(PPC970, MARKED_STORE_COMPLETED) \
1591	__PMC_EV(PPC970, GCT_EMPTY) \
1592	__PMC_EV(PPC970, RUN_CYCLES) \
1593	__PMC_EV(PPC970, OVERFLOW) \
1594	__PMC_EV(PPC970, CYCLES) \
1595	__PMC_EV(PPC970, THRESHOLD_TIMEOUT) \
1596	__PMC_EV(PPC970, GROUP_DISPATCH) \
1597	__PMC_EV(PPC970, BR_MARKED_INSTR_FINISH) \
1598	__PMC_EV(PPC970, GCT_EMPTY_BY_SRQ_FULL) \
1599	__PMC_EV(PPC970, STOP_COMPLETION) \
1600	__PMC_EV(PPC970, LSU_EMPTY) \
1601	__PMC_EV(PPC970, MARKED_STORE_WITH_INTR) \
1602	__PMC_EV(PPC970, CYCLES_IN_SUPER) \
1603	__PMC_EV(PPC970, VPU_MARKED_INSTR_COMPLETED) \
1604	__PMC_EV(PPC970, FXU0_IDLE_FXU1_BUSY) \
1605	__PMC_EV(PPC970, SRQ_EMPTY) \
1606	__PMC_EV(PPC970, MARKED_GROUP_COMPLETED) \
1607	__PMC_EV(PPC970, CR_MARKED_INSTR_FINISH) \
1608	__PMC_EV(PPC970, DISPATCH_SUCCESS) \
1609	__PMC_EV(PPC970, FXU0_IDLE_FXU1_IDLE) \
1610	__PMC_EV(PPC970, ONE_PLUS_INSTR_COMPLETED) \
1611	__PMC_EV(PPC970, GROUP_MARKED_IDU) \
1612	__PMC_EV(PPC970, MARKED_GROUP_COMPLETE_TIMEOUT) \
1613	__PMC_EV(PPC970, FXU0_BUSY_FXU1_BUSY) \
1614	__PMC_EV(PPC970, MARKED_STORE_SENT_TO_STS) \
1615	__PMC_EV(PPC970, FXU_MARKED_INSTR_FINISHED) \
1616	__PMC_EV(PPC970, MARKED_GROUP_ISSUED) \
1617	__PMC_EV(PPC970, FXU0_BUSY_FXU1_IDLE) \
1618	__PMC_EV(PPC970, GROUP_COMPLETED) \
1619	__PMC_EV(PPC970, FPU_MARKED_INSTR_COMPLETED) \
1620	__PMC_EV(PPC970, MARKED_INSTR_FINISH_ANY_UNIT) \
1621	__PMC_EV(PPC970, EXTERNAL_INTERRUPT) \
1622	__PMC_EV(PPC970, GROUP_DISPATCH_REJECT) \
1623	__PMC_EV(PPC970, LSU_MARKED_INSTR_FINISH) \
1624	__PMC_EV(PPC970, TIMEBASE_EVENT) \
1625	__PMC_EV(PPC970, LSU_COMPLETION_STALL) \
1626	__PMC_EV(PPC970, FXU_COMPLETION_STALL) \
1627	__PMC_EV(PPC970, DCACHE_MISS_COMPLETION_STALL) \
1628	__PMC_EV(PPC970, FPU_COMPLETION_STALL) \
1629	__PMC_EV(PPC970, FXU_LONG_INSTR_COMPLETION_STALL) \
1630	__PMC_EV(PPC970, REJECT_COMPLETION_STALL) \
1631	__PMC_EV(PPC970, FPU_LONG_INSTR_COMPLETION_STALL) \
1632	__PMC_EV(PPC970, GCT_EMPTY_BY_ICACHE_MISS) \
1633	__PMC_EV(PPC970, REJECT_COMPLETION_STALL_ERAT_MISS) \
1634	__PMC_EV(PPC970, GCT_EMPTY_BY_BRANCH_MISS_PREDICT) \
1635	__PMC_EV(PPC970, BUS_HIGH) \
1636	__PMC_EV(PPC970, BUS_LOW) \
1637	__PMC_EV(PPC970, ADDER)
1638
1639
1640#define PMC_EV_PPC970_FIRST		PMC_EV_PPC970_INSTR_COMPLETED
1641#define PMC_EV_PPC970_LAST		PMC_EV_PPC970_ADDER
1642
1643#define __PMC_EV_POWER8() \
1644	__PMC_EV(POWER8, CYCLES) \
1645	__PMC_EV(POWER8, CYCLES_WITH_INSTRS_COMPLETED) \
1646	__PMC_EV(POWER8, FPU_INSTR_COMPLETED) \
1647	__PMC_EV(POWER8, ERAT_INSTR_MISS) \
1648	__PMC_EV(POWER8, CYCLES_IDLE) \
1649	__PMC_EV(POWER8, CYCLES_WITH_ANY_THREAD_RUNNING) \
1650	__PMC_EV(POWER8, STORE_COMPLETED) \
1651	__PMC_EV(POWER8, INSTR_DISPATCHED) \
1652	__PMC_EV(POWER8, CYCLES_RUNNING) \
1653	__PMC_EV(POWER8, ERAT_DATA_MISS) \
1654	__PMC_EV(POWER8, EXTERNAL_INTERRUPT) \
1655	__PMC_EV(POWER8, BRANCH_TAKEN) \
1656	__PMC_EV(POWER8, L1_INSTR_MISS) \
1657	__PMC_EV(POWER8, L2_LOAD_MISS) \
1658	__PMC_EV(POWER8, STORE_NO_REAL_ADDR) \
1659	__PMC_EV(POWER8, INSTR_COMPLETED_WITH_ALL_THREADS_RUNNING) \
1660	__PMC_EV(POWER8, L1_LOAD_MISS) \
1661	__PMC_EV(POWER8, TIMEBASE_EVENT) \
1662	__PMC_EV(POWER8, L3_INSTR_MISS) \
1663	__PMC_EV(POWER8, TLB_DATA_MISS) \
1664	__PMC_EV(POWER8, L3_LOAD_MISS) \
1665	__PMC_EV(POWER8, LOAD_NO_REAL_ADDR) \
1666	__PMC_EV(POWER8, CYCLES_WITH_INSTRS_DISPATCHED) \
1667	__PMC_EV(POWER8, CYCLES_RUNNING_PURR_INC) \
1668	__PMC_EV(POWER8, BRANCH_MISPREDICTED) \
1669	__PMC_EV(POWER8, PREFETCHED_INSTRS_DISCARDED) \
1670	__PMC_EV(POWER8, INSTR_COMPLETED_RUNNING) \
1671	__PMC_EV(POWER8, TLB_INSTR_MISS) \
1672	__PMC_EV(POWER8, CACHE_LOAD_MISS) \
1673	__PMC_EV(POWER8, INSTR_COMPLETED)
1674
1675#define PMC_EV_POWER8_FIRST		PMC_EV_POWER8_CYCLES
1676#define PMC_EV_POWER8_LAST		PMC_EV_POWER8_INSTR_COMPLETED
1677
1678#define __PMC_EV_E500() \
1679	__PMC_EV(E500, CYCLES) \
1680	__PMC_EV(E500, INSTR_COMPLETED) \
1681	__PMC_EV(E500, UOPS_COMPLETED) \
1682	__PMC_EV(E500, INSTR_FETCHED) \
1683	__PMC_EV(E500, UOPS_DECODED) \
1684	__PMC_EV(E500, PM_EVENT_TRANSITIONS) \
1685	__PMC_EV(E500, PM_EVENT_CYCLES) \
1686	__PMC_EV(E500, BRANCH_INSTRS_COMPLETED) \
1687	__PMC_EV(E500, LOAD_UOPS_COMPLETED) \
1688	__PMC_EV(E500, STORE_UOPS_COMPLETED) \
1689	__PMC_EV(E500, CQ_REDIRECTS) \
1690	__PMC_EV(E500, BRANCHES_FINISHED) \
1691	__PMC_EV(E500, TAKEN_BRANCHES_FINISHED) \
1692	__PMC_EV(E500, FINISHED_UNCOND_BRANCHES_MISS_BTB) \
1693	__PMC_EV(E500, BRANCH_MISPRED) \
1694	__PMC_EV(E500, BTB_BRANCH_MISPRED_FROM_DIRECTION) \
1695	__PMC_EV(E500, BTB_HITS_PSEUDO_HITS) \
1696	__PMC_EV(E500, CYCLES_DECODE_STALLED) \
1697	__PMC_EV(E500, CYCLES_ISSUE_STALLED) \
1698	__PMC_EV(E500, CYCLES_BRANCH_ISSUE_STALLED) \
1699	__PMC_EV(E500, CYCLES_SU1_SCHED_STALLED) \
1700	__PMC_EV(E500, CYCLES_SU2_SCHED_STALLED) \
1701	__PMC_EV(E500, CYCLES_MU_SCHED_STALLED) \
1702	__PMC_EV(E500, CYCLES_LRU_SCHED_STALLED) \
1703	__PMC_EV(E500, CYCLES_BU_SCHED_STALLED) \
1704	__PMC_EV(E500, TOTAL_TRANSLATED) \
1705	__PMC_EV(E500, LOADS_TRANSLATED) \
1706	__PMC_EV(E500, STORES_TRANSLATED) \
1707	__PMC_EV(E500, TOUCHES_TRANSLATED) \
1708	__PMC_EV(E500, CACHEOPS_TRANSLATED) \
1709	__PMC_EV(E500, CACHE_INHIBITED_ACCESS_TRANSLATED) \
1710	__PMC_EV(E500, GUARDED_LOADS_TRANSLATED) \
1711	__PMC_EV(E500, WRITE_THROUGH_STORES_TRANSLATED) \
1712	__PMC_EV(E500, MISALIGNED_LOAD_STORE_ACCESS_TRANSLATED) \
1713	__PMC_EV(E500, TOTAL_ALLOCATED_TO_DLFB) \
1714	__PMC_EV(E500, LOADS_TRANSLATED_ALLOCATED_TO_DLFB) \
1715	__PMC_EV(E500, STORES_COMPLETED_ALLOCATED_TO_DLFB) \
1716	__PMC_EV(E500, TOUCHES_TRANSLATED_ALLOCATED_TO_DLFB) \
1717	__PMC_EV(E500, STORES_COMPLETED) \
1718	__PMC_EV(E500, DATA_L1_CACHE_LOCKS) \
1719	__PMC_EV(E500, DATA_L1_CACHE_RELOADS) \
1720	__PMC_EV(E500, DATA_L1_CACHE_CASTOUTS) \
1721	__PMC_EV(E500, LOAD_MISS_DLFB_FULL) \
1722	__PMC_EV(E500, LOAD_MISS_LDQ_FULL) \
1723	__PMC_EV(E500, LOAD_GUARDED_MISS) \
1724	__PMC_EV(E500, STORE_TRANSLATE_WHEN_QUEUE_FULL) \
1725	__PMC_EV(E500, ADDRESS_COLLISION) \
1726	__PMC_EV(E500, DATA_MMU_MISS) \
1727	__PMC_EV(E500, DATA_MMU_BUSY) \
1728	__PMC_EV(E500, PART2_MISALIGNED_CACHE_ACCESS) \
1729	__PMC_EV(E500, LOAD_MISS_DLFB_FULL_CYCLES) \
1730	__PMC_EV(E500, LOAD_MISS_LDQ_FULL_CYCLES) \
1731	__PMC_EV(E500, LOAD_GUARDED_MISS_CYCLES) \
1732	__PMC_EV(E500, STORE_TRANSLATE_WHEN_QUEUE_FULL_CYCLES) \
1733	__PMC_EV(E500, ADDRESS_COLLISION_CYCLES) \
1734	__PMC_EV(E500, DATA_MMU_MISS_CYCLES) \
1735	__PMC_EV(E500, DATA_MMU_BUSY_CYCLES) \
1736	__PMC_EV(E500, PART2_MISALIGNED_CACHE_ACCESS_CYCLES) \
1737	__PMC_EV(E500, INSTR_L1_CACHE_LOCKS) \
1738	__PMC_EV(E500, INSTR_L1_CACHE_RELOADS) \
1739	__PMC_EV(E500, INSTR_L1_CACHE_FETCHES) \
1740	__PMC_EV(E500, INSTR_MMU_TLB4K_RELOADS) \
1741	__PMC_EV(E500, INSTR_MMU_VSP_RELOADS) \
1742	__PMC_EV(E500, DATA_MMU_TLB4K_RELOADS) \
1743	__PMC_EV(E500, DATA_MMU_VSP_RELOADS) \
1744	__PMC_EV(E500, L2MMU_MISSES) \
1745	__PMC_EV(E500, BIU_MASTER_REQUESTS) \
1746	__PMC_EV(E500, BIU_MASTER_INSTR_SIDE_REQUESTS) \
1747	__PMC_EV(E500, BIU_MASTER_DATA_SIDE_REQUESTS) \
1748	__PMC_EV(E500, BIU_MASTER_DATA_SIDE_CASTOUT_REQUESTS) \
1749	__PMC_EV(E500, BIU_MASTER_RETRIES) \
1750	__PMC_EV(E500, SNOOP_REQUESTS) \
1751	__PMC_EV(E500, SNOOP_HITS) \
1752	__PMC_EV(E500, SNOOP_PUSHES) \
1753	__PMC_EV(E500, SNOOP_RETRIES) \
1754	__PMC_EV(E500, DLFB_LOAD_MISS_CYCLES) \
1755	__PMC_EV(E500, ILFB_FETCH_MISS_CYCLES) \
1756	__PMC_EV(E500, EXT_INPU_INTR_LATENCY_CYCLES) \
1757	__PMC_EV(E500, CRIT_INPUT_INTR_LATENCY_CYCLES) \
1758	__PMC_EV(E500, EXT_INPUT_INTR_PENDING_LATENCY_CYCLES) \
1759	__PMC_EV(E500, CRIT_INPUT_INTR_PENDING_LATENCY_CYCLES) \
1760	__PMC_EV(E500, PMC0_OVERFLOW) \
1761	__PMC_EV(E500, PMC1_OVERFLOW) \
1762	__PMC_EV(E500, PMC2_OVERFLOW) \
1763	__PMC_EV(E500, PMC3_OVERFLOW) \
1764	__PMC_EV(E500, INTERRUPTS_TAKEN) \
1765	__PMC_EV(E500, EXT_INPUT_INTR_TAKEN) \
1766	__PMC_EV(E500, CRIT_INPUT_INTR_TAKEN) \
1767	__PMC_EV(E500, SYSCALL_TRAP_INTR) \
1768	__PMC_EV(E500, TLB_BIT_TRANSITIONS) \
1769	__PMC_EV(E500, L2_LINEFILL_BUFFER) \
1770	__PMC_EV(E500, LV2_VS) \
1771	__PMC_EV(E500, CASTOUTS_RELEASED) \
1772	__PMC_EV(E500, INTV_ALLOCATIONS) \
1773	__PMC_EV(E500, DLFB_RETRIES_TO_MBAR) \
1774	__PMC_EV(E500, STORE_RETRIES) \
1775	__PMC_EV(E500, STASH_L1_HITS) \
1776	__PMC_EV(E500, STASH_L2_HITS) \
1777	__PMC_EV(E500, STASH_BUSY_1) \
1778	__PMC_EV(E500, STASH_BUSY_2) \
1779	__PMC_EV(E500, STASH_BUSY_3) \
1780	__PMC_EV(E500, STASH_HITS) \
1781	__PMC_EV(E500, STASH_HIT_DLFB) \
1782	__PMC_EV(E500, STASH_REQUESTS) \
1783	__PMC_EV(E500, STASH_REQUESTS_L1) \
1784	__PMC_EV(E500, STASH_REQUESTS_L2) \
1785	__PMC_EV(E500, STALLS_NO_CAQ_OR_COB) \
1786	__PMC_EV(E500, L2_CACHE_ACCESSES) \
1787	__PMC_EV(E500, L2_HIT_CACHE_ACCESSES) \
1788	__PMC_EV(E500, L2_CACHE_DATA_ACCESSES) \
1789	__PMC_EV(E500, L2_CACHE_DATA_HITS) \
1790	__PMC_EV(E500, L2_CACHE_INSTR_ACCESSES) \
1791	__PMC_EV(E500, L2_CACHE_INSTR_HITS) \
1792	__PMC_EV(E500, L2_CACHE_ALLOCATIONS) \
1793	__PMC_EV(E500, L2_CACHE_DATA_ALLOCATIONS) \
1794	__PMC_EV(E500, L2_CACHE_DIRTY_DATA_ALLOCATIONS) \
1795	__PMC_EV(E500, L2_CACHE_INSTR_ALLOCATIONS) \
1796	__PMC_EV(E500, L2_CACHE_UPDATES) \
1797	__PMC_EV(E500, L2_CACHE_CLEAN_UPDATES) \
1798	__PMC_EV(E500, L2_CACHE_DIRTY_UPDATES) \
1799	__PMC_EV(E500, L2_CACHE_CLEAN_REDUNDANT_UPDATES) \
1800	__PMC_EV(E500, L2_CACHE_DIRTY_REDUNDANT_UPDATES) \
1801	__PMC_EV(E500, L2_CACHE_LOCKS) \
1802	__PMC_EV(E500, L2_CACHE_CASTOUTS) \
1803	__PMC_EV(E500, L2_CACHE_DATA_DIRTY_HITS) \
1804	__PMC_EV(E500, INSTR_LFB_WENT_HIGH_PRIORITY) \
1805	__PMC_EV(E500, SNOOP_THROTTLING_TURNED_ON) \
1806	__PMC_EV(E500, L2_CLEAN_LINE_INVALIDATIONS) \
1807	__PMC_EV(E500, L2_INCOHERENT_LINE_INVALIDATIONS) \
1808	__PMC_EV(E500, L2_COHERENT_LINE_INVALIDATIONS) \
1809	__PMC_EV(E500, COHERENT_LOOKUP_MISS_DUE_TO_VALID_BUT_INCOHERENT_MATCHES) \
1810	__PMC_EV(E500, IAC1S_DETECTED) \
1811	__PMC_EV(E500, IAC2S_DETECTED) \
1812	__PMC_EV(E500, DAC1S_DTECTED) \
1813	__PMC_EV(E500, DAC2S_DTECTED) \
1814	__PMC_EV(E500, DVT0_DETECTED) \
1815	__PMC_EV(E500, DVT1_DETECTED) \
1816	__PMC_EV(E500, DVT2_DETECTED) \
1817	__PMC_EV(E500, DVT3_DETECTED) \
1818	__PMC_EV(E500, DVT4_DETECTED) \
1819	__PMC_EV(E500, DVT5_DETECTED) \
1820	__PMC_EV(E500, DVT6_DETECTED) \
1821	__PMC_EV(E500, DVT7_DETECTED) \
1822	__PMC_EV(E500, CYCLES_COMPLETION_STALLED_NEXUS_FIFO_FULL) \
1823	__PMC_EV(E500, FPU_DOUBLE_PUMP) \
1824	__PMC_EV(E500, FPU_FINISH) \
1825	__PMC_EV(E500, FPU_DIVIDE_CYCLES) \
1826	__PMC_EV(E500, FPU_DENORM_INPUT_CYCLES) \
1827	__PMC_EV(E500, FPU_RESULT_STALL_CYCLES) \
1828	__PMC_EV(E500, FPU_FPSCR_FULL_STALL) \
1829	__PMC_EV(E500, FPU_PIPE_SYNC_STALLS) \
1830	__PMC_EV(E500, FPU_INPUT_DATA_STALLS) \
1831	__PMC_EV(E500, DECORATED_LOADS) \
1832	__PMC_EV(E500, DECORATED_STORES) \
1833	__PMC_EV(E500, LOAD_RETRIES) \
1834	__PMC_EV(E500, STWCX_SUCCESSES) \
1835	__PMC_EV(E500, STWCX_FAILURES) \
1836
1837#define PMC_EV_E500_FIRST		PMC_EV_E500_CYCLES
1838#define PMC_EV_E500_LAST		PMC_EV_E500_STWCX_FAILURES
1839/*
1840 * All known PMC events.
1841 *
1842 * PMC event numbers are allocated sparsely to allow new PMC events to
1843 * be added to a PMC class without breaking ABI compatibility.  The
1844 * current allocation scheme is:
1845 *
1846 * START	#EVENTS		DESCRIPTION
1847 * 0		0x1000		Reserved
1848 * 0x1000	0x0001		TSC
1849 * 0x2000	0x0080		AMD K7 events
1850 * 0x2080	0x0100		AMD K8 events
1851 * 0x10000	0x0080		INTEL architectural fixed-function events
1852 * 0x10080	0x0F80		INTEL architectural programmable events
1853 * 0x11000	0x0080		INTEL Pentium 4 events
1854 * 0x11080	0x0080		INTEL Pentium MMX events
1855 * 0x11100	0x0100		INTEL Pentium Pro/P-II/P-III/Pentium-M events
1856 * 0x11200	0x00FF		free (was INTEL XScale events)
1857 * 0x11300	0x00FF		MIPS 24K events
1858 * 0x11400	0x00FF		Octeon events
1859 * 0x11500	0x00FF		MIPS 74K events
1860 * 0x11600	0x00FF		BERI statcounters
1861 * 0x13000	0x00FF		MPC7450 events
1862 * 0x13100	0x00FF		IBM PPC970 events
1863 * 0x13200	0x00FF		IBM POWER8 events
1864 * 0x13300	0x00FF		Freescale e500 events
1865 * 0x14000	0x0100		ARMv7 events
1866 * 0x14100	0x0100		ARMv8 events
1867 * 0x20000	0x1000		Software events
1868 */
1869#define	__PMC_EVENTS()				\
1870	__PMC_EV_BLOCK(TSC,	0x01000)	\
1871	__PMC_EV_TSC()				\
1872	__PMC_EV_BLOCK(IAF,     0x10000)	\
1873	__PMC_EV_IAF()				\
1874	__PMC_EV_BLOCK(K7,	0x2000)		\
1875	__PMC_EV_K7()				\
1876	__PMC_EV_BLOCK(K8,	0x2080)	        \
1877	__PMC_EV_K8()				\
1878	__PMC_EV_BLOCK(MIPS24K,	0x11300)	\
1879	__PMC_EV_MIPS24K()			\
1880	__PMC_EV_BLOCK(OCTEON,	0x11400)	\
1881	__PMC_EV_OCTEON()			\
1882	__PMC_EV_BLOCK(MIPS74K,	0x11500)        \
1883	__PMC_EV_MIPS74K()			\
1884	__PMC_EV_BLOCK(BERI,	0x11600)        \
1885	__PMC_EV_BERI()				\
1886	__PMC_EV_BLOCK(UCP,     0x12080)        \
1887	__PMC_EV_UCP()				\
1888	__PMC_EV_BLOCK(PPC7450,	0x13000)	\
1889	__PMC_EV_PPC7450()			\
1890	__PMC_EV_BLOCK(PPC970,	0x13100)	\
1891	__PMC_EV_PPC970()			\
1892	__PMC_EV_BLOCK(POWER8,	0x13200)	\
1893	__PMC_EV_POWER8()			\
1894	__PMC_EV_BLOCK(E500,	0x13300)	\
1895	__PMC_EV_E500()				\
1896	__PMC_EV_BLOCK(ARMV7,	0x14000)	\
1897	__PMC_EV_ARMV7()			\
1898	__PMC_EV_BLOCK(ARMV8,	0x14100)	\
1899	__PMC_EV_ARMV8()
1900
1901#define	PMC_EVENT_FIRST	PMC_EV_TSC_TSC
1902#define	PMC_EVENT_LAST	PMC_EV_SOFT_LAST
1903
1904#endif /* _DEV_HWPMC_PMC_EVENTS_H_ */
1905