cp14.h (25160B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved. 3 */ 4 5#ifndef __ASM_HARDWARE_CP14_H 6#define __ASM_HARDWARE_CP14_H 7 8#include <linux/types.h> 9 10/* Accessors for CP14 registers */ 11#define dbg_read(reg) RCP14_##reg() 12#define dbg_write(val, reg) WCP14_##reg(val) 13#define etm_read(reg) RCP14_##reg() 14#define etm_write(val, reg) WCP14_##reg(val) 15 16/* MRC14 and MCR14 */ 17#define MRC14(op1, crn, crm, op2) \ 18({ \ 19u32 val; \ 20asm volatile("mrc p14, "#op1", %0, "#crn", "#crm", "#op2 : "=r" (val)); \ 21val; \ 22}) 23 24#define MCR14(val, op1, crn, crm, op2) \ 25({ \ 26asm volatile("mcr p14, "#op1", %0, "#crn", "#crm", "#op2 : : "r" (val));\ 27}) 28 29/* 30 * Debug Registers 31 * 32 * Available only in DBGv7 33 * DBGECR, DBGDSCCR, DBGDSMCR, DBGDRCR 34 * 35 * Available only in DBGv7.1 36 * DBGBXVRm, DBGOSDLR, DBGDEVID2, DBGDEVID1 37 * 38 * Read only 39 * DBGDIDR, DBGDSCRint, DBGDTRRXint, DBGDRAR, DBGOSLSR, DBGOSSRR, DBGPRSR, 40 * DBGPRSR, DBGDSAR, DBGAUTHSTATUS, DBGDEVID2, DBGDEVID1, DBGDEVID 41 * 42 * Write only 43 * DBGDTRTXint, DBGOSLAR 44 */ 45#define RCP14_DBGDIDR() MRC14(0, c0, c0, 0) 46#define RCP14_DBGDSCRint() MRC14(0, c0, c1, 0) 47#define RCP14_DBGDTRRXint() MRC14(0, c0, c5, 0) 48#define RCP14_DBGWFAR() MRC14(0, c0, c6, 0) 49#define RCP14_DBGVCR() MRC14(0, c0, c7, 0) 50#define RCP14_DBGECR() MRC14(0, c0, c9, 0) 51#define RCP14_DBGDSCCR() MRC14(0, c0, c10, 0) 52#define RCP14_DBGDSMCR() MRC14(0, c0, c11, 0) 53#define RCP14_DBGDTRRXext() MRC14(0, c0, c0, 2) 54#define RCP14_DBGDSCRext() MRC14(0, c0, c2, 2) 55#define RCP14_DBGDTRTXext() MRC14(0, c0, c3, 2) 56#define RCP14_DBGDRCR() MRC14(0, c0, c4, 2) 57#define RCP14_DBGBVR0() MRC14(0, c0, c0, 4) 58#define RCP14_DBGBVR1() MRC14(0, c0, c1, 4) 59#define RCP14_DBGBVR2() MRC14(0, c0, c2, 4) 60#define RCP14_DBGBVR3() MRC14(0, c0, c3, 4) 61#define RCP14_DBGBVR4() MRC14(0, c0, c4, 4) 62#define RCP14_DBGBVR5() MRC14(0, c0, c5, 4) 63#define RCP14_DBGBVR6() MRC14(0, c0, c6, 4) 64#define RCP14_DBGBVR7() MRC14(0, c0, c7, 4) 65#define RCP14_DBGBVR8() MRC14(0, c0, c8, 4) 66#define RCP14_DBGBVR9() MRC14(0, c0, c9, 4) 67#define RCP14_DBGBVR10() MRC14(0, c0, c10, 4) 68#define RCP14_DBGBVR11() MRC14(0, c0, c11, 4) 69#define RCP14_DBGBVR12() MRC14(0, c0, c12, 4) 70#define RCP14_DBGBVR13() MRC14(0, c0, c13, 4) 71#define RCP14_DBGBVR14() MRC14(0, c0, c14, 4) 72#define RCP14_DBGBVR15() MRC14(0, c0, c15, 4) 73#define RCP14_DBGBCR0() MRC14(0, c0, c0, 5) 74#define RCP14_DBGBCR1() MRC14(0, c0, c1, 5) 75#define RCP14_DBGBCR2() MRC14(0, c0, c2, 5) 76#define RCP14_DBGBCR3() MRC14(0, c0, c3, 5) 77#define RCP14_DBGBCR4() MRC14(0, c0, c4, 5) 78#define RCP14_DBGBCR5() MRC14(0, c0, c5, 5) 79#define RCP14_DBGBCR6() MRC14(0, c0, c6, 5) 80#define RCP14_DBGBCR7() MRC14(0, c0, c7, 5) 81#define RCP14_DBGBCR8() MRC14(0, c0, c8, 5) 82#define RCP14_DBGBCR9() MRC14(0, c0, c9, 5) 83#define RCP14_DBGBCR10() MRC14(0, c0, c10, 5) 84#define RCP14_DBGBCR11() MRC14(0, c0, c11, 5) 85#define RCP14_DBGBCR12() MRC14(0, c0, c12, 5) 86#define RCP14_DBGBCR13() MRC14(0, c0, c13, 5) 87#define RCP14_DBGBCR14() MRC14(0, c0, c14, 5) 88#define RCP14_DBGBCR15() MRC14(0, c0, c15, 5) 89#define RCP14_DBGWVR0() MRC14(0, c0, c0, 6) 90#define RCP14_DBGWVR1() MRC14(0, c0, c1, 6) 91#define RCP14_DBGWVR2() MRC14(0, c0, c2, 6) 92#define RCP14_DBGWVR3() MRC14(0, c0, c3, 6) 93#define RCP14_DBGWVR4() MRC14(0, c0, c4, 6) 94#define RCP14_DBGWVR5() MRC14(0, c0, c5, 6) 95#define RCP14_DBGWVR6() MRC14(0, c0, c6, 6) 96#define RCP14_DBGWVR7() MRC14(0, c0, c7, 6) 97#define RCP14_DBGWVR8() MRC14(0, c0, c8, 6) 98#define RCP14_DBGWVR9() MRC14(0, c0, c9, 6) 99#define RCP14_DBGWVR10() MRC14(0, c0, c10, 6) 100#define RCP14_DBGWVR11() MRC14(0, c0, c11, 6) 101#define RCP14_DBGWVR12() MRC14(0, c0, c12, 6) 102#define RCP14_DBGWVR13() MRC14(0, c0, c13, 6) 103#define RCP14_DBGWVR14() MRC14(0, c0, c14, 6) 104#define RCP14_DBGWVR15() MRC14(0, c0, c15, 6) 105#define RCP14_DBGWCR0() MRC14(0, c0, c0, 7) 106#define RCP14_DBGWCR1() MRC14(0, c0, c1, 7) 107#define RCP14_DBGWCR2() MRC14(0, c0, c2, 7) 108#define RCP14_DBGWCR3() MRC14(0, c0, c3, 7) 109#define RCP14_DBGWCR4() MRC14(0, c0, c4, 7) 110#define RCP14_DBGWCR5() MRC14(0, c0, c5, 7) 111#define RCP14_DBGWCR6() MRC14(0, c0, c6, 7) 112#define RCP14_DBGWCR7() MRC14(0, c0, c7, 7) 113#define RCP14_DBGWCR8() MRC14(0, c0, c8, 7) 114#define RCP14_DBGWCR9() MRC14(0, c0, c9, 7) 115#define RCP14_DBGWCR10() MRC14(0, c0, c10, 7) 116#define RCP14_DBGWCR11() MRC14(0, c0, c11, 7) 117#define RCP14_DBGWCR12() MRC14(0, c0, c12, 7) 118#define RCP14_DBGWCR13() MRC14(0, c0, c13, 7) 119#define RCP14_DBGWCR14() MRC14(0, c0, c14, 7) 120#define RCP14_DBGWCR15() MRC14(0, c0, c15, 7) 121#define RCP14_DBGDRAR() MRC14(0, c1, c0, 0) 122#define RCP14_DBGBXVR0() MRC14(0, c1, c0, 1) 123#define RCP14_DBGBXVR1() MRC14(0, c1, c1, 1) 124#define RCP14_DBGBXVR2() MRC14(0, c1, c2, 1) 125#define RCP14_DBGBXVR3() MRC14(0, c1, c3, 1) 126#define RCP14_DBGBXVR4() MRC14(0, c1, c4, 1) 127#define RCP14_DBGBXVR5() MRC14(0, c1, c5, 1) 128#define RCP14_DBGBXVR6() MRC14(0, c1, c6, 1) 129#define RCP14_DBGBXVR7() MRC14(0, c1, c7, 1) 130#define RCP14_DBGBXVR8() MRC14(0, c1, c8, 1) 131#define RCP14_DBGBXVR9() MRC14(0, c1, c9, 1) 132#define RCP14_DBGBXVR10() MRC14(0, c1, c10, 1) 133#define RCP14_DBGBXVR11() MRC14(0, c1, c11, 1) 134#define RCP14_DBGBXVR12() MRC14(0, c1, c12, 1) 135#define RCP14_DBGBXVR13() MRC14(0, c1, c13, 1) 136#define RCP14_DBGBXVR14() MRC14(0, c1, c14, 1) 137#define RCP14_DBGBXVR15() MRC14(0, c1, c15, 1) 138#define RCP14_DBGOSLSR() MRC14(0, c1, c1, 4) 139#define RCP14_DBGOSSRR() MRC14(0, c1, c2, 4) 140#define RCP14_DBGOSDLR() MRC14(0, c1, c3, 4) 141#define RCP14_DBGPRCR() MRC14(0, c1, c4, 4) 142#define RCP14_DBGPRSR() MRC14(0, c1, c5, 4) 143#define RCP14_DBGDSAR() MRC14(0, c2, c0, 0) 144#define RCP14_DBGITCTRL() MRC14(0, c7, c0, 4) 145#define RCP14_DBGCLAIMSET() MRC14(0, c7, c8, 6) 146#define RCP14_DBGCLAIMCLR() MRC14(0, c7, c9, 6) 147#define RCP14_DBGAUTHSTATUS() MRC14(0, c7, c14, 6) 148#define RCP14_DBGDEVID2() MRC14(0, c7, c0, 7) 149#define RCP14_DBGDEVID1() MRC14(0, c7, c1, 7) 150#define RCP14_DBGDEVID() MRC14(0, c7, c2, 7) 151 152#define WCP14_DBGDTRTXint(val) MCR14(val, 0, c0, c5, 0) 153#define WCP14_DBGWFAR(val) MCR14(val, 0, c0, c6, 0) 154#define WCP14_DBGVCR(val) MCR14(val, 0, c0, c7, 0) 155#define WCP14_DBGECR(val) MCR14(val, 0, c0, c9, 0) 156#define WCP14_DBGDSCCR(val) MCR14(val, 0, c0, c10, 0) 157#define WCP14_DBGDSMCR(val) MCR14(val, 0, c0, c11, 0) 158#define WCP14_DBGDTRRXext(val) MCR14(val, 0, c0, c0, 2) 159#define WCP14_DBGDSCRext(val) MCR14(val, 0, c0, c2, 2) 160#define WCP14_DBGDTRTXext(val) MCR14(val, 0, c0, c3, 2) 161#define WCP14_DBGDRCR(val) MCR14(val, 0, c0, c4, 2) 162#define WCP14_DBGBVR0(val) MCR14(val, 0, c0, c0, 4) 163#define WCP14_DBGBVR1(val) MCR14(val, 0, c0, c1, 4) 164#define WCP14_DBGBVR2(val) MCR14(val, 0, c0, c2, 4) 165#define WCP14_DBGBVR3(val) MCR14(val, 0, c0, c3, 4) 166#define WCP14_DBGBVR4(val) MCR14(val, 0, c0, c4, 4) 167#define WCP14_DBGBVR5(val) MCR14(val, 0, c0, c5, 4) 168#define WCP14_DBGBVR6(val) MCR14(val, 0, c0, c6, 4) 169#define WCP14_DBGBVR7(val) MCR14(val, 0, c0, c7, 4) 170#define WCP14_DBGBVR8(val) MCR14(val, 0, c0, c8, 4) 171#define WCP14_DBGBVR9(val) MCR14(val, 0, c0, c9, 4) 172#define WCP14_DBGBVR10(val) MCR14(val, 0, c0, c10, 4) 173#define WCP14_DBGBVR11(val) MCR14(val, 0, c0, c11, 4) 174#define WCP14_DBGBVR12(val) MCR14(val, 0, c0, c12, 4) 175#define WCP14_DBGBVR13(val) MCR14(val, 0, c0, c13, 4) 176#define WCP14_DBGBVR14(val) MCR14(val, 0, c0, c14, 4) 177#define WCP14_DBGBVR15(val) MCR14(val, 0, c0, c15, 4) 178#define WCP14_DBGBCR0(val) MCR14(val, 0, c0, c0, 5) 179#define WCP14_DBGBCR1(val) MCR14(val, 0, c0, c1, 5) 180#define WCP14_DBGBCR2(val) MCR14(val, 0, c0, c2, 5) 181#define WCP14_DBGBCR3(val) MCR14(val, 0, c0, c3, 5) 182#define WCP14_DBGBCR4(val) MCR14(val, 0, c0, c4, 5) 183#define WCP14_DBGBCR5(val) MCR14(val, 0, c0, c5, 5) 184#define WCP14_DBGBCR6(val) MCR14(val, 0, c0, c6, 5) 185#define WCP14_DBGBCR7(val) MCR14(val, 0, c0, c7, 5) 186#define WCP14_DBGBCR8(val) MCR14(val, 0, c0, c8, 5) 187#define WCP14_DBGBCR9(val) MCR14(val, 0, c0, c9, 5) 188#define WCP14_DBGBCR10(val) MCR14(val, 0, c0, c10, 5) 189#define WCP14_DBGBCR11(val) MCR14(val, 0, c0, c11, 5) 190#define WCP14_DBGBCR12(val) MCR14(val, 0, c0, c12, 5) 191#define WCP14_DBGBCR13(val) MCR14(val, 0, c0, c13, 5) 192#define WCP14_DBGBCR14(val) MCR14(val, 0, c0, c14, 5) 193#define WCP14_DBGBCR15(val) MCR14(val, 0, c0, c15, 5) 194#define WCP14_DBGWVR0(val) MCR14(val, 0, c0, c0, 6) 195#define WCP14_DBGWVR1(val) MCR14(val, 0, c0, c1, 6) 196#define WCP14_DBGWVR2(val) MCR14(val, 0, c0, c2, 6) 197#define WCP14_DBGWVR3(val) MCR14(val, 0, c0, c3, 6) 198#define WCP14_DBGWVR4(val) MCR14(val, 0, c0, c4, 6) 199#define WCP14_DBGWVR5(val) MCR14(val, 0, c0, c5, 6) 200#define WCP14_DBGWVR6(val) MCR14(val, 0, c0, c6, 6) 201#define WCP14_DBGWVR7(val) MCR14(val, 0, c0, c7, 6) 202#define WCP14_DBGWVR8(val) MCR14(val, 0, c0, c8, 6) 203#define WCP14_DBGWVR9(val) MCR14(val, 0, c0, c9, 6) 204#define WCP14_DBGWVR10(val) MCR14(val, 0, c0, c10, 6) 205#define WCP14_DBGWVR11(val) MCR14(val, 0, c0, c11, 6) 206#define WCP14_DBGWVR12(val) MCR14(val, 0, c0, c12, 6) 207#define WCP14_DBGWVR13(val) MCR14(val, 0, c0, c13, 6) 208#define WCP14_DBGWVR14(val) MCR14(val, 0, c0, c14, 6) 209#define WCP14_DBGWVR15(val) MCR14(val, 0, c0, c15, 6) 210#define WCP14_DBGWCR0(val) MCR14(val, 0, c0, c0, 7) 211#define WCP14_DBGWCR1(val) MCR14(val, 0, c0, c1, 7) 212#define WCP14_DBGWCR2(val) MCR14(val, 0, c0, c2, 7) 213#define WCP14_DBGWCR3(val) MCR14(val, 0, c0, c3, 7) 214#define WCP14_DBGWCR4(val) MCR14(val, 0, c0, c4, 7) 215#define WCP14_DBGWCR5(val) MCR14(val, 0, c0, c5, 7) 216#define WCP14_DBGWCR6(val) MCR14(val, 0, c0, c6, 7) 217#define WCP14_DBGWCR7(val) MCR14(val, 0, c0, c7, 7) 218#define WCP14_DBGWCR8(val) MCR14(val, 0, c0, c8, 7) 219#define WCP14_DBGWCR9(val) MCR14(val, 0, c0, c9, 7) 220#define WCP14_DBGWCR10(val) MCR14(val, 0, c0, c10, 7) 221#define WCP14_DBGWCR11(val) MCR14(val, 0, c0, c11, 7) 222#define WCP14_DBGWCR12(val) MCR14(val, 0, c0, c12, 7) 223#define WCP14_DBGWCR13(val) MCR14(val, 0, c0, c13, 7) 224#define WCP14_DBGWCR14(val) MCR14(val, 0, c0, c14, 7) 225#define WCP14_DBGWCR15(val) MCR14(val, 0, c0, c15, 7) 226#define WCP14_DBGBXVR0(val) MCR14(val, 0, c1, c0, 1) 227#define WCP14_DBGBXVR1(val) MCR14(val, 0, c1, c1, 1) 228#define WCP14_DBGBXVR2(val) MCR14(val, 0, c1, c2, 1) 229#define WCP14_DBGBXVR3(val) MCR14(val, 0, c1, c3, 1) 230#define WCP14_DBGBXVR4(val) MCR14(val, 0, c1, c4, 1) 231#define WCP14_DBGBXVR5(val) MCR14(val, 0, c1, c5, 1) 232#define WCP14_DBGBXVR6(val) MCR14(val, 0, c1, c6, 1) 233#define WCP14_DBGBXVR7(val) MCR14(val, 0, c1, c7, 1) 234#define WCP14_DBGBXVR8(val) MCR14(val, 0, c1, c8, 1) 235#define WCP14_DBGBXVR9(val) MCR14(val, 0, c1, c9, 1) 236#define WCP14_DBGBXVR10(val) MCR14(val, 0, c1, c10, 1) 237#define WCP14_DBGBXVR11(val) MCR14(val, 0, c1, c11, 1) 238#define WCP14_DBGBXVR12(val) MCR14(val, 0, c1, c12, 1) 239#define WCP14_DBGBXVR13(val) MCR14(val, 0, c1, c13, 1) 240#define WCP14_DBGBXVR14(val) MCR14(val, 0, c1, c14, 1) 241#define WCP14_DBGBXVR15(val) MCR14(val, 0, c1, c15, 1) 242#define WCP14_DBGOSLAR(val) MCR14(val, 0, c1, c0, 4) 243#define WCP14_DBGOSSRR(val) MCR14(val, 0, c1, c2, 4) 244#define WCP14_DBGOSDLR(val) MCR14(val, 0, c1, c3, 4) 245#define WCP14_DBGPRCR(val) MCR14(val, 0, c1, c4, 4) 246#define WCP14_DBGITCTRL(val) MCR14(val, 0, c7, c0, 4) 247#define WCP14_DBGCLAIMSET(val) MCR14(val, 0, c7, c8, 6) 248#define WCP14_DBGCLAIMCLR(val) MCR14(val, 0, c7, c9, 6) 249 250/* 251 * ETM Registers 252 * 253 * Available only in ETMv3.3, 3.4, 3.5 254 * ETMASICCR, ETMTECR2, ETMFFRR, ETMVDEVR, ETMVDCR1, ETMVDCR2, ETMVDCR3, 255 * ETMDCVRn, ETMDCMRn 256 * 257 * Available only in ETMv3.5 as read only 258 * ETMIDR2 259 * 260 * Available only in ETMv3.5, PFTv1.0, 1.1 261 * ETMTSEVR, ETMVMIDCVR, ETMPDCR 262 * 263 * Read only 264 * ETMCCR, ETMSCR, ETMIDR, ETMCCER, ETMOSLSR 265 * ETMLSR, ETMAUTHSTATUS, ETMDEVID, ETMDEVTYPE, ETMPIDR4, ETMPIDR5, ETMPIDR6, 266 * ETMPIDR7, ETMPIDR0, ETMPIDR1, ETMPIDR2, ETMPIDR2, ETMPIDR3, ETMCIDR0, 267 * ETMCIDR1, ETMCIDR2, ETMCIDR3 268 * 269 * Write only 270 * ETMOSLAR, ETMLAR 271 * Note: ETMCCER[11] controls WO nature of certain regs. Refer ETM arch spec. 272 */ 273#define RCP14_ETMCR() MRC14(1, c0, c0, 0) 274#define RCP14_ETMCCR() MRC14(1, c0, c1, 0) 275#define RCP14_ETMTRIGGER() MRC14(1, c0, c2, 0) 276#define RCP14_ETMASICCR() MRC14(1, c0, c3, 0) 277#define RCP14_ETMSR() MRC14(1, c0, c4, 0) 278#define RCP14_ETMSCR() MRC14(1, c0, c5, 0) 279#define RCP14_ETMTSSCR() MRC14(1, c0, c6, 0) 280#define RCP14_ETMTECR2() MRC14(1, c0, c7, 0) 281#define RCP14_ETMTEEVR() MRC14(1, c0, c8, 0) 282#define RCP14_ETMTECR1() MRC14(1, c0, c9, 0) 283#define RCP14_ETMFFRR() MRC14(1, c0, c10, 0) 284#define RCP14_ETMFFLR() MRC14(1, c0, c11, 0) 285#define RCP14_ETMVDEVR() MRC14(1, c0, c12, 0) 286#define RCP14_ETMVDCR1() MRC14(1, c0, c13, 0) 287#define RCP14_ETMVDCR2() MRC14(1, c0, c14, 0) 288#define RCP14_ETMVDCR3() MRC14(1, c0, c15, 0) 289#define RCP14_ETMACVR0() MRC14(1, c0, c0, 1) 290#define RCP14_ETMACVR1() MRC14(1, c0, c1, 1) 291#define RCP14_ETMACVR2() MRC14(1, c0, c2, 1) 292#define RCP14_ETMACVR3() MRC14(1, c0, c3, 1) 293#define RCP14_ETMACVR4() MRC14(1, c0, c4, 1) 294#define RCP14_ETMACVR5() MRC14(1, c0, c5, 1) 295#define RCP14_ETMACVR6() MRC14(1, c0, c6, 1) 296#define RCP14_ETMACVR7() MRC14(1, c0, c7, 1) 297#define RCP14_ETMACVR8() MRC14(1, c0, c8, 1) 298#define RCP14_ETMACVR9() MRC14(1, c0, c9, 1) 299#define RCP14_ETMACVR10() MRC14(1, c0, c10, 1) 300#define RCP14_ETMACVR11() MRC14(1, c0, c11, 1) 301#define RCP14_ETMACVR12() MRC14(1, c0, c12, 1) 302#define RCP14_ETMACVR13() MRC14(1, c0, c13, 1) 303#define RCP14_ETMACVR14() MRC14(1, c0, c14, 1) 304#define RCP14_ETMACVR15() MRC14(1, c0, c15, 1) 305#define RCP14_ETMACTR0() MRC14(1, c0, c0, 2) 306#define RCP14_ETMACTR1() MRC14(1, c0, c1, 2) 307#define RCP14_ETMACTR2() MRC14(1, c0, c2, 2) 308#define RCP14_ETMACTR3() MRC14(1, c0, c3, 2) 309#define RCP14_ETMACTR4() MRC14(1, c0, c4, 2) 310#define RCP14_ETMACTR5() MRC14(1, c0, c5, 2) 311#define RCP14_ETMACTR6() MRC14(1, c0, c6, 2) 312#define RCP14_ETMACTR7() MRC14(1, c0, c7, 2) 313#define RCP14_ETMACTR8() MRC14(1, c0, c8, 2) 314#define RCP14_ETMACTR9() MRC14(1, c0, c9, 2) 315#define RCP14_ETMACTR10() MRC14(1, c0, c10, 2) 316#define RCP14_ETMACTR11() MRC14(1, c0, c11, 2) 317#define RCP14_ETMACTR12() MRC14(1, c0, c12, 2) 318#define RCP14_ETMACTR13() MRC14(1, c0, c13, 2) 319#define RCP14_ETMACTR14() MRC14(1, c0, c14, 2) 320#define RCP14_ETMACTR15() MRC14(1, c0, c15, 2) 321#define RCP14_ETMDCVR0() MRC14(1, c0, c0, 3) 322#define RCP14_ETMDCVR2() MRC14(1, c0, c2, 3) 323#define RCP14_ETMDCVR4() MRC14(1, c0, c4, 3) 324#define RCP14_ETMDCVR6() MRC14(1, c0, c6, 3) 325#define RCP14_ETMDCVR8() MRC14(1, c0, c8, 3) 326#define RCP14_ETMDCVR10() MRC14(1, c0, c10, 3) 327#define RCP14_ETMDCVR12() MRC14(1, c0, c12, 3) 328#define RCP14_ETMDCVR14() MRC14(1, c0, c14, 3) 329#define RCP14_ETMDCMR0() MRC14(1, c0, c0, 4) 330#define RCP14_ETMDCMR2() MRC14(1, c0, c2, 4) 331#define RCP14_ETMDCMR4() MRC14(1, c0, c4, 4) 332#define RCP14_ETMDCMR6() MRC14(1, c0, c6, 4) 333#define RCP14_ETMDCMR8() MRC14(1, c0, c8, 4) 334#define RCP14_ETMDCMR10() MRC14(1, c0, c10, 4) 335#define RCP14_ETMDCMR12() MRC14(1, c0, c12, 4) 336#define RCP14_ETMDCMR14() MRC14(1, c0, c14, 4) 337#define RCP14_ETMCNTRLDVR0() MRC14(1, c0, c0, 5) 338#define RCP14_ETMCNTRLDVR1() MRC14(1, c0, c1, 5) 339#define RCP14_ETMCNTRLDVR2() MRC14(1, c0, c2, 5) 340#define RCP14_ETMCNTRLDVR3() MRC14(1, c0, c3, 5) 341#define RCP14_ETMCNTENR0() MRC14(1, c0, c4, 5) 342#define RCP14_ETMCNTENR1() MRC14(1, c0, c5, 5) 343#define RCP14_ETMCNTENR2() MRC14(1, c0, c6, 5) 344#define RCP14_ETMCNTENR3() MRC14(1, c0, c7, 5) 345#define RCP14_ETMCNTRLDEVR0() MRC14(1, c0, c8, 5) 346#define RCP14_ETMCNTRLDEVR1() MRC14(1, c0, c9, 5) 347#define RCP14_ETMCNTRLDEVR2() MRC14(1, c0, c10, 5) 348#define RCP14_ETMCNTRLDEVR3() MRC14(1, c0, c11, 5) 349#define RCP14_ETMCNTVR0() MRC14(1, c0, c12, 5) 350#define RCP14_ETMCNTVR1() MRC14(1, c0, c13, 5) 351#define RCP14_ETMCNTVR2() MRC14(1, c0, c14, 5) 352#define RCP14_ETMCNTVR3() MRC14(1, c0, c15, 5) 353#define RCP14_ETMSQ12EVR() MRC14(1, c0, c0, 6) 354#define RCP14_ETMSQ21EVR() MRC14(1, c0, c1, 6) 355#define RCP14_ETMSQ23EVR() MRC14(1, c0, c2, 6) 356#define RCP14_ETMSQ31EVR() MRC14(1, c0, c3, 6) 357#define RCP14_ETMSQ32EVR() MRC14(1, c0, c4, 6) 358#define RCP14_ETMSQ13EVR() MRC14(1, c0, c5, 6) 359#define RCP14_ETMSQR() MRC14(1, c0, c7, 6) 360#define RCP14_ETMEXTOUTEVR0() MRC14(1, c0, c8, 6) 361#define RCP14_ETMEXTOUTEVR1() MRC14(1, c0, c9, 6) 362#define RCP14_ETMEXTOUTEVR2() MRC14(1, c0, c10, 6) 363#define RCP14_ETMEXTOUTEVR3() MRC14(1, c0, c11, 6) 364#define RCP14_ETMCIDCVR0() MRC14(1, c0, c12, 6) 365#define RCP14_ETMCIDCVR1() MRC14(1, c0, c13, 6) 366#define RCP14_ETMCIDCVR2() MRC14(1, c0, c14, 6) 367#define RCP14_ETMCIDCMR() MRC14(1, c0, c15, 6) 368#define RCP14_ETMIMPSPEC0() MRC14(1, c0, c0, 7) 369#define RCP14_ETMIMPSPEC1() MRC14(1, c0, c1, 7) 370#define RCP14_ETMIMPSPEC2() MRC14(1, c0, c2, 7) 371#define RCP14_ETMIMPSPEC3() MRC14(1, c0, c3, 7) 372#define RCP14_ETMIMPSPEC4() MRC14(1, c0, c4, 7) 373#define RCP14_ETMIMPSPEC5() MRC14(1, c0, c5, 7) 374#define RCP14_ETMIMPSPEC6() MRC14(1, c0, c6, 7) 375#define RCP14_ETMIMPSPEC7() MRC14(1, c0, c7, 7) 376#define RCP14_ETMSYNCFR() MRC14(1, c0, c8, 7) 377#define RCP14_ETMIDR() MRC14(1, c0, c9, 7) 378#define RCP14_ETMCCER() MRC14(1, c0, c10, 7) 379#define RCP14_ETMEXTINSELR() MRC14(1, c0, c11, 7) 380#define RCP14_ETMTESSEICR() MRC14(1, c0, c12, 7) 381#define RCP14_ETMEIBCR() MRC14(1, c0, c13, 7) 382#define RCP14_ETMTSEVR() MRC14(1, c0, c14, 7) 383#define RCP14_ETMAUXCR() MRC14(1, c0, c15, 7) 384#define RCP14_ETMTRACEIDR() MRC14(1, c1, c0, 0) 385#define RCP14_ETMIDR2() MRC14(1, c1, c2, 0) 386#define RCP14_ETMVMIDCVR() MRC14(1, c1, c0, 1) 387#define RCP14_ETMOSLSR() MRC14(1, c1, c1, 4) 388/* Not available in PFTv1.1 */ 389#define RCP14_ETMOSSRR() MRC14(1, c1, c2, 4) 390#define RCP14_ETMPDCR() MRC14(1, c1, c4, 4) 391#define RCP14_ETMPDSR() MRC14(1, c1, c5, 4) 392#define RCP14_ETMITCTRL() MRC14(1, c7, c0, 4) 393#define RCP14_ETMCLAIMSET() MRC14(1, c7, c8, 6) 394#define RCP14_ETMCLAIMCLR() MRC14(1, c7, c9, 6) 395#define RCP14_ETMLSR() MRC14(1, c7, c13, 6) 396#define RCP14_ETMAUTHSTATUS() MRC14(1, c7, c14, 6) 397#define RCP14_ETMDEVID() MRC14(1, c7, c2, 7) 398#define RCP14_ETMDEVTYPE() MRC14(1, c7, c3, 7) 399#define RCP14_ETMPIDR4() MRC14(1, c7, c4, 7) 400#define RCP14_ETMPIDR5() MRC14(1, c7, c5, 7) 401#define RCP14_ETMPIDR6() MRC14(1, c7, c6, 7) 402#define RCP14_ETMPIDR7() MRC14(1, c7, c7, 7) 403#define RCP14_ETMPIDR0() MRC14(1, c7, c8, 7) 404#define RCP14_ETMPIDR1() MRC14(1, c7, c9, 7) 405#define RCP14_ETMPIDR2() MRC14(1, c7, c10, 7) 406#define RCP14_ETMPIDR3() MRC14(1, c7, c11, 7) 407#define RCP14_ETMCIDR0() MRC14(1, c7, c12, 7) 408#define RCP14_ETMCIDR1() MRC14(1, c7, c13, 7) 409#define RCP14_ETMCIDR2() MRC14(1, c7, c14, 7) 410#define RCP14_ETMCIDR3() MRC14(1, c7, c15, 7) 411 412#define WCP14_ETMCR(val) MCR14(val, 1, c0, c0, 0) 413#define WCP14_ETMTRIGGER(val) MCR14(val, 1, c0, c2, 0) 414#define WCP14_ETMASICCR(val) MCR14(val, 1, c0, c3, 0) 415#define WCP14_ETMSR(val) MCR14(val, 1, c0, c4, 0) 416#define WCP14_ETMTSSCR(val) MCR14(val, 1, c0, c6, 0) 417#define WCP14_ETMTECR2(val) MCR14(val, 1, c0, c7, 0) 418#define WCP14_ETMTEEVR(val) MCR14(val, 1, c0, c8, 0) 419#define WCP14_ETMTECR1(val) MCR14(val, 1, c0, c9, 0) 420#define WCP14_ETMFFRR(val) MCR14(val, 1, c0, c10, 0) 421#define WCP14_ETMFFLR(val) MCR14(val, 1, c0, c11, 0) 422#define WCP14_ETMVDEVR(val) MCR14(val, 1, c0, c12, 0) 423#define WCP14_ETMVDCR1(val) MCR14(val, 1, c0, c13, 0) 424#define WCP14_ETMVDCR2(val) MCR14(val, 1, c0, c14, 0) 425#define WCP14_ETMVDCR3(val) MCR14(val, 1, c0, c15, 0) 426#define WCP14_ETMACVR0(val) MCR14(val, 1, c0, c0, 1) 427#define WCP14_ETMACVR1(val) MCR14(val, 1, c0, c1, 1) 428#define WCP14_ETMACVR2(val) MCR14(val, 1, c0, c2, 1) 429#define WCP14_ETMACVR3(val) MCR14(val, 1, c0, c3, 1) 430#define WCP14_ETMACVR4(val) MCR14(val, 1, c0, c4, 1) 431#define WCP14_ETMACVR5(val) MCR14(val, 1, c0, c5, 1) 432#define WCP14_ETMACVR6(val) MCR14(val, 1, c0, c6, 1) 433#define WCP14_ETMACVR7(val) MCR14(val, 1, c0, c7, 1) 434#define WCP14_ETMACVR8(val) MCR14(val, 1, c0, c8, 1) 435#define WCP14_ETMACVR9(val) MCR14(val, 1, c0, c9, 1) 436#define WCP14_ETMACVR10(val) MCR14(val, 1, c0, c10, 1) 437#define WCP14_ETMACVR11(val) MCR14(val, 1, c0, c11, 1) 438#define WCP14_ETMACVR12(val) MCR14(val, 1, c0, c12, 1) 439#define WCP14_ETMACVR13(val) MCR14(val, 1, c0, c13, 1) 440#define WCP14_ETMACVR14(val) MCR14(val, 1, c0, c14, 1) 441#define WCP14_ETMACVR15(val) MCR14(val, 1, c0, c15, 1) 442#define WCP14_ETMACTR0(val) MCR14(val, 1, c0, c0, 2) 443#define WCP14_ETMACTR1(val) MCR14(val, 1, c0, c1, 2) 444#define WCP14_ETMACTR2(val) MCR14(val, 1, c0, c2, 2) 445#define WCP14_ETMACTR3(val) MCR14(val, 1, c0, c3, 2) 446#define WCP14_ETMACTR4(val) MCR14(val, 1, c0, c4, 2) 447#define WCP14_ETMACTR5(val) MCR14(val, 1, c0, c5, 2) 448#define WCP14_ETMACTR6(val) MCR14(val, 1, c0, c6, 2) 449#define WCP14_ETMACTR7(val) MCR14(val, 1, c0, c7, 2) 450#define WCP14_ETMACTR8(val) MCR14(val, 1, c0, c8, 2) 451#define WCP14_ETMACTR9(val) MCR14(val, 1, c0, c9, 2) 452#define WCP14_ETMACTR10(val) MCR14(val, 1, c0, c10, 2) 453#define WCP14_ETMACTR11(val) MCR14(val, 1, c0, c11, 2) 454#define WCP14_ETMACTR12(val) MCR14(val, 1, c0, c12, 2) 455#define WCP14_ETMACTR13(val) MCR14(val, 1, c0, c13, 2) 456#define WCP14_ETMACTR14(val) MCR14(val, 1, c0, c14, 2) 457#define WCP14_ETMACTR15(val) MCR14(val, 1, c0, c15, 2) 458#define WCP14_ETMDCVR0(val) MCR14(val, 1, c0, c0, 3) 459#define WCP14_ETMDCVR2(val) MCR14(val, 1, c0, c2, 3) 460#define WCP14_ETMDCVR4(val) MCR14(val, 1, c0, c4, 3) 461#define WCP14_ETMDCVR6(val) MCR14(val, 1, c0, c6, 3) 462#define WCP14_ETMDCVR8(val) MCR14(val, 1, c0, c8, 3) 463#define WCP14_ETMDCVR10(val) MCR14(val, 1, c0, c10, 3) 464#define WCP14_ETMDCVR12(val) MCR14(val, 1, c0, c12, 3) 465#define WCP14_ETMDCVR14(val) MCR14(val, 1, c0, c14, 3) 466#define WCP14_ETMDCMR0(val) MCR14(val, 1, c0, c0, 4) 467#define WCP14_ETMDCMR2(val) MCR14(val, 1, c0, c2, 4) 468#define WCP14_ETMDCMR4(val) MCR14(val, 1, c0, c4, 4) 469#define WCP14_ETMDCMR6(val) MCR14(val, 1, c0, c6, 4) 470#define WCP14_ETMDCMR8(val) MCR14(val, 1, c0, c8, 4) 471#define WCP14_ETMDCMR10(val) MCR14(val, 1, c0, c10, 4) 472#define WCP14_ETMDCMR12(val) MCR14(val, 1, c0, c12, 4) 473#define WCP14_ETMDCMR14(val) MCR14(val, 1, c0, c14, 4) 474#define WCP14_ETMCNTRLDVR0(val) MCR14(val, 1, c0, c0, 5) 475#define WCP14_ETMCNTRLDVR1(val) MCR14(val, 1, c0, c1, 5) 476#define WCP14_ETMCNTRLDVR2(val) MCR14(val, 1, c0, c2, 5) 477#define WCP14_ETMCNTRLDVR3(val) MCR14(val, 1, c0, c3, 5) 478#define WCP14_ETMCNTENR0(val) MCR14(val, 1, c0, c4, 5) 479#define WCP14_ETMCNTENR1(val) MCR14(val, 1, c0, c5, 5) 480#define WCP14_ETMCNTENR2(val) MCR14(val, 1, c0, c6, 5) 481#define WCP14_ETMCNTENR3(val) MCR14(val, 1, c0, c7, 5) 482#define WCP14_ETMCNTRLDEVR0(val) MCR14(val, 1, c0, c8, 5) 483#define WCP14_ETMCNTRLDEVR1(val) MCR14(val, 1, c0, c9, 5) 484#define WCP14_ETMCNTRLDEVR2(val) MCR14(val, 1, c0, c10, 5) 485#define WCP14_ETMCNTRLDEVR3(val) MCR14(val, 1, c0, c11, 5) 486#define WCP14_ETMCNTVR0(val) MCR14(val, 1, c0, c12, 5) 487#define WCP14_ETMCNTVR1(val) MCR14(val, 1, c0, c13, 5) 488#define WCP14_ETMCNTVR2(val) MCR14(val, 1, c0, c14, 5) 489#define WCP14_ETMCNTVR3(val) MCR14(val, 1, c0, c15, 5) 490#define WCP14_ETMSQ12EVR(val) MCR14(val, 1, c0, c0, 6) 491#define WCP14_ETMSQ21EVR(val) MCR14(val, 1, c0, c1, 6) 492#define WCP14_ETMSQ23EVR(val) MCR14(val, 1, c0, c2, 6) 493#define WCP14_ETMSQ31EVR(val) MCR14(val, 1, c0, c3, 6) 494#define WCP14_ETMSQ32EVR(val) MCR14(val, 1, c0, c4, 6) 495#define WCP14_ETMSQ13EVR(val) MCR14(val, 1, c0, c5, 6) 496#define WCP14_ETMSQR(val) MCR14(val, 1, c0, c7, 6) 497#define WCP14_ETMEXTOUTEVR0(val) MCR14(val, 1, c0, c8, 6) 498#define WCP14_ETMEXTOUTEVR1(val) MCR14(val, 1, c0, c9, 6) 499#define WCP14_ETMEXTOUTEVR2(val) MCR14(val, 1, c0, c10, 6) 500#define WCP14_ETMEXTOUTEVR3(val) MCR14(val, 1, c0, c11, 6) 501#define WCP14_ETMCIDCVR0(val) MCR14(val, 1, c0, c12, 6) 502#define WCP14_ETMCIDCVR1(val) MCR14(val, 1, c0, c13, 6) 503#define WCP14_ETMCIDCVR2(val) MCR14(val, 1, c0, c14, 6) 504#define WCP14_ETMCIDCMR(val) MCR14(val, 1, c0, c15, 6) 505#define WCP14_ETMIMPSPEC0(val) MCR14(val, 1, c0, c0, 7) 506#define WCP14_ETMIMPSPEC1(val) MCR14(val, 1, c0, c1, 7) 507#define WCP14_ETMIMPSPEC2(val) MCR14(val, 1, c0, c2, 7) 508#define WCP14_ETMIMPSPEC3(val) MCR14(val, 1, c0, c3, 7) 509#define WCP14_ETMIMPSPEC4(val) MCR14(val, 1, c0, c4, 7) 510#define WCP14_ETMIMPSPEC5(val) MCR14(val, 1, c0, c5, 7) 511#define WCP14_ETMIMPSPEC6(val) MCR14(val, 1, c0, c6, 7) 512#define WCP14_ETMIMPSPEC7(val) MCR14(val, 1, c0, c7, 7) 513/* Can be read only in ETMv3.4, ETMv3.5 */ 514#define WCP14_ETMSYNCFR(val) MCR14(val, 1, c0, c8, 7) 515#define WCP14_ETMEXTINSELR(val) MCR14(val, 1, c0, c11, 7) 516#define WCP14_ETMTESSEICR(val) MCR14(val, 1, c0, c12, 7) 517#define WCP14_ETMEIBCR(val) MCR14(val, 1, c0, c13, 7) 518#define WCP14_ETMTSEVR(val) MCR14(val, 1, c0, c14, 7) 519#define WCP14_ETMAUXCR(val) MCR14(val, 1, c0, c15, 7) 520#define WCP14_ETMTRACEIDR(val) MCR14(val, 1, c1, c0, 0) 521#define WCP14_ETMIDR2(val) MCR14(val, 1, c1, c2, 0) 522#define WCP14_ETMVMIDCVR(val) MCR14(val, 1, c1, c0, 1) 523#define WCP14_ETMOSLAR(val) MCR14(val, 1, c1, c0, 4) 524/* Not available in PFTv1.1 */ 525#define WCP14_ETMOSSRR(val) MCR14(val, 1, c1, c2, 4) 526#define WCP14_ETMPDCR(val) MCR14(val, 1, c1, c4, 4) 527#define WCP14_ETMPDSR(val) MCR14(val, 1, c1, c5, 4) 528#define WCP14_ETMITCTRL(val) MCR14(val, 1, c7, c0, 4) 529#define WCP14_ETMCLAIMSET(val) MCR14(val, 1, c7, c8, 6) 530#define WCP14_ETMCLAIMCLR(val) MCR14(val, 1, c7, c9, 6) 531/* Writes to this from CP14 interface are ignored */ 532#define WCP14_ETMLAR(val) MCR14(val, 1, c7, c12, 6) 533 534#endif