1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2017-2023, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * Copyright (c) 2020, Broadcom 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #include <bl31/ehf.h> 8*91f16700Schasinglulu 9*91f16700Schasinglulu #include <platform_def.h> 10*91f16700Schasinglulu 11*91f16700Schasinglulu /* 12*91f16700Schasinglulu * Enumeration of priority levels on ARM platforms. 13*91f16700Schasinglulu */ 14*91f16700Schasinglulu ehf_pri_desc_t plat_exceptions[] = { 15*91f16700Schasinglulu #if ENABLE_FEAT_RAS && FFH_SUPPORT 16*91f16700Schasinglulu /* RAS Priority */ 17*91f16700Schasinglulu EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_RAS_PRI), 18*91f16700Schasinglulu #endif 19*91f16700Schasinglulu 20*91f16700Schasinglulu #if SDEI_SUPPORT 21*91f16700Schasinglulu /* Critical priority SDEI */ 22*91f16700Schasinglulu EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SDEI_CRITICAL_PRI), 23*91f16700Schasinglulu 24*91f16700Schasinglulu /* Normal priority SDEI */ 25*91f16700Schasinglulu EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SDEI_NORMAL_PRI), 26*91f16700Schasinglulu #endif 27*91f16700Schasinglulu 28*91f16700Schasinglulu #if SPM_MM || (SPMC_AT_EL3 && SPMC_AT_EL3_SEL0_SP) 29*91f16700Schasinglulu #if ENABLE_FEAT_RAS && FFH_SUPPORT 30*91f16700Schasinglulu #if (PLAT_SP_PRI != PLAT_RAS_PRI) 31*91f16700Schasinglulu EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SP_PRI), 32*91f16700Schasinglulu #endif 33*91f16700Schasinglulu #else 34*91f16700Schasinglulu EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SP_PRI), 35*91f16700Schasinglulu #endif 36*91f16700Schasinglulu #endif 37*91f16700Schasinglulu 38*91f16700Schasinglulu /* Platform specific exceptions description */ 39*91f16700Schasinglulu #ifdef PLAT_EHF_DESC 40*91f16700Schasinglulu PLAT_EHF_DESC, 41*91f16700Schasinglulu #endif 42*91f16700Schasinglulu }; 43*91f16700Schasinglulu 44*91f16700Schasinglulu /* Plug in ARM exceptions to Exception Handling Framework. */ 45*91f16700Schasinglulu EHF_REGISTER_PRIORITIES(plat_exceptions, ARRAY_SIZE(plat_exceptions), PLAT_PRI_BITS); 46