@@ -5978,6 +5978,26 @@ static const ARMCPRegInfo predinv_reginfo[] = {
5978
5978
REGINFO_SENTINEL
5979
5979
};
5980
5980
5981
+ static CPAccessResult access_aa64_tid3 (CPUARMState * env , const ARMCPRegInfo * ri ,
5982
+ bool isread )
5983
+ {
5984
+ if ((arm_current_el (env ) < 2 ) && (arm_hcr_el2_eff (env ) & HCR_TID3 )) {
5985
+ return CP_ACCESS_TRAP_EL2 ;
5986
+ }
5987
+
5988
+ return CP_ACCESS_OK ;
5989
+ }
5990
+
5991
+ static CPAccessResult access_aa32_tid3 (CPUARMState * env , const ARMCPRegInfo * ri ,
5992
+ bool isread )
5993
+ {
5994
+ if (arm_feature (env , ARM_FEATURE_V8 )) {
5995
+ return access_aa64_tid3 (env , ri , isread );
5996
+ }
5997
+
5998
+ return CP_ACCESS_OK ;
5999
+ }
6000
+
5981
6001
void register_cp_regs_for_features (ARMCPU * cpu )
5982
6002
{
5983
6003
/* Register all the coprocessor registers based on feature bits */
@@ -6001,70 +6021,86 @@ void register_cp_regs_for_features(ARMCPU *cpu)
6001
6021
{ .name = "ID_PFR0" , .state = ARM_CP_STATE_BOTH ,
6002
6022
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 0 ,
6003
6023
.access = PL1_R , .type = ARM_CP_CONST ,
6024
+ .accessfn = access_aa32_tid3 ,
6004
6025
.resetvalue = cpu -> id_pfr0 },
6005
6026
/* ID_PFR1 is not a plain ARM_CP_CONST because we don't know
6006
6027
* the value of the GIC field until after we define these regs.
6007
6028
*/
6008
6029
{ .name = "ID_PFR1" , .state = ARM_CP_STATE_BOTH ,
6009
6030
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 1 ,
6010
6031
.access = PL1_R , .type = ARM_CP_NO_RAW ,
6032
+ .accessfn = access_aa32_tid3 ,
6011
6033
.readfn = id_pfr1_read ,
6012
6034
.writefn = arm_cp_write_ignore },
6013
6035
{ .name = "ID_DFR0" , .state = ARM_CP_STATE_BOTH ,
6014
6036
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 2 ,
6015
6037
.access = PL1_R , .type = ARM_CP_CONST ,
6038
+ .accessfn = access_aa32_tid3 ,
6016
6039
.resetvalue = cpu -> id_dfr0 },
6017
6040
{ .name = "ID_AFR0" , .state = ARM_CP_STATE_BOTH ,
6018
6041
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 3 ,
6019
6042
.access = PL1_R , .type = ARM_CP_CONST ,
6043
+ .accessfn = access_aa32_tid3 ,
6020
6044
.resetvalue = cpu -> id_afr0 },
6021
6045
{ .name = "ID_MMFR0" , .state = ARM_CP_STATE_BOTH ,
6022
6046
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 4 ,
6023
6047
.access = PL1_R , .type = ARM_CP_CONST ,
6048
+ .accessfn = access_aa32_tid3 ,
6024
6049
.resetvalue = cpu -> id_mmfr0 },
6025
6050
{ .name = "ID_MMFR1" , .state = ARM_CP_STATE_BOTH ,
6026
6051
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 5 ,
6027
6052
.access = PL1_R , .type = ARM_CP_CONST ,
6053
+ .accessfn = access_aa32_tid3 ,
6028
6054
.resetvalue = cpu -> id_mmfr1 },
6029
6055
{ .name = "ID_MMFR2" , .state = ARM_CP_STATE_BOTH ,
6030
6056
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 6 ,
6031
6057
.access = PL1_R , .type = ARM_CP_CONST ,
6058
+ .accessfn = access_aa32_tid3 ,
6032
6059
.resetvalue = cpu -> id_mmfr2 },
6033
6060
{ .name = "ID_MMFR3" , .state = ARM_CP_STATE_BOTH ,
6034
6061
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 1 , .opc2 = 7 ,
6035
6062
.access = PL1_R , .type = ARM_CP_CONST ,
6063
+ .accessfn = access_aa32_tid3 ,
6036
6064
.resetvalue = cpu -> id_mmfr3 },
6037
6065
{ .name = "ID_ISAR0" , .state = ARM_CP_STATE_BOTH ,
6038
6066
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 0 ,
6039
6067
.access = PL1_R , .type = ARM_CP_CONST ,
6068
+ .accessfn = access_aa32_tid3 ,
6040
6069
.resetvalue = cpu -> isar .id_isar0 },
6041
6070
{ .name = "ID_ISAR1" , .state = ARM_CP_STATE_BOTH ,
6042
6071
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 1 ,
6043
6072
.access = PL1_R , .type = ARM_CP_CONST ,
6073
+ .accessfn = access_aa32_tid3 ,
6044
6074
.resetvalue = cpu -> isar .id_isar1 },
6045
6075
{ .name = "ID_ISAR2" , .state = ARM_CP_STATE_BOTH ,
6046
6076
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 2 ,
6047
6077
.access = PL1_R , .type = ARM_CP_CONST ,
6078
+ .accessfn = access_aa32_tid3 ,
6048
6079
.resetvalue = cpu -> isar .id_isar2 },
6049
6080
{ .name = "ID_ISAR3" , .state = ARM_CP_STATE_BOTH ,
6050
6081
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 3 ,
6051
6082
.access = PL1_R , .type = ARM_CP_CONST ,
6083
+ .accessfn = access_aa32_tid3 ,
6052
6084
.resetvalue = cpu -> isar .id_isar3 },
6053
6085
{ .name = "ID_ISAR4" , .state = ARM_CP_STATE_BOTH ,
6054
6086
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 4 ,
6055
6087
.access = PL1_R , .type = ARM_CP_CONST ,
6088
+ .accessfn = access_aa32_tid3 ,
6056
6089
.resetvalue = cpu -> isar .id_isar4 },
6057
6090
{ .name = "ID_ISAR5" , .state = ARM_CP_STATE_BOTH ,
6058
6091
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 5 ,
6059
6092
.access = PL1_R , .type = ARM_CP_CONST ,
6093
+ .accessfn = access_aa32_tid3 ,
6060
6094
.resetvalue = cpu -> isar .id_isar5 },
6061
6095
{ .name = "ID_MMFR4" , .state = ARM_CP_STATE_BOTH ,
6062
6096
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 6 ,
6063
6097
.access = PL1_R , .type = ARM_CP_CONST ,
6098
+ .accessfn = access_aa32_tid3 ,
6064
6099
.resetvalue = cpu -> id_mmfr4 },
6065
6100
{ .name = "ID_ISAR6" , .state = ARM_CP_STATE_BOTH ,
6066
6101
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 2 , .opc2 = 7 ,
6067
6102
.access = PL1_R , .type = ARM_CP_CONST ,
6103
+ .accessfn = access_aa32_tid3 ,
6068
6104
.resetvalue = cpu -> isar .id_isar6 },
6069
6105
REGINFO_SENTINEL
6070
6106
};
@@ -6185,164 +6221,204 @@ void register_cp_regs_for_features(ARMCPU *cpu)
6185
6221
{ .name = "ID_AA64PFR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6186
6222
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 0 ,
6187
6223
.access = PL1_R , .type = ARM_CP_NO_RAW ,
6224
+ .accessfn = access_aa64_tid3 ,
6188
6225
.readfn = id_aa64pfr0_read ,
6189
6226
.writefn = arm_cp_write_ignore },
6190
6227
{ .name = "ID_AA64PFR1_EL1" , .state = ARM_CP_STATE_AA64 ,
6191
6228
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 1 ,
6192
6229
.access = PL1_R , .type = ARM_CP_CONST ,
6230
+ .accessfn = access_aa64_tid3 ,
6193
6231
.resetvalue = cpu -> isar .id_aa64pfr1 },
6194
6232
{ .name = "ID_AA64PFR2_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6195
6233
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 2 ,
6196
6234
.access = PL1_R , .type = ARM_CP_CONST ,
6235
+ .accessfn = access_aa64_tid3 ,
6197
6236
.resetvalue = 0 },
6198
6237
{ .name = "ID_AA64PFR3_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6199
6238
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 3 ,
6200
6239
.access = PL1_R , .type = ARM_CP_CONST ,
6240
+ .accessfn = access_aa64_tid3 ,
6201
6241
.resetvalue = 0 },
6202
6242
{ .name = "ID_AA64ZFR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6203
6243
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 4 ,
6204
6244
.access = PL1_R , .type = ARM_CP_CONST ,
6245
+ .accessfn = access_aa64_tid3 ,
6205
6246
/* At present, only SVEver == 0 is defined anyway. */
6206
6247
.resetvalue = 0 },
6207
6248
{ .name = "ID_AA64PFR5_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6208
6249
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 5 ,
6209
6250
.access = PL1_R , .type = ARM_CP_CONST ,
6251
+ .accessfn = access_aa64_tid3 ,
6210
6252
.resetvalue = 0 },
6211
6253
{ .name = "ID_AA64PFR6_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6212
6254
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 6 ,
6213
6255
.access = PL1_R , .type = ARM_CP_CONST ,
6256
+ .accessfn = access_aa64_tid3 ,
6214
6257
.resetvalue = 0 },
6215
6258
{ .name = "ID_AA64PFR7_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6216
6259
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 4 , .opc2 = 7 ,
6217
6260
.access = PL1_R , .type = ARM_CP_CONST ,
6261
+ .accessfn = access_aa64_tid3 ,
6218
6262
.resetvalue = 0 },
6219
6263
{ .name = "ID_AA64DFR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6220
6264
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 0 ,
6221
6265
.access = PL1_R , .type = ARM_CP_CONST ,
6266
+ .accessfn = access_aa64_tid3 ,
6222
6267
.resetvalue = cpu -> id_aa64dfr0 },
6223
6268
{ .name = "ID_AA64DFR1_EL1" , .state = ARM_CP_STATE_AA64 ,
6224
6269
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 1 ,
6225
6270
.access = PL1_R , .type = ARM_CP_CONST ,
6271
+ .accessfn = access_aa64_tid3 ,
6226
6272
.resetvalue = cpu -> id_aa64dfr1 },
6227
6273
{ .name = "ID_AA64DFR2_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6228
6274
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 2 ,
6229
6275
.access = PL1_R , .type = ARM_CP_CONST ,
6276
+ .accessfn = access_aa64_tid3 ,
6230
6277
.resetvalue = 0 },
6231
6278
{ .name = "ID_AA64DFR3_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6232
6279
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 3 ,
6233
6280
.access = PL1_R , .type = ARM_CP_CONST ,
6281
+ .accessfn = access_aa64_tid3 ,
6234
6282
.resetvalue = 0 },
6235
6283
{ .name = "ID_AA64AFR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6236
6284
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 4 ,
6237
6285
.access = PL1_R , .type = ARM_CP_CONST ,
6286
+ .accessfn = access_aa64_tid3 ,
6238
6287
.resetvalue = cpu -> id_aa64afr0 },
6239
6288
{ .name = "ID_AA64AFR1_EL1" , .state = ARM_CP_STATE_AA64 ,
6240
6289
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 5 ,
6241
6290
.access = PL1_R , .type = ARM_CP_CONST ,
6291
+ .accessfn = access_aa64_tid3 ,
6242
6292
.resetvalue = cpu -> id_aa64afr1 },
6243
6293
{ .name = "ID_AA64AFR2_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6244
6294
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 6 ,
6245
6295
.access = PL1_R , .type = ARM_CP_CONST ,
6296
+ .accessfn = access_aa64_tid3 ,
6246
6297
.resetvalue = 0 },
6247
6298
{ .name = "ID_AA64AFR3_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6248
6299
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 5 , .opc2 = 7 ,
6249
6300
.access = PL1_R , .type = ARM_CP_CONST ,
6301
+ .accessfn = access_aa64_tid3 ,
6250
6302
.resetvalue = 0 },
6251
6303
{ .name = "ID_AA64ISAR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6252
6304
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 0 ,
6253
6305
.access = PL1_R , .type = ARM_CP_CONST ,
6306
+ .accessfn = access_aa64_tid3 ,
6254
6307
.resetvalue = cpu -> isar .id_aa64isar0 },
6255
6308
{ .name = "ID_AA64ISAR1_EL1" , .state = ARM_CP_STATE_AA64 ,
6256
6309
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 1 ,
6257
6310
.access = PL1_R , .type = ARM_CP_CONST ,
6311
+ .accessfn = access_aa64_tid3 ,
6258
6312
.resetvalue = cpu -> isar .id_aa64isar1 },
6259
6313
{ .name = "ID_AA64ISAR2_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6260
6314
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 2 ,
6261
6315
.access = PL1_R , .type = ARM_CP_CONST ,
6316
+ .accessfn = access_aa64_tid3 ,
6262
6317
.resetvalue = 0 },
6263
6318
{ .name = "ID_AA64ISAR3_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6264
6319
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 3 ,
6265
6320
.access = PL1_R , .type = ARM_CP_CONST ,
6321
+ .accessfn = access_aa64_tid3 ,
6266
6322
.resetvalue = 0 },
6267
6323
{ .name = "ID_AA64ISAR4_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6268
6324
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 4 ,
6269
6325
.access = PL1_R , .type = ARM_CP_CONST ,
6326
+ .accessfn = access_aa64_tid3 ,
6270
6327
.resetvalue = 0 },
6271
6328
{ .name = "ID_AA64ISAR5_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6272
6329
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 5 ,
6273
6330
.access = PL1_R , .type = ARM_CP_CONST ,
6331
+ .accessfn = access_aa64_tid3 ,
6274
6332
.resetvalue = 0 },
6275
6333
{ .name = "ID_AA64ISAR6_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6276
6334
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 6 ,
6277
6335
.access = PL1_R , .type = ARM_CP_CONST ,
6336
+ .accessfn = access_aa64_tid3 ,
6278
6337
.resetvalue = 0 },
6279
6338
{ .name = "ID_AA64ISAR7_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6280
6339
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 6 , .opc2 = 7 ,
6281
6340
.access = PL1_R , .type = ARM_CP_CONST ,
6341
+ .accessfn = access_aa64_tid3 ,
6282
6342
.resetvalue = 0 },
6283
6343
{ .name = "ID_AA64MMFR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6284
6344
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 0 ,
6285
6345
.access = PL1_R , .type = ARM_CP_CONST ,
6346
+ .accessfn = access_aa64_tid3 ,
6286
6347
.resetvalue = cpu -> isar .id_aa64mmfr0 },
6287
6348
{ .name = "ID_AA64MMFR1_EL1" , .state = ARM_CP_STATE_AA64 ,
6288
6349
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 1 ,
6289
6350
.access = PL1_R , .type = ARM_CP_CONST ,
6351
+ .accessfn = access_aa64_tid3 ,
6290
6352
.resetvalue = cpu -> isar .id_aa64mmfr1 },
6291
6353
{ .name = "ID_AA64MMFR2_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6292
6354
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 2 ,
6293
6355
.access = PL1_R , .type = ARM_CP_CONST ,
6356
+ .accessfn = access_aa64_tid3 ,
6294
6357
.resetvalue = 0 },
6295
6358
{ .name = "ID_AA64MMFR3_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6296
6359
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 3 ,
6297
6360
.access = PL1_R , .type = ARM_CP_CONST ,
6361
+ .accessfn = access_aa64_tid3 ,
6298
6362
.resetvalue = 0 },
6299
6363
{ .name = "ID_AA64MMFR4_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6300
6364
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 4 ,
6301
6365
.access = PL1_R , .type = ARM_CP_CONST ,
6366
+ .accessfn = access_aa64_tid3 ,
6302
6367
.resetvalue = 0 },
6303
6368
{ .name = "ID_AA64MMFR5_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6304
6369
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 5 ,
6305
6370
.access = PL1_R , .type = ARM_CP_CONST ,
6371
+ .accessfn = access_aa64_tid3 ,
6306
6372
.resetvalue = 0 },
6307
6373
{ .name = "ID_AA64MMFR6_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6308
6374
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 6 ,
6309
6375
.access = PL1_R , .type = ARM_CP_CONST ,
6376
+ .accessfn = access_aa64_tid3 ,
6310
6377
.resetvalue = 0 },
6311
6378
{ .name = "ID_AA64MMFR7_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6312
6379
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 7 , .opc2 = 7 ,
6313
6380
.access = PL1_R , .type = ARM_CP_CONST ,
6381
+ .accessfn = access_aa64_tid3 ,
6314
6382
.resetvalue = 0 },
6315
6383
{ .name = "MVFR0_EL1" , .state = ARM_CP_STATE_AA64 ,
6316
6384
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 0 ,
6317
6385
.access = PL1_R , .type = ARM_CP_CONST ,
6386
+ .accessfn = access_aa64_tid3 ,
6318
6387
.resetvalue = cpu -> isar .mvfr0 },
6319
6388
{ .name = "MVFR1_EL1" , .state = ARM_CP_STATE_AA64 ,
6320
6389
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 1 ,
6321
6390
.access = PL1_R , .type = ARM_CP_CONST ,
6391
+ .accessfn = access_aa64_tid3 ,
6322
6392
.resetvalue = cpu -> isar .mvfr1 },
6323
6393
{ .name = "MVFR2_EL1" , .state = ARM_CP_STATE_AA64 ,
6324
6394
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 2 ,
6325
6395
.access = PL1_R , .type = ARM_CP_CONST ,
6396
+ .accessfn = access_aa64_tid3 ,
6326
6397
.resetvalue = cpu -> isar .mvfr2 },
6327
6398
{ .name = "MVFR3_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6328
6399
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 3 ,
6329
6400
.access = PL1_R , .type = ARM_CP_CONST ,
6401
+ .accessfn = access_aa64_tid3 ,
6330
6402
.resetvalue = 0 },
6331
6403
{ .name = "MVFR4_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6332
6404
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 4 ,
6333
6405
.access = PL1_R , .type = ARM_CP_CONST ,
6406
+ .accessfn = access_aa64_tid3 ,
6334
6407
.resetvalue = 0 },
6335
6408
{ .name = "MVFR5_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6336
6409
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 5 ,
6337
6410
.access = PL1_R , .type = ARM_CP_CONST ,
6411
+ .accessfn = access_aa64_tid3 ,
6338
6412
.resetvalue = 0 },
6339
6413
{ .name = "MVFR6_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6340
6414
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 6 ,
6341
6415
.access = PL1_R , .type = ARM_CP_CONST ,
6416
+ .accessfn = access_aa64_tid3 ,
6342
6417
.resetvalue = 0 },
6343
6418
{ .name = "MVFR7_EL1_RESERVED" , .state = ARM_CP_STATE_AA64 ,
6344
6419
.opc0 = 3 , .opc1 = 0 , .crn = 0 , .crm = 3 , .opc2 = 7 ,
6345
6420
.access = PL1_R , .type = ARM_CP_CONST ,
6421
+ .accessfn = access_aa64_tid3 ,
6346
6422
.resetvalue = 0 },
6347
6423
{ .name = "PMCEID0" , .state = ARM_CP_STATE_AA32 ,
6348
6424
.cp = 15 , .opc1 = 0 , .crn = 9 , .crm = 12 , .opc2 = 6 ,
0 commit comments