arm: add ALL_PLAT, QEMU, Rcar3 and MPSoC configs
authorStefano Stabellini <sstabellini@kernel.org>
Tue, 31 Jul 2018 15:21:01 +0000 (08:21 -0700)
committerJulien Grall <julien.grall@arm.com>
Thu, 2 Aug 2018 11:27:03 +0000 (12:27 +0100)
Add a "Platform Support" choice with four kconfig options: QEMU, RCAR3,
MPSOC and ALL_PLAT. They enable the required options for their hardware
platform. ALL_PLAT enables all available platforms and it's the default.
It doesn't automatically select any of the related drivers, otherwise
they cannot be disabled. ALL_PLAT is implemented by using hidden options
with default values depending on ALL_PLAT.

In the case of the MPSOC that has a platform file under
arch/arm/platforms/, build the file if MPSOC.

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Andrii Anisov <andrii_anisov@epam.com>
CC: artem_mygaiev@epam.com
CC: volodymyr_babchuk@epam.com
---
Changes in v8:
- remove QEMU_PLATFORM and RCAR3_PLATFORM that are currently unused
- remove selects from ALL
- rename ALL to ALL_PLAT
- introduce ALL64_PLAT and ALL32_PLAT

Changes in v5:
- turn platform support into a choice
- add ALL

Changes in v4:
- fix GICv3/GICV3
- default y to all options
- build xilinx-zynqmp if MPSOC

xen/arch/arm/Kconfig
xen/arch/arm/platforms/Kconfig [new file with mode: 0644]
xen/arch/arm/platforms/Makefile

index 977b55d3453d74b67c2d9c68494f739d74d66666..586bc62582470dbe8c3ccfd4692fe88a15772976 100644 (file)
@@ -222,6 +222,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 (file)
index 0000000..409d3f8
--- /dev/null
@@ -0,0 +1,52 @@
+choice
+       prompt "Platform Support"
+       default ALL_PLAT
+       ---help---
+       Choose which hardware platform to enable in Xen.
+
+       If unsure, choose ALL_PLAT.
+
+config ALL_PLAT
+       bool "All Platforms"
+       ---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 HAS_CADENCE_UART
+       select ARM_SMMU
+       ---help---
+       Enable all the required drivers for Xilinx Ultrascale+ MPSoC
+
+endchoice
+
+config ALL64_PLAT
+       bool
+       default (ALL_PLAT && ARM_64)
+
+config ALL32_PLAT
+       bool
+       default (ALL_PLAT && ARM_32)
+
+config MPSOC_PLATFORM
+       bool
+       default (ALL64_PLAT || MPSOC)
+
index 80e555cc14f3482b1d15f6aaf23c239dd0b4a151..a79bdb9c08b86e3acdfd7db9a0ea15b58141f8b3 100644 (file)
@@ -8,4 +8,4 @@ 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_MPSOC_PLATFORM)  += xilinx-zynqmp.o