13a1b0676SDimitris Papastamos /* 28ae6b1adSArvind Ram Prakash * Copyright (c) 2018-2025, Arm Limited and Contributors. All rights reserved. 33a1b0676SDimitris Papastamos * 43a1b0676SDimitris Papastamos * SPDX-License-Identifier: BSD-3-Clause 53a1b0676SDimitris Papastamos */ 63a1b0676SDimitris Papastamos 7c3cf06f1SAntonio Nino Diaz #ifndef ARM_ARCH_SVC_H 8c3cf06f1SAntonio Nino Diaz #define ARM_ARCH_SVC_H 93a1b0676SDimitris Papastamos 103a1b0676SDimitris Papastamos #define SMCCC_VERSION U(0x80000000) 113a1b0676SDimitris Papastamos #define SMCCC_ARCH_FEATURES U(0x80000001) 120e753437SManish V Badarkhe #define SMCCC_ARCH_SOC_ID U(0x80000002) 133a1b0676SDimitris Papastamos #define SMCCC_ARCH_WORKAROUND_1 U(0x80008000) 14b8a25bbbSDimitris Papastamos #define SMCCC_ARCH_WORKAROUND_2 U(0x80007FFF) 159b2510b6SBipin Ravi #define SMCCC_ARCH_WORKAROUND_3 U(0x80003FFF) 168db17052SBoyan Karatotev #define SMCCC_ARCH_FEATURE_AVAILABILITY U(0x80000003) 178ae6b1adSArvind Ram Prakash #define SMCCC_ARCH_WORKAROUND_4 U(0x80000004) 18b8a25bbbSDimitris Papastamos 190e753437SManish V Badarkhe #define SMCCC_GET_SOC_VERSION U(0) 200e753437SManish V Badarkhe #define SMCCC_GET_SOC_REVISION U(1) 210e753437SManish V Badarkhe 228db17052SBoyan Karatotev #ifndef __ASSEMBLER__ 238db17052SBoyan Karatotev #if ARCH_FEATURE_AVAILABILITY 248db17052SBoyan Karatotev #include <lib/cassert.h> 258db17052SBoyan Karatotev 268db17052SBoyan Karatotev #if ENABLE_FEAT_FGT2 278db17052SBoyan Karatotev #define SCR_FEAT_FGT2 SCR_FGTEN2_BIT 288db17052SBoyan Karatotev #else 298db17052SBoyan Karatotev #define SCR_FEAT_FGT2 (0) 308db17052SBoyan Karatotev #endif 318db17052SBoyan Karatotev 328db17052SBoyan Karatotev #if ENABLE_FEAT_FPMR 338db17052SBoyan Karatotev #define SCR_FEAT_FPMR SCR_EnFPM_BIT 348db17052SBoyan Karatotev #else 358db17052SBoyan Karatotev #define SCR_FEAT_FPMR 368db17052SBoyan Karatotev #endif 378db17052SBoyan Karatotev 388db17052SBoyan Karatotev #if ENABLE_FEAT_D128 398db17052SBoyan Karatotev #define SCR_FEAT_D128 SCR_D128En_BIT 408db17052SBoyan Karatotev #else 418db17052SBoyan Karatotev #define SCR_FEAT_D128 (0) 428db17052SBoyan Karatotev #endif 438db17052SBoyan Karatotev 448db17052SBoyan Karatotev #if ENABLE_FEAT_S1PIE 458db17052SBoyan Karatotev #define SCR_FEAT_S1PIE SCR_PIEN_BIT 468db17052SBoyan Karatotev #else 478db17052SBoyan Karatotev #define SCR_FEAT_S1PIE (0) 488db17052SBoyan Karatotev #endif 498db17052SBoyan Karatotev 508db17052SBoyan Karatotev #if ENABLE_FEAT_SCTLR2 518db17052SBoyan Karatotev #define SCR_FEAT_SCTLR2 SCR_SCTLR2En_BIT 528db17052SBoyan Karatotev #else 538db17052SBoyan Karatotev #define SCR_FEAT_SCTLR2 (0) 548db17052SBoyan Karatotev #endif 558db17052SBoyan Karatotev 568db17052SBoyan Karatotev #if ENABLE_FEAT_TCR2 578db17052SBoyan Karatotev #define SCR_FEAT_TCR2 SCR_TCR2EN_BIT 588db17052SBoyan Karatotev #else 598db17052SBoyan Karatotev #define SCR_FEAT_TCR2 (0) 608db17052SBoyan Karatotev #endif 618db17052SBoyan Karatotev 628db17052SBoyan Karatotev #if ENABLE_FEAT_THE 638db17052SBoyan Karatotev #define SCR_FEAT_THE SCR_RCWMASKEn_BIT 648db17052SBoyan Karatotev #else 658db17052SBoyan Karatotev #define SCR_FEAT_THE (0) 668db17052SBoyan Karatotev #endif 678db17052SBoyan Karatotev 688db17052SBoyan Karatotev #if ENABLE_SME_FOR_NS 698db17052SBoyan Karatotev #define SCR_FEAT_SME SCR_ENTP2_BIT 708db17052SBoyan Karatotev #else 718db17052SBoyan Karatotev #define SCR_FEAT_SME (0) 728db17052SBoyan Karatotev #endif 738db17052SBoyan Karatotev 748db17052SBoyan Karatotev #if ENABLE_FEAT_GCS 758db17052SBoyan Karatotev #define SCR_FEAT_GCS SCR_GCSEn_BIT 768db17052SBoyan Karatotev #else 778db17052SBoyan Karatotev #define SCR_FEAT_GCS (0) 788db17052SBoyan Karatotev #endif 798db17052SBoyan Karatotev 808db17052SBoyan Karatotev #if ENABLE_FEAT_HCX 818db17052SBoyan Karatotev #define SCR_FEAT_HCX SCR_HXEn_BIT 828db17052SBoyan Karatotev #else 838db17052SBoyan Karatotev #define SCR_FEAT_HCX (0) 848db17052SBoyan Karatotev #endif 858db17052SBoyan Karatotev 868db17052SBoyan Karatotev #if ENABLE_FEAT_LS64_ACCDATA 878db17052SBoyan Karatotev #define SCR_FEAT_LS64_ACCDATA (SCR_ADEn_BIT | SCR_EnAS0_BIT) 888db17052SBoyan Karatotev #else 898db17052SBoyan Karatotev #define SCR_FEAT_LS64_ACCDATA (0) 908db17052SBoyan Karatotev #endif 918db17052SBoyan Karatotev 928db17052SBoyan Karatotev #if ENABLE_FEAT_AMUv1p1 938db17052SBoyan Karatotev #define SCR_FEAT_AMUv1p1 SCR_AMVOFFEN_BIT 948db17052SBoyan Karatotev #else 958db17052SBoyan Karatotev #define SCR_FEAT_AMUv1p1 (0) 968db17052SBoyan Karatotev #endif 978db17052SBoyan Karatotev 98d33ff5e0SAndre Przywara #if ENABLE_FEAT_TWED 99d33ff5e0SAndre Przywara #define SCR_FEAT_TWED SCR_TWEDEn_BIT 100d33ff5e0SAndre Przywara #else 101d33ff5e0SAndre Przywara #define SCR_FEAT_TWED (0) 102d33ff5e0SAndre Przywara #endif 103d33ff5e0SAndre Przywara 1048db17052SBoyan Karatotev #if ENABLE_FEAT_ECV 1058db17052SBoyan Karatotev #define SCR_FEAT_ECV SCR_ECVEN_BIT 1068db17052SBoyan Karatotev #else 1078db17052SBoyan Karatotev #define SCR_FEAT_ECV (0) 1088db17052SBoyan Karatotev #endif 1098db17052SBoyan Karatotev 1108db17052SBoyan Karatotev #if ENABLE_FEAT_FGT 1118db17052SBoyan Karatotev #define SCR_FEAT_FGT SCR_FGTEN_BIT 1128db17052SBoyan Karatotev #else 1138db17052SBoyan Karatotev #define SCR_FEAT_FGT (0) 1148db17052SBoyan Karatotev #endif 1158db17052SBoyan Karatotev 1168db17052SBoyan Karatotev #if ENABLE_FEAT_MTE2 1178db17052SBoyan Karatotev #define SCR_FEAT_MTE2 SCR_ATA_BIT 1188db17052SBoyan Karatotev #else 1198db17052SBoyan Karatotev #define SCR_FEAT_MTE2 (0) 1208db17052SBoyan Karatotev #endif 1218db17052SBoyan Karatotev 1228db17052SBoyan Karatotev #if ENABLE_FEAT_CSV2_2 1238db17052SBoyan Karatotev #define SCR_FEAT_CSV2_2 SCR_EnSCXT_BIT 1248db17052SBoyan Karatotev #else 1258db17052SBoyan Karatotev #define SCR_FEAT_CSV2_2 (0) 1268db17052SBoyan Karatotev #endif 1278db17052SBoyan Karatotev 128*04b80c18SAndre Przywara #if !RAS_TRAP_NS_ERR_REC_ACCESS 1298db17052SBoyan Karatotev #define SCR_FEAT_RAS SCR_TERR_BIT 1308db17052SBoyan Karatotev #else 1318db17052SBoyan Karatotev #define SCR_FEAT_RAS (0) 1328db17052SBoyan Karatotev #endif 1338db17052SBoyan Karatotev 1347e84f3cfSTushar Khandelwal #if ENABLE_FEAT_MEC 1357e84f3cfSTushar Khandelwal #define SCR_FEAT_MEC SCR_MECEn_BIT 1367e84f3cfSTushar Khandelwal #else 1377e84f3cfSTushar Khandelwal #define SCR_FEAT_MEC (0) 1387e84f3cfSTushar Khandelwal #endif 1397e84f3cfSTushar Khandelwal 1408db17052SBoyan Karatotev #ifndef SCR_PLAT_FEATS 1418db17052SBoyan Karatotev #define SCR_PLAT_FEATS (0) 1428db17052SBoyan Karatotev #endif 1438db17052SBoyan Karatotev #ifndef SCR_PLAT_FLIPPED 1448db17052SBoyan Karatotev #define SCR_PLAT_FLIPPED (0) 1458db17052SBoyan Karatotev #endif 1468db17052SBoyan Karatotev #ifndef SCR_PLAT_IGNORED 1478db17052SBoyan Karatotev #define SCR_PLAT_IGNORED (0) 1488db17052SBoyan Karatotev #endif 1498db17052SBoyan Karatotev 1508db17052SBoyan Karatotev #ifndef CPTR_PLAT_FEATS 1518db17052SBoyan Karatotev #define CPTR_PLAT_FEATS (0) 1528db17052SBoyan Karatotev #endif 1538db17052SBoyan Karatotev #ifndef CPTR_PLAT_FLIPPED 1548db17052SBoyan Karatotev #define CPTR_PLAT_FLIPPED (0) 1558db17052SBoyan Karatotev #endif 1568db17052SBoyan Karatotev 1578db17052SBoyan Karatotev #ifndef MDCR_PLAT_FEATS 1588db17052SBoyan Karatotev #define MDCR_PLAT_FEATS (0) 1598db17052SBoyan Karatotev #endif 1608db17052SBoyan Karatotev #ifndef MDCR_PLAT_FLIPPED 1618db17052SBoyan Karatotev #define MDCR_PLAT_FLIPPED (0) 1628db17052SBoyan Karatotev #endif 1638db17052SBoyan Karatotev #ifndef MDCR_PLAT_IGNORED 1648db17052SBoyan Karatotev #define MDCR_PLAT_IGNORED (0) 1658db17052SBoyan Karatotev #endif 1668db17052SBoyan Karatotev /* 1678db17052SBoyan Karatotev * XYZ_EL3_FEATS - list all bits that are relevant for feature enablement. It's 1688db17052SBoyan Karatotev * a constant list based on what features are expected. This relies on the fact 1698db17052SBoyan Karatotev * that if the feature is in any way disabled, then the relevant bit will not be 1708db17052SBoyan Karatotev * written by context management. 1718db17052SBoyan Karatotev * 1728db17052SBoyan Karatotev * XYZ_EL3_FLIPPED - bits with an active 0, rather than the usual active 1. The 1738db17052SBoyan Karatotev * spec always uses active 1 to mean that the feature will not trap. 1748db17052SBoyan Karatotev * 1758db17052SBoyan Karatotev * XYZ_EL3_IGNORED - list of all bits that are not relevant for feature 1768db17052SBoyan Karatotev * enablement and should not be reported to lower ELs 1778db17052SBoyan Karatotev */ 1788db17052SBoyan Karatotev #define SCR_EL3_FEATS ( \ 1798db17052SBoyan Karatotev SCR_FEAT_FGT2 | \ 1808db17052SBoyan Karatotev SCR_FEAT_FPMR | \ 1818db17052SBoyan Karatotev SCR_FEAT_D128 | \ 1828db17052SBoyan Karatotev SCR_FEAT_S1PIE | \ 1838db17052SBoyan Karatotev SCR_FEAT_SCTLR2 | \ 1848db17052SBoyan Karatotev SCR_FEAT_TCR2 | \ 1858db17052SBoyan Karatotev SCR_FEAT_THE | \ 1868db17052SBoyan Karatotev SCR_FEAT_SME | \ 1878db17052SBoyan Karatotev SCR_FEAT_GCS | \ 1888db17052SBoyan Karatotev SCR_FEAT_HCX | \ 1898db17052SBoyan Karatotev SCR_FEAT_LS64_ACCDATA | \ 1908db17052SBoyan Karatotev SCR_FEAT_AMUv1p1 | \ 191d33ff5e0SAndre Przywara SCR_FEAT_TWED | \ 1928db17052SBoyan Karatotev SCR_FEAT_ECV | \ 1938db17052SBoyan Karatotev SCR_FEAT_FGT | \ 1948db17052SBoyan Karatotev SCR_FEAT_MTE2 | \ 1958db17052SBoyan Karatotev SCR_FEAT_CSV2_2 | \ 1968db17052SBoyan Karatotev SCR_APK_BIT | /* FEAT_Pauth */ \ 1978db17052SBoyan Karatotev SCR_FEAT_RAS | \ 1988db17052SBoyan Karatotev SCR_PLAT_FEATS) 1998db17052SBoyan Karatotev #define SCR_EL3_FLIPPED ( \ 2008db17052SBoyan Karatotev SCR_FEAT_RAS | \ 2018db17052SBoyan Karatotev SCR_PLAT_FLIPPED) 2028db17052SBoyan Karatotev #define SCR_EL3_IGNORED ( \ 2038db17052SBoyan Karatotev SCR_API_BIT | \ 2048db17052SBoyan Karatotev SCR_RW_BIT | \ 2058db17052SBoyan Karatotev SCR_SIF_BIT | \ 2068db17052SBoyan Karatotev SCR_HCE_BIT | \ 2078db17052SBoyan Karatotev SCR_FIQ_BIT | \ 2088db17052SBoyan Karatotev SCR_IRQ_BIT | \ 2098db17052SBoyan Karatotev SCR_NS_BIT | \ 2108db17052SBoyan Karatotev SCR_RES1_BITS | \ 2117e84f3cfSTushar Khandelwal SCR_FEAT_MEC | \ 2128db17052SBoyan Karatotev SCR_PLAT_IGNORED) 2138db17052SBoyan Karatotev CASSERT((SCR_EL3_FEATS & SCR_EL3_IGNORED) == 0, scr_feat_is_ignored); 2148db17052SBoyan Karatotev CASSERT((SCR_EL3_FLIPPED & SCR_EL3_FEATS) == SCR_EL3_FLIPPED, scr_flipped_not_a_feat); 2158db17052SBoyan Karatotev 2168db17052SBoyan Karatotev #if ENABLE_SYS_REG_TRACE_FOR_NS 2178db17052SBoyan Karatotev #define CPTR_SYS_REG_TRACE (TCPAC_BIT | TTA_BIT) 2188db17052SBoyan Karatotev #else 2198db17052SBoyan Karatotev #define CPTR_SYS_REG_TRACE (0) 2208db17052SBoyan Karatotev #endif 2218db17052SBoyan Karatotev 2228db17052SBoyan Karatotev #if ENABLE_FEAT_AMU 2238db17052SBoyan Karatotev #define CPTR_FEAT_AMU TAM_BIT 2248db17052SBoyan Karatotev #else 2258db17052SBoyan Karatotev #define CPTR_FEAT_AMU (0) 2268db17052SBoyan Karatotev #endif 2278db17052SBoyan Karatotev 2288db17052SBoyan Karatotev #if ENABLE_SME_FOR_NS 2298db17052SBoyan Karatotev #define CPTR_FEAT_SME ESM_BIT 2308db17052SBoyan Karatotev #else 2318db17052SBoyan Karatotev #define CPTR_FEAT_SME (0) 2328db17052SBoyan Karatotev #endif 2338db17052SBoyan Karatotev 2348db17052SBoyan Karatotev #if ENABLE_SVE_FOR_NS 2358db17052SBoyan Karatotev #define CPTR_FEAT_SVE CPTR_EZ_BIT 2368db17052SBoyan Karatotev #else 2378db17052SBoyan Karatotev #define CPTR_FEAT_SVE (0) 2388db17052SBoyan Karatotev #endif 2398db17052SBoyan Karatotev 2408db17052SBoyan Karatotev #define CPTR_EL3_FEATS ( \ 2418db17052SBoyan Karatotev CPTR_SYS_REG_TRACE | \ 2428db17052SBoyan Karatotev CPTR_FEAT_AMU | \ 2438db17052SBoyan Karatotev CPTR_FEAT_SME | \ 2448db17052SBoyan Karatotev TFP_BIT | \ 2458db17052SBoyan Karatotev CPTR_FEAT_SVE | \ 2468db17052SBoyan Karatotev CPTR_PLAT_FEATS) 2478db17052SBoyan Karatotev #define CPTR_EL3_FLIPPED ( \ 2488db17052SBoyan Karatotev CPTR_SYS_REG_TRACE | \ 2498db17052SBoyan Karatotev CPTR_FEAT_AMU | \ 2508db17052SBoyan Karatotev TFP_BIT | \ 2518db17052SBoyan Karatotev CPTR_PLAT_FLIPPED) 2528db17052SBoyan Karatotev CASSERT((CPTR_EL3_FLIPPED & CPTR_EL3_FEATS) == CPTR_EL3_FLIPPED, cptr_flipped_not_a_feat); 2538db17052SBoyan Karatotev 2548db17052SBoyan Karatotev /* 2558db17052SBoyan Karatotev * Some features enables are expressed with more than 1 bit in order to cater 2568db17052SBoyan Karatotev * for multi world enablement. In those cases (BRB, TRB, SPE) only the last bit 2578db17052SBoyan Karatotev * is used and reported. This (ab)uses the convenient fact that the last bit 2588db17052SBoyan Karatotev * always means "enabled for this world" when context switched correctly. 2598db17052SBoyan Karatotev * The per-world values have been adjusted such that this is always true. 2608db17052SBoyan Karatotev */ 2618db17052SBoyan Karatotev #if ENABLE_BRBE_FOR_NS 2628db17052SBoyan Karatotev #define MDCR_FEAT_BRBE MDCR_SBRBE(1UL) 2638db17052SBoyan Karatotev #else 2648db17052SBoyan Karatotev #define MDCR_FEAT_BRBE (0) 2658db17052SBoyan Karatotev #endif 2668db17052SBoyan Karatotev 2678db17052SBoyan Karatotev #if ENABLE_FEAT_FGT 2688db17052SBoyan Karatotev #define MDCR_FEAT_FGT MDCR_TDCC_BIT 2698db17052SBoyan Karatotev #else 2708db17052SBoyan Karatotev #define MDCR_FEAT_FGT (0) 2718db17052SBoyan Karatotev #endif 2728db17052SBoyan Karatotev 2738db17052SBoyan Karatotev #if ENABLE_TRBE_FOR_NS 2748db17052SBoyan Karatotev #define MDCR_FEAT_TRBE MDCR_NSTB(1UL) 2758db17052SBoyan Karatotev #else 2768db17052SBoyan Karatotev #define MDCR_FEAT_TRBE (0) 2778db17052SBoyan Karatotev #endif 2788db17052SBoyan Karatotev 2798db17052SBoyan Karatotev #if ENABLE_TRF_FOR_NS 2808db17052SBoyan Karatotev #define MDCR_FEAT_TRF MDCR_TTRF_BIT 2818db17052SBoyan Karatotev #else 2828db17052SBoyan Karatotev #define MDCR_FEAT_TRF (0) 2838db17052SBoyan Karatotev #endif 2848db17052SBoyan Karatotev 2858db17052SBoyan Karatotev #if ENABLE_SPE_FOR_NS 2868db17052SBoyan Karatotev #define MDCR_FEAT_SPE MDCR_NSPB(1UL) 2878db17052SBoyan Karatotev #else 2888db17052SBoyan Karatotev #define MDCR_FEAT_SPE (0) 2898db17052SBoyan Karatotev #endif 2908db17052SBoyan Karatotev 2918db17052SBoyan Karatotev #define MDCR_EL3_FEATS ( \ 2928db17052SBoyan Karatotev MDCR_FEAT_BRBE | \ 2938db17052SBoyan Karatotev MDCR_FEAT_FGT | \ 2948db17052SBoyan Karatotev MDCR_FEAT_TRBE | \ 2958db17052SBoyan Karatotev MDCR_FEAT_TRF | \ 2968db17052SBoyan Karatotev MDCR_FEAT_SPE | \ 2978db17052SBoyan Karatotev MDCR_TDOSA_BIT | \ 2988db17052SBoyan Karatotev MDCR_TDA_BIT | \ 299ba9e6a34SAndre Przywara MDCR_EnPM2_BIT | \ 3008db17052SBoyan Karatotev MDCR_TPM_BIT | /* FEAT_PMUv3 */ \ 3018db17052SBoyan Karatotev MDCR_PLAT_FEATS) 3028db17052SBoyan Karatotev #define MDCR_EL3_FLIPPED ( \ 3038db17052SBoyan Karatotev MDCR_FEAT_FGT | \ 3048db17052SBoyan Karatotev MDCR_FEAT_TRF | \ 3058db17052SBoyan Karatotev MDCR_TDOSA_BIT | \ 3068db17052SBoyan Karatotev MDCR_TDA_BIT | \ 3078db17052SBoyan Karatotev MDCR_TPM_BIT | \ 3088db17052SBoyan Karatotev MDCR_PLAT_FLIPPED) 3098db17052SBoyan Karatotev #define MDCR_EL3_IGNORED ( \ 3108db17052SBoyan Karatotev MDCR_EBWE_BIT | \ 3118db17052SBoyan Karatotev MDCR_EnPMSN_BIT | \ 3128db17052SBoyan Karatotev MDCR_SBRBE(2UL) | \ 3138db17052SBoyan Karatotev MDCR_MTPME_BIT | \ 3148db17052SBoyan Karatotev MDCR_NSTBE_BIT | \ 3158db17052SBoyan Karatotev MDCR_NSTB(2UL) | \ 3162bec665fSBoyan Karatotev MDCR_MCCD_BIT | \ 3172bec665fSBoyan Karatotev MDCR_SCCD_BIT | \ 3188db17052SBoyan Karatotev MDCR_SDD_BIT | \ 3198db17052SBoyan Karatotev MDCR_SPD32(3UL) | \ 3208db17052SBoyan Karatotev MDCR_NSPB(2UL) | \ 3218db17052SBoyan Karatotev MDCR_NSPBE_BIT | \ 3228db17052SBoyan Karatotev MDCR_PLAT_IGNORED) 3238db17052SBoyan Karatotev CASSERT((MDCR_EL3_FEATS & MDCR_EL3_IGNORED) == 0, mdcr_feat_is_ignored); 3248db17052SBoyan Karatotev CASSERT((MDCR_EL3_FLIPPED & MDCR_EL3_FEATS) == MDCR_EL3_FLIPPED, mdcr_flipped_not_a_feat); 3258db17052SBoyan Karatotev 3268db17052SBoyan Karatotev #define MPAM3_EL3_FEATS (MPAM3_EL3_TRAPLOWER_BIT) 3278db17052SBoyan Karatotev #define MPAM3_EL3_FLIPPED (MPAM3_EL3_TRAPLOWER_BIT) 3288db17052SBoyan Karatotev #define MPAM3_EL3_IGNORED (MPAM3_EL3_MPAMEN_BIT) 3298db17052SBoyan Karatotev CASSERT((MPAM3_EL3_FEATS & MPAM3_EL3_IGNORED) == 0, mpam3_feat_is_ignored); 3308db17052SBoyan Karatotev CASSERT((MPAM3_EL3_FLIPPED & MPAM3_EL3_FEATS) == MPAM3_EL3_FLIPPED, mpam3_flipped_not_a_feat); 3318db17052SBoyan Karatotev 3328db17052SBoyan Karatotev /* The hex representations of these registers' S3 encoding */ 3338db17052SBoyan Karatotev #define SCR_EL3_OPCODE U(0x1E1100) 3348db17052SBoyan Karatotev #define CPTR_EL3_OPCODE U(0x1E1140) 3358db17052SBoyan Karatotev #define MDCR_EL3_OPCODE U(0x1E1320) 3368db17052SBoyan Karatotev #define MPAM3_EL3_OPCODE U(0x1EA500) 3378db17052SBoyan Karatotev 3388db17052SBoyan Karatotev #endif /* ARCH_FEATURE_AVAILABILITY */ 3398db17052SBoyan Karatotev #endif /* __ASSEMBLER__ */ 340c3cf06f1SAntonio Nino Diaz #endif /* ARM_ARCH_SVC_H */ 341