arm: Do not define TLBTR in PMSA systems
If doing a PMSA (MPU) system do not define the VMSA specific TLBTR CP. The def is done separately from VMSA registers group as it is affected by both the OMAP/STRONGARM RW errata and the MIDR backgrounding. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Message-id: b03fea3840207edf633f5c9189400c3dd6a28d14.1434066412.git.peter.crosthwaite@xilinx.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
		
							parent
							
								
									62b44f059a
								
							
						
					
					
						commit
						8085ce63c5
					
				| @ -3448,11 +3448,14 @@ void register_cp_regs_for_features(ARMCPU *cpu) | ||||
|             { .name = "TCMTR", | ||||
|               .cp = 15, .crn = 0, .crm = 0, .opc1 = 0, .opc2 = 2, | ||||
|               .access = PL1_R, .type = ARM_CP_CONST, .resetvalue = 0 }, | ||||
|             { .name = "TLBTR", | ||||
|               .cp = 15, .crn = 0, .crm = 0, .opc1 = 0, .opc2 = 3, | ||||
|               .access = PL1_R, .type = ARM_CP_CONST, .resetvalue = 0 }, | ||||
|             REGINFO_SENTINEL | ||||
|         }; | ||||
|         /* TLBTR is specific to VMSA */ | ||||
|         ARMCPRegInfo id_tlbtr_reginfo = { | ||||
|               .name = "TLBTR", | ||||
|               .cp = 15, .crn = 0, .crm = 0, .opc1 = 0, .opc2 = 3, | ||||
|               .access = PL1_R, .type = ARM_CP_CONST, .resetvalue = 0, | ||||
|         }; | ||||
|         ARMCPRegInfo crn0_wi_reginfo = { | ||||
|             .name = "CRN0_WI", .cp = 15, .crn = 0, .crm = CP_ANY, | ||||
|             .opc1 = CP_ANY, .opc2 = CP_ANY, .access = PL1_W, | ||||
| @ -3474,6 +3477,7 @@ void register_cp_regs_for_features(ARMCPU *cpu) | ||||
|             for (r = id_cp_reginfo; r->type != ARM_CP_SENTINEL; r++) { | ||||
|                 r->access = PL1_RW; | ||||
|             } | ||||
|             id_tlbtr_reginfo.access = PL1_RW; | ||||
|         } | ||||
|         if (arm_feature(env, ARM_FEATURE_V8)) { | ||||
|             define_arm_cp_regs(cpu, id_v8_midr_cp_reginfo); | ||||
| @ -3481,6 +3485,9 @@ void register_cp_regs_for_features(ARMCPU *cpu) | ||||
|             define_arm_cp_regs(cpu, id_pre_v8_midr_cp_reginfo); | ||||
|         } | ||||
|         define_arm_cp_regs(cpu, id_cp_reginfo); | ||||
|         if (!arm_feature(env, ARM_FEATURE_MPU)) { | ||||
|             define_one_arm_cp_reg(cpu, &id_tlbtr_reginfo); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (arm_feature(env, ARM_FEATURE_MPIDR)) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Crosthwaite
						Peter Crosthwaite