mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
target/arm: Clean up of register field definitions
Clean up the definitions of NSW and NSA fields in the VTCR register. These two fields are already defined properly using FIELD() so they are actually duplications. Also, define the NSW and NSA fields in the VSTCR register using FIELD() and remove their definitions based on VTCR fields. Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org> Message-id: 20250725014755.2122579-1-gustavo.romero@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
committed by
Peter Maydell
parent
4791f22a5f
commit
a362960b29
@@ -113,11 +113,6 @@ FIELD(DBGWCR, WT, 20, 1)
|
||||
FIELD(DBGWCR, MASK, 24, 5)
|
||||
FIELD(DBGWCR, SSCE, 29, 1)
|
||||
|
||||
#define VTCR_NSW (1u << 29)
|
||||
#define VTCR_NSA (1u << 30)
|
||||
#define VSTCR_SW VTCR_NSW
|
||||
#define VSTCR_SA VTCR_NSA
|
||||
|
||||
/* Bit definitions for CPACR (AArch32 only) */
|
||||
FIELD(CPACR, CP10, 20, 2)
|
||||
FIELD(CPACR, CP11, 22, 2)
|
||||
@@ -220,6 +215,9 @@ FIELD(VTCR, NSA, 30, 1)
|
||||
FIELD(VTCR, DS, 32, 1)
|
||||
FIELD(VTCR, SL2, 33, 1)
|
||||
|
||||
FIELD(VSTCR, SW, 29, 1)
|
||||
FIELD(VSTCR, SA, 30, 1)
|
||||
|
||||
#define HCRX_ENAS0 (1ULL << 0)
|
||||
#define HCRX_ENALS (1ULL << 1)
|
||||
#define HCRX_ENASR (1ULL << 2)
|
||||
|
||||
+4
-4
@@ -193,9 +193,9 @@ static ARMMMUIdx ptw_idx_for_stage_2(CPUARMState *env, ARMMMUIdx stage2idx)
|
||||
return ARMMMUIdx_Phys_Realm;
|
||||
case ARMSS_Secure:
|
||||
if (stage2idx == ARMMMUIdx_Stage2_S) {
|
||||
s2walk_secure = !(env->cp15.vstcr_el2 & VSTCR_SW);
|
||||
s2walk_secure = !(env->cp15.vstcr_el2 & R_VSTCR_SW_MASK);
|
||||
} else {
|
||||
s2walk_secure = !(env->cp15.vtcr_el2 & VTCR_NSW);
|
||||
s2walk_secure = !(env->cp15.vtcr_el2 & R_VTCR_NSW_MASK);
|
||||
}
|
||||
return s2walk_secure ? ARMMMUIdx_Phys_S : ARMMMUIdx_Phys_NS;
|
||||
default:
|
||||
@@ -3372,9 +3372,9 @@ static bool get_phys_addr_twostage(CPUARMState *env, S1Translate *ptw,
|
||||
*/
|
||||
if (in_space == ARMSS_Secure) {
|
||||
result->f.attrs.secure =
|
||||
!(env->cp15.vstcr_el2 & (VSTCR_SA | VSTCR_SW))
|
||||
!(env->cp15.vstcr_el2 & (R_VSTCR_SA_MASK | R_VSTCR_SW_MASK))
|
||||
&& (ipa_secure
|
||||
|| !(env->cp15.vtcr_el2 & (VTCR_NSA | VTCR_NSW)));
|
||||
|| !(env->cp15.vtcr_el2 & (R_VTCR_NSA_MASK | R_VTCR_NSW_MASK)));
|
||||
result->f.attrs.space = arm_secure_to_space(result->f.attrs.secure);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user