fix(mte): use ATA bit with FEAT_MTE2

Currently SCR_EL3.ATA bit(26) is used freely or either with FEAT_MTE,
But ATA bit is available only with FEAT_MTE2. So use FEAT_MTE2
conditional check for use of SCR_EL3.ATA.

Ref:
https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Registers/SCR-EL3--Secure-Configuration-Register?lang=en#fieldset_0-26_26-1

Change-Id: I0a5766a138b0be760c5584014f1ab817e4207a93
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
This commit is contained in:
Govindraj Raja 2024-02-28 14:37:09 -06:00
parent e3ecd73116
commit ef0d0e5478

View file

@ -123,8 +123,8 @@ static void setup_secure_context(cpu_context_t *ctx, const struct entry_point_in
scr_el3 |= get_scr_el3_from_routing_model(SECURE); scr_el3 |= get_scr_el3_from_routing_model(SECURE);
#endif #endif
/* Allow access to Allocation Tags when mte is set*/ /* Allow access to Allocation Tags when FEAT_MTE2 is implemented and enabled. */
if (is_feat_mte_supported()) { if (is_feat_mte2_supported()) {
scr_el3 |= SCR_ATA_BIT; scr_el3 |= SCR_ATA_BIT;
} }
@ -193,8 +193,10 @@ static void setup_ns_context(cpu_context_t *ctx, const struct entry_point_info *
/* SCR_NS: Set the NS bit */ /* SCR_NS: Set the NS bit */
scr_el3 |= SCR_NS_BIT; scr_el3 |= SCR_NS_BIT;
/* Allow access to Allocation Tags when MTE is implemented. */ /* Allow access to Allocation Tags when FEAT_MTE2 is implemented and enabled. */
scr_el3 |= SCR_ATA_BIT; if (is_feat_mte2_supported()) {
scr_el3 |= SCR_ATA_BIT;
}
#if !CTX_INCLUDE_PAUTH_REGS #if !CTX_INCLUDE_PAUTH_REGS
/* /*