diff --git a/include/plat/marvell/a3700/common/marvell_def.h b/include/plat/marvell/a3700/common/marvell_def.h index 229b8b0..eb13ba8 100644 --- a/include/plat/marvell/a3700/common/marvell_def.h +++ b/include/plat/marvell/a3700/common/marvell_def.h @@ -12,7 +12,7 @@ #include #include -#include +#include #include /**************************************************************************** diff --git a/include/plat/marvell/a3700/common/plat_marvell.h b/include/plat/marvell/a3700/common/plat_marvell.h index 8b8b53f..ea7cdcd 100644 --- a/include/plat/marvell/a3700/common/plat_marvell.h +++ b/include/plat/marvell/a3700/common/plat_marvell.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include /* * Extern declarations common to Marvell standard platforms diff --git a/include/plat/marvell/a8k/common/marvell_def.h b/include/plat/marvell/a8k/common/marvell_def.h index 5ba90f7..4eda01f 100644 --- a/include/plat/marvell/a8k/common/marvell_def.h +++ b/include/plat/marvell/a8k/common/marvell_def.h @@ -12,7 +12,7 @@ #include #include -#include +#include #include /****************************************************************************** diff --git a/include/plat/marvell/a8k/common/plat_marvell.h b/include/plat/marvell/a8k/common/plat_marvell.h index 65d4de8..5d805a7 100644 --- a/include/plat/marvell/a8k/common/plat_marvell.h +++ b/include/plat/marvell/a8k/common/plat_marvell.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include /* * Extern declarations common to Marvell standard platforms diff --git a/plat/marvell/a3700/common/a3700_common.mk b/plat/marvell/a3700/common/a3700_common.mk index 64cd433..1e27567 100644 --- a/plat/marvell/a3700/common/a3700_common.mk +++ b/plat/marvell/a3700/common/a3700_common.mk @@ -13,6 +13,7 @@ PLAT_COMMON_BASE := $(PLAT_FAMILY_BASE)/common MARVELL_DRV_BASE := drivers/marvell MARVELL_COMMON_BASE := $(MARVELL_PLAT_BASE)/common +HANDLE_EA_EL3_FIRST := 1 include $(MARVELL_PLAT_BASE)/marvell.mk @@ -107,6 +108,7 @@ $(PLAT_COMMON_BASE)/dram_win.c \ $(PLAT_COMMON_BASE)/io_addr_dec.c \ $(PLAT_COMMON_BASE)/marvell_plat_config.c \ + $(PLAT_COMMON_BASE)/a3700_ea.c \ $(PLAT_FAMILY_BASE)/$(PLAT)/plat_bl31_setup.c \ $(MARVELL_COMMON_BASE)/marvell_ddr_info.c \ $(MARVELL_COMMON_BASE)/marvell_gicv3.c \ diff --git a/plat/marvell/a3700/common/a3700_ea.c b/plat/marvell/a3700/common/a3700_ea.c new file mode 100644 index 0000000..dd46beb --- /dev/null +++ b/plat/marvell/a3700/common/a3700_ea.c @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2019 Repk repk@triplefau.lt + * + * SPDX-License-Identifier: BSD-3-Clause + * https://spdx.org/licenses + */ +#include +#include +#include + +#define ADVK_SERROR_SYNDROME 0xbf000002 + +void plat_ea_handler(unsigned int ea_reason, uint64_t syndrome, void *cookie, + void *handle, uint64_t flags) +{ + if (syndrome != ADVK_SERROR_SYNDROME) { + ERROR("Unhandled External Abort received on 0x%lx at EL3!\n", + read_mpidr_el1()); + ERROR(" exception reason=%u syndrome=0x%llx\n", ea_reason, + syndrome); + panic(); + } +} diff --git a/plat/marvell/common/aarch64/marvell_common.c b/plat/marvell/common/aarch64/marvell_common.c index ea0902c..21a62d4 100644 --- a/plat/marvell/common/aarch64/marvell_common.c +++ b/plat/marvell/common/aarch64/marvell_common.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include diff --git a/plat/marvell/common/marvell_common.mk b/plat/marvell/common/marvell_common.mk index 5c8e804..f41d7a4 100644 --- a/plat/marvell/common/marvell_common.mk +++ b/plat/marvell/common/marvell_common.mk @@ -20,12 +20,13 @@ LLC_ENABLE := 1 $(eval $(call add_define,LLC_ENABLE)) +include lib/xlat_tables_v2/xlat_tables.mk + PLAT_INCLUDES += -I$(MARVELL_PLAT_INCLUDE_BASE)/common \ -I$(MARVELL_PLAT_INCLUDE_BASE)/common/aarch64 -PLAT_BL_COMMON_SOURCES += lib/xlat_tables/xlat_tables_common.c \ - lib/xlat_tables/aarch64/xlat_tables.c \ +PLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} \ $(MARVELL_PLAT_BASE)/common/aarch64/marvell_common.c \ $(MARVELL_PLAT_BASE)/common/aarch64/marvell_helpers.S \ $(MARVELL_COMMON_BASE)/marvell_console.c