From f27b22ab4e7001c4de40d721a5e0be46b8349a06 Mon Sep 17 00:00:00 2001 From: Benjamin Doron Date: Wed, 14 Jun 2023 18:43:59 -0400 Subject: arch/arm64: Support calling a trusted monitor Implement support for generating an SMC to call a trusted monitor. Some functions are provided to read the SoC ID from the monitor, if supported. Change-Id: I158db0b971aba722b3995d52162146aa406d1644 Signed-off-by: Benjamin Doron Reviewed-on: https://review.coreboot.org/c/coreboot/+/78284 Reviewed-by: Julius Werner Tested-by: build bot (Jenkins) --- src/arch/arm64/Makefile.mk | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/arch/arm64/Makefile.mk') diff --git a/src/arch/arm64/Makefile.mk b/src/arch/arm64/Makefile.mk index 897dae525f..6499283c08 100644 --- a/src/arch/arm64/Makefile.mk +++ b/src/arch/arm64/Makefile.mk @@ -30,6 +30,9 @@ bootblock-y += eabi_compat.c decompressor-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c bootblock-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c bootblock-y += transition.c transition_asm.S +ifneq ($(CONFIG_ARM64_CURRENT_EL),3) +bootblock-y += smc.c smc_asm.S +endif decompressor-y += memset.S bootblock-y += memset.S @@ -69,6 +72,9 @@ verstage-y += memcpy.S verstage-y += memmove.S verstage-y += transition.c transition_asm.S +ifneq ($(CONFIG_ARM64_CURRENT_EL),3) +verstage-y += smc.c smc_asm.S +endif endif # CONFIG_ARCH_VERSTAGE_ARM64 @@ -88,6 +94,9 @@ romstage-y += memmove.S romstage-y += ramdetect.c romstage-y += romstage.c romstage-y += transition.c transition_asm.S +ifneq ($(CONFIG_ARM64_CURRENT_EL),3) +romstage-y += smc.c smc_asm.S +endif rmodules_arm64-y += memset.S rmodules_arm64-y += memcpy.S @@ -109,6 +118,7 @@ ifeq ($(CONFIG_ARCH_RAMSTAGE_ARM64),y) ramstage-y += div0.c ramstage-y += eabi_compat.c ramstage-y += boot.c +ramstage-$(CONFIG_GENERATE_SMBIOS_TABLES) += smbios.c ramstage-y += tables.c ramstage-y += ramdetect.c ramstage-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c @@ -117,6 +127,9 @@ ramstage-y += memcpy.S ramstage-y += memmove.S ramstage-$(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE) += bl31.c ramstage-y += transition.c transition_asm.S +ifneq ($(CONFIG_ARM64_CURRENT_EL),3) +ramstage-y += smc.c smc_asm.S +endif ramstage-$(CONFIG_PAYLOAD_FIT_SUPPORT) += fit_payload.c ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi.c ramstage-y += dma.c -- cgit v1.2.3