feat: support Cactus SP to boot on EL3 SPMC
EL3 SPMC has a limited set of FF-A functionality and does not support
all the features built into the current Cactus SP implementation.
Hence, this patch introduces a build option to strip out few features
from Cactus SP in order to boot it on EL3 SPMC.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
Change-Id: I6319563adca67460015b79219ebc5c9468e3d54a
diff --git a/spm/cactus/cactus.mk b/spm/cactus/cactus.mk
index 9557745..0fa0ab5 100644
--- a/spm/cactus/cactus.mk
+++ b/spm/cactus/cactus.mk
@@ -94,6 +94,7 @@
$(eval $(call add_define,CACTUS_DEFINES,LOG_LEVEL))
$(eval $(call add_define,CACTUS_DEFINES,PLAT_${PLAT}))
$(eval $(call add_define,CACTUS_DEFINES,PLAT_XLAT_TABLES_DYNAMIC))
+$(eval $(call add_define,CACTUS_DEFINES,SPMC_AT_EL3))
$(CACTUS_DTB) : $(BUILD_PLAT)/cactus $(BUILD_PLAT)/cactus/cactus.elf
$(CACTUS_DTB) : $(CACTUS_DTS)
diff --git a/spm/cactus/cactus_main.c b/spm/cactus/cactus_main.c
index 28afbfb..b608d7b 100644
--- a/spm/cactus/cactus_main.c
+++ b/spm/cactus/cactus_main.c
@@ -324,12 +324,14 @@
EXPECT(ffa_func_id(ret), FFA_SUCCESS_SMC32);
}
+#if !SPMC_AT_EL3
discover_managed_exit_interrupt_id();
register_maintenance_interrupt_handlers();
/* Invoking self tests */
ffa_tests(&mb, true);
cpu_feature_tests();
+#endif
msg_loop:
/* End up to message loop */