I would suggest something like:
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 06ba4a4..794f06e 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -218,6 +218,8 @@ config ARM64_HARDEN_BRANCH_PREDICTOR
config ARM32_HARDEN_BRANCH_PREDICTOR
def_bool y if ARM_32 && HARDEN_BRANCH_PREDICTOR
+source "arch/arm/platforms/Kconfig"
+
source "common/Kconfig"
source "drivers/Kconfig"
diff --git a/xen/arch/arm/platforms/Kconfig b/xen/arch/arm/platforms/Kconfig
new file mode 100644
index 0000000..badf17b
--- /dev/null
+++ b/xen/arch/arm/platforms/Kconfig
@@ -0,0 +1,72 @@
+choice
+ prompt "Platform Support"
+ depends on ARM_32
+ default ALL_32
+ ---help---
+ Choose which hardware platform to enable in Xen.
+
+ If unsure, choose ALL.
+
+config ALL_32
+ bool "All Platforms"
+ ---help---
+ Enable support for all available hardware platforms. It doesn't
+ automatically select any of the related drivers.
+
+config NONE_32
+ bool "No Platform support"
+ ---help---
+ Remove all platform code.
+
+endchoice
+
+choice
+ prompt "Platform Support"
+ depends on ARM_64
+ default ALL_64
+ ---help---
+ Choose which hardware platform to enable in Xen.
+
+ If unsure, choose ALL.
+
+config ALL_64
+ bool "All Platforms"
+ select MPSOC_PLATFORM
+ ---help---
+ Enable support for all available hardware platforms. It doesn't
+ automatically select any of the related drivers.
+
+config QEMU
+ bool "QEMU aarch virt machine support"
+ depends on ARM_64
+ select GICV3
+ select HAS_PL011
+ ---help---
+ Enable all the required drivers for QEMU aarch64 virt emulated
+ machine.
+
+config RCAR3
+ bool "Renesas RCar3 support"
+ depends on ARM_64
+ select HAS_SCIF
+ ---help---
+ Enable all the required drivers for Renesas RCar3
+
+config MPSOC
+ bool "Xilinx Ultrascale+ MPSoC support"
+ depends on ARM_64
+ select MPSOC_PLATFORM
+ select HAS_CADENCE_UART
+ select ARM_SMMU
+ ---help---
+ Enable all the required drivers for Xilinx Ultrascale+ MPSoC
+
+config NONE_64
+ bool "No Platform support"
+ ---help---
+ Remove all platform code.
+
+endchoice
+
+config MPSOC_PLATFORM
+ bool
diff --git a/xen/arch/arm/platforms/Makefile
b/xen/arch/arm/platforms/Makefile
index 80e555c..c8e763e 100644
--- a/xen/arch/arm/platforms/Makefile
+++ b/xen/arch/arm/platforms/Makefile
@@ -1,11 +1,14 @@
-obj-y += vexpress.o
-obj-$(CONFIG_ARM_32) += brcm.o
-obj-$(CONFIG_ARM_32) += exynos5.o
-obj-$(CONFIG_ARM_32) += midway.o
-obj-$(CONFIG_ARM_32) += omap5.o
-obj-$(CONFIG_ARM_32) += rcar2.o
-obj-$(CONFIG_ARM_64) += seattle.o
-obj-y += sunxi.o
-obj-$(CONFIG_ARM_64) += thunderx.o
-obj-$(CONFIG_ARM_64) += xgene-storm.o
-obj-$(CONFIG_ARM_64) += xilinx-zynqmp.o
+obj-$(CONFIG_ALL_32) += vexpress.o
+obj-$(CONFIG_ALL_32) += sunxi.o
+obj-$(CONFIG_ALL_32) += brcm.o
+obj-$(CONFIG_ALL_32) += exynos5.o
+obj-$(CONFIG_ALL_32) += midway.o
+obj-$(CONFIG_ALL_32) += omap5.o
+obj-$(CONFIG_ALL_32) += rcar2.o
+
+obj-$(CONFIG_ALL_64) += vexpress.o
+obj-$(CONFIG_ALL_64) += sunxi.o
+obj-$(CONFIG_ALL_64) += seattle.o
+obj-$(CONFIG_ALL_64) += thunderx.o
+obj-$(CONFIG_ALL_64) += xgene-storm.o
+obj-$(CONFIG_MPSOC_PLATFORM) += xilinx-zynqmp.o
--
*Andrii Anisov*
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel