Hi Stefano,
On 23/05/18 01:25, Stefano Stabellini wrote:
Add a "Platform Support" menu with three umbrella kconfig options: QEMU,
RCAR3 and MPSOC. They enable the required options for their hardware
platform.
They are introduced for convience: the user will be able to simply open
the menu and enable the right config for her platform.
Signed-off-by: Stefano Stabellini <[email protected]>
CC: [email protected]
CC: [email protected]
---
Note that this approach has a limitation: it is not possible to "select
a range". In other words, using tiny.config NR_CPUS is set to 4. It is
not possible to increase it to 8 from config RCAR3.
What you can do is:
config NR_CPUS
range ...
default "8" if (RCAR3)
default "x" if (QEMU)
default 64
This would imply to move NR_CPUS in arch/{arm,x86}/Kconfig.
This solution is not very nice, but at least would provide a better
experience to the user.
Suggestions are welcome.
---
xen/arch/arm/Kconfig | 2 ++
xen/arch/arm/platforms/Kconfig | 30 ++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+)
create mode 100644 xen/arch/arm/platforms/Kconfig
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index a5a6943..b5ddd12 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -245,6 +245,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..0eafbef
--- /dev/null
+++ b/xen/arch/arm/platforms/Kconfig
@@ -0,0 +1,30 @@
+menu "Platform Support"
+
+config QEMU
+ bool "QEMU aarch virt machine support"
+ default n
The default value is confusing here. The default .config will support
QEMU but not select that.
While I don't yet buy the argument, some users will also want to remove
platform specific code (Andrii suggest that). This would means by
default support for a specific platform will not be in Xen.
Furthermore, very likely, the end user will select either one board (e.g
automotive) or all of them (e.g distribution).
So I think it would be better to do a choice list:
- All -> Board support for all board added. Drivers selected by the user
- MPSOC -> Select board support for Xilinx + appropriate drivers
- RCAR3 -> Select board support for RCAR3 + appropriate drivers
The tiny.config would select ALL. This could then be refined by
selecting a specific platform.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel