From 902db088395b13ce620f5a201a751556b760c0ef Mon Sep 17 00:00:00 2001 From: Michal Orzel Date: Tue, 27 May 2025 10:21:17 +0200 Subject: [PATCH] device-tree: Move Arm's static-evtchn feature to common There's nothing Arm specific about this feature. Move it to common as part of a larger activity to commonalize device tree related features. For now, select it only for ARM until others (e.g. RISC-V) verify it works for them too. Signed-off-by: Michal Orzel Reviewed-by: Stefano Stabellini --- xen/arch/arm/Kconfig | 8 -------- xen/arch/arm/Makefile | 1 - xen/arch/arm/setup.c | 2 +- xen/common/Kconfig | 8 ++++++++ xen/common/device-tree/Makefile | 1 + xen/{arch/arm => common/device-tree}/static-evtchn.c | 3 +-- xen/{arch/arm/include/asm => include/xen}/static-evtchn.h | 6 +++--- 7 files changed, 14 insertions(+), 15 deletions(-) rename xen/{arch/arm => common/device-tree}/static-evtchn.c (99%) rename xen/{arch/arm/include/asm => include/xen}/static-evtchn.h (77%) diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index a5aad97a68..57919d8b3a 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -253,14 +253,6 @@ config STATIC_SHM help This option enables statically shared memory on a dom0less system. -config STATIC_EVTCHN - bool "Static event channel support on a dom0less system" - depends on DOM0LESS_BOOT - default y - help - This option enables establishing static event channel communication - between domains on a dom0less system (domU-domU as well as domU-dom0). - config PARTIAL_EMULATION bool "Enable partial emulation of system/coprocessor registers" default y diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index 129a109d6e..eeeac4e653 100644 --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -51,7 +51,6 @@ obj-y += setup.o obj-y += shutdown.o obj-y += smp.o obj-y += smpboot.o -obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o obj-y += sysctl.o diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index 10b46d0684..734e23da44 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -39,7 +40,6 @@ #include #include #include -#include #include #include #include diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 3d66d09397..0951d4c2f2 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -162,6 +162,14 @@ config STATIC_MEMORY If unsure, say N. +config STATIC_EVTCHN + bool "Static event channel support on a dom0less system" + depends on DOM0LESS_BOOT && ARM + default y + help + This option enables establishing static event channel communication + between domains on a dom0less system (domU-domU as well as domU-dom0). + menu "Speculative hardening" config INDIRECT_THUNK diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile index ff54a8ef2b..57b9e6ca00 100644 --- a/xen/common/device-tree/Makefile +++ b/xen/common/device-tree/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o obj-y += intc.o obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o +obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o diff --git a/xen/arch/arm/static-evtchn.c b/xen/common/device-tree/static-evtchn.c similarity index 99% rename from xen/arch/arm/static-evtchn.c rename to xen/common/device-tree/static-evtchn.c index 49db08d5c6..8b82e6b3d8 100644 --- a/xen/arch/arm/static-evtchn.c +++ b/xen/common/device-tree/static-evtchn.c @@ -1,8 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include - -#include +#include #define STATIC_EVTCHN_NODE_SIZE_CELLS 2 diff --git a/xen/arch/arm/include/asm/static-evtchn.h b/xen/include/xen/static-evtchn.h similarity index 77% rename from xen/arch/arm/include/asm/static-evtchn.h rename to xen/include/xen/static-evtchn.h index f964522f6a..31ae92741a 100644 --- a/xen/arch/arm/include/asm/static-evtchn.h +++ b/xen/include/xen/static-evtchn.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#ifndef __ASM_STATIC_EVTCHN_H_ -#define __ASM_STATIC_EVTCHN_H_ +#ifndef XEN_STATIC_EVTCHN_H +#define XEN_STATIC_EVTCHN_H #ifdef CONFIG_STATIC_EVTCHN @@ -13,7 +13,7 @@ static inline void alloc_static_evtchn(void) {}; #endif /* CONFIG_STATIC_EVTCHN */ -#endif /* __ASM_STATIC_EVTCHN_H_ */ +#endif /* XEN_STATIC_EVTCHN_H */ /* * Local variables: