The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=856d3167995a5c9e1fc69a69ad393ab9e552c420
commit 856d3167995a5c9e1fc69a69ad393ab9e552c420 Author: John Baldwin <j...@freebsd.org> AuthorDate: 2025-02-05 14:50:15 +0000 Commit: John Baldwin <j...@freebsd.org> CommitDate: 2025-02-05 14:50:15 +0000 arm64: Hook up efi_rt_arch_call in efirt.ko Note that this requires marking efi_rt_fault as a non-preemptible local symbol. Co-authored-by: Jessica Clarke <jrt...@freebsd.org> Reviewed by: imp, andrew Obtained from: CheriBSD Fixes: d7f930b80e89 ("arm64: Implement efi_rt_arch_call") Differential Revision: https://reviews.freebsd.org/D48715 --- sys/arm64/arm64/efirt_support.S | 4 ++-- sys/modules/efirt/Makefile | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/arm64/arm64/efirt_support.S b/sys/arm64/arm64/efirt_support.S index b7bef7500ee4..994380f1691e 100644 --- a/sys/arm64/arm64/efirt_support.S +++ b/sys/arm64/arm64/efirt_support.S @@ -85,7 +85,7 @@ ENTRY(efi_rt_arch_call) ret END(efi_rt_arch_call) -ENTRY(efi_rt_fault) +LENTRY(efi_rt_fault) /* Clear pcb_onfault */ SET_FAULT_HANDLER(xzr, x11) /* Load curthread */ @@ -96,6 +96,6 @@ ENTRY(efi_rt_fault) /* Normal exit returning an error */ ldr x0, =EFAULT b .Lefi_rt_arch_call_exit -END(efi_rt_fault) +LEND(efi_rt_fault) GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL) diff --git a/sys/modules/efirt/Makefile b/sys/modules/efirt/Makefile index 2befdcb7dd8d..4738996fd4e6 100644 --- a/sys/modules/efirt/Makefile +++ b/sys/modules/efirt/Makefile @@ -4,16 +4,17 @@ KMOD= efirt SRCS= efirt.c efirt_machdep.c efidev.c SRCS+= efirtc.c +SRCS+= efirt_support.S SRCS+= device_if.h bus_if.h clock_if.h +DPSRCS+= assym.inc .if ${MACHINE_CPUARCH} == "amd64" SRCS+= opt_hwpmc_hooks.h opt_kstack_pages.h -SRCS+= efirt_support.S -DPSRCS+= assym.inc +.endif + efirt_support.o: efirt_support.S assym.inc ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ ${.IMPSRC} -o ${.TARGET} -.endif EXPORT_SYMS= YES