root/arch/arm/include/asm/hardware/cp14.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 ({                                                                      \
  19 u32 val;                                                                \
  20 asm volatile("mrc p14, "#op1", %0, "#crn", "#crm", "#op2 : "=r" (val)); \
  21 val;                                                                    \
  22 })
  23 
  24 #define MCR14(val, op1, crn, crm, op2)                                  \
  25 ({                                                                      \
  26 asm 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

/* [<][>][^][v][top][bottom][index][help] */