From: Giacomo Travaglini Date: Tue, 23 Oct 2018 15:23:27 +0000 (+0100) Subject: arch-arm: CPTR_EL3.TCPAC traps EL2 accesses to CPACR_EL1 X-Git-Tag: v19.0.0.0~1458 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47a8c479d9b12625d4d56a0c18ba72a0b640579e;p=gem5.git arch-arm: CPTR_EL3.TCPAC traps EL2 accesses to CPACR_EL1 According to the arm arm, CPTR_EL3.TCPAC traps EL2 accesses to the CPTR_EL2 or HCPTR, and EL2 and EL1 accesses to the CPACR_EL1 or CPACR, are trapped to EL3, unless they are trapped by CPTR_EL2.TCPAC. Change-Id: I637be35b29db39f044dda0c6cc4fe986c9620371 Signed-off-by: Giacomo Travaglini Reviewed-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/c/13775 Maintainer: Andreas Sandberg --- diff --git a/src/arch/arm/utility.cc b/src/arch/arm/utility.cc index e642250d8..0494c20d2 100644 --- a/src/arch/arm/utility.cc +++ b/src/arch/arm/utility.cc @@ -792,7 +792,7 @@ msrMrs64TrapToMon(const MiscRegIndex miscReg, CPTR cptr /* CPTR_EL3 */, break; // CPACR, CPTR case MISCREG_CPACR_EL1: - if (el == EL1) { + if (el == EL1 || el == EL2) { trapToMon = cptr.tcpac; } break;