diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index 293e7ce..c018643 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -568,7 +568,7 @@ #define PLAT_SDEI_NORMAL_PRI 0x70 /* ARM platforms use 3 upper bits of secure interrupt priority */ -#define ARM_PRI_BITS 3 +#define PLAT_PRI_BITS 3 /* SGI used for SDEI signalling */ #define ARM_SDEI_SGI ARM_IRQ_SEC_SGI_0 diff --git a/plat/arm/common/aarch64/arm_ehf.c b/plat/arm/common/aarch64/arm_ehf.c deleted file mode 100644 index 69ebd79..0000000 --- a/plat/arm/common/aarch64/arm_ehf.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#include - -#include - -/* - * Enumeration of priority levels on ARM platforms. - */ -ehf_pri_desc_t arm_exceptions[] = { -#if RAS_EXTENSION - /* RAS Priority */ - EHF_PRI_DESC(ARM_PRI_BITS, PLAT_RAS_PRI), -#endif - -#if SDEI_SUPPORT - /* Critical priority SDEI */ - EHF_PRI_DESC(ARM_PRI_BITS, PLAT_SDEI_CRITICAL_PRI), - - /* Normal priority SDEI */ - EHF_PRI_DESC(ARM_PRI_BITS, PLAT_SDEI_NORMAL_PRI), -#endif -#if SPM_MM - EHF_PRI_DESC(ARM_PRI_BITS, PLAT_SP_PRI), -#endif -}; - -/* Plug in ARM exceptions to Exception Handling Framework. */ -EHF_REGISTER_PRIORITIES(arm_exceptions, ARRAY_SIZE(arm_exceptions), ARM_PRI_BITS); diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index bbcc954..1832c65 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.mk @@ -258,7 +258,7 @@ endif ifeq (${EL3_EXCEPTION_HANDLING},1) -BL31_SOURCES += plat/arm/common/aarch64/arm_ehf.c +BL31_SOURCES += plat/common/aarch64/plat_ehf.c endif ifeq (${SDEI_SUPPORT},1) diff --git a/plat/common/aarch64/plat_ehf.c b/plat/common/aarch64/plat_ehf.c new file mode 100644 index 0000000..da76884 --- /dev/null +++ b/plat/common/aarch64/plat_ehf.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2020, Broadcom + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include + +#include + +/* + * Enumeration of priority levels on ARM platforms. + */ +ehf_pri_desc_t plat_exceptions[] = { +#if RAS_EXTENSION + /* RAS Priority */ + EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_RAS_PRI), +#endif + +#if SDEI_SUPPORT + /* Critical priority SDEI */ + EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SDEI_CRITICAL_PRI), + + /* Normal priority SDEI */ + EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SDEI_NORMAL_PRI), +#endif +#if SPM_MM + EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SP_PRI), +#endif + /* Plaform specific exceptions description */ +#ifdef PLAT_EHF_DESC + PLAT_EHF_DESC, +#endif +}; + +/* Plug in ARM exceptions to Exception Handling Framework. */ +EHF_REGISTER_PRIORITIES(plat_exceptions, ARRAY_SIZE(plat_exceptions), PLAT_PRI_BITS); diff --git a/plat/nvidia/tegra/common/tegra_common.mk b/plat/nvidia/tegra/common/tegra_common.mk index 136f824..3791018 100644 --- a/plat/nvidia/tegra/common/tegra_common.mk +++ b/plat/nvidia/tegra/common/tegra_common.mk @@ -44,7 +44,6 @@ ${TEGRA_LIBS}/debug/profiler.c \ ${TEGRA_COMMON}/tegra_bl31_setup.c \ ${TEGRA_COMMON}/tegra_delay_timer.c \ - ${TEGRA_COMMON}/tegra_ehf.c \ ${TEGRA_COMMON}/tegra_fiq_glue.c \ ${TEGRA_COMMON}/tegra_io_storage.c \ ${TEGRA_COMMON}/tegra_platform.c \ @@ -55,3 +54,6 @@ ifneq ($(ENABLE_STACK_PROTECTOR), 0) BL31_SOURCES += ${TEGRA_COMMON}/tegra_stack_protector.c endif +ifeq (${EL3_EXCEPTION_HANDLING},1) +BL31_SOURCES += plat/common/aarch64/plat_ehf.c +endif diff --git a/plat/nvidia/tegra/common/tegra_ehf.c b/plat/nvidia/tegra/common/tegra_ehf.c deleted file mode 100644 index ea6e443..0000000 --- a/plat/nvidia/tegra/common/tegra_ehf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#include - -#include - -/* - * Enumeration of priority levels on Tegra platforms. - */ -ehf_pri_desc_t tegra_exceptions[] = { - /* Watchdog priority */ - EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_TEGRA_WDT_PRIO), - -#if SDEI_SUPPORT - /* Critical priority SDEI */ - EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SDEI_CRITICAL_PRI), - - /* Normal priority SDEI */ - EHF_PRI_DESC(PLAT_PRI_BITS, PLAT_SDEI_NORMAL_PRI), -#endif -}; - -/* Plug in Tegra exceptions to Exception Handling Framework. */ -EHF_REGISTER_PRIORITIES(tegra_exceptions, ARRAY_SIZE(tegra_exceptions), PLAT_PRI_BITS); diff --git a/plat/nvidia/tegra/include/platform_def.h b/plat/nvidia/tegra/include/platform_def.h index 2bfd797..84b3297 100644 --- a/plat/nvidia/tegra/include/platform_def.h +++ b/plat/nvidia/tegra/include/platform_def.h @@ -99,6 +99,9 @@ #define PLAT_SDEI_NORMAL_PRI U(0x30) #define PLAT_TEGRA_WDT_PRIO U(0x40) +#define PLAT_EHF_DESC EHF_PRI_DESC(PLAT_PRI_BITS,\ + PLAT_TEGRA_WDT_PRIO) + /******************************************************************************* * SDEI events ******************************************************************************/