Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On Mon, 30 Jul 2018, Julien Grall wrote: > Hi Stefano, > > On 28/07/18 00:30, Stefano Stabellini wrote: > > On Fri, 27 Jul 2018, Julien Grall wrote: > > > Hi Stefano, > > > Sorry for the top posting. > > > > > > I think Andrii made a good point. With your new code MPSOC will get built > > > on Arm 32 bit as well. > > > > > > This was not the case before this patch. > > > > > > So I would like at least that to be fixed before any commit. > > > > OK, this is a problem. I'll fix it. > > > > Looking into it I think there is a way to solve it that doesn't require > > duplication, and not even the introduction of ALL_32 and ALL_64: we just > > need to add "if ARM_64" for the ARM64 platforms and "if ARM_32" for the > > ARM32 platforms. > > > > So today we would have (the "if ARM_64" is new compared to this patch): > > > >config ALL > >bool "All Platforms" > >select MPSOC_PLATFORM if ARM_64 > > > > In the furure, assuming that we had EXYNOS5 and OMAP5 options, it would > > become: > > > >config ALL > >bool "All Platforms" > >select MPSOC_PLATFORM if ARM_64 > >select EXYNOS5 if ARM_32 > >select OMAP5 if ARM_32 > > > > What do you think? > > I think I would prefer the suggestion I made on Andrii's answer: > > choice >config ALL_PLAT > bool "All Platforms" > "" > endchoice > > config ALL_PLAT_64 > default (ALL && ARM_64) > > config ALL_PLAT_32 > default (ALL_PLAT && ARM_32) > > config MPSOC_PLATFORM > bool > default (ALL_PLAT_64 || MPSOC) > > This would avoid a long list in "ALL_PLATFORMS". > > Also, I just noticed that 'ALL' will become CONFIG_ALL. This is slightly too > vague as a name. It would be better to include "PLAT" in it. I verified that this also works as expected. I'll make the changes and resend the series. ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hello Stefano, > Ah, yes, I understand what you mean now. My point was to get the feature of minimal platform support right away. You are interested in Xilinx, so you make a minimal configuration for MPSOC. And stack the rest into an *optional* all platforms support. So maintainers of other platforms can show their interest with appropriate patches for minimal configuration supporting their targets. > Given that this patch series has been > out for a while now and has all the required acks, I would prefer to > commit it as is (with the small change requested by Julien) and make > changes for vexpress, sunxi, and others in follow-up patches. So let it be. *ANDRII ANISOV* ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hi Stefano, On 28/07/18 00:30, Stefano Stabellini wrote: On Fri, 27 Jul 2018, Julien Grall wrote: Hi Stefano, Sorry for the top posting. I think Andrii made a good point. With your new code MPSOC will get built on Arm 32 bit as well. This was not the case before this patch. So I would like at least that to be fixed before any commit. OK, this is a problem. I'll fix it. Looking into it I think there is a way to solve it that doesn't require duplication, and not even the introduction of ALL_32 and ALL_64: we just need to add "if ARM_64" for the ARM64 platforms and "if ARM_32" for the ARM32 platforms. So today we would have (the "if ARM_64" is new compared to this patch): config ALL bool "All Platforms" select MPSOC_PLATFORM if ARM_64 In the furure, assuming that we had EXYNOS5 and OMAP5 options, it would become: config ALL bool "All Platforms" select MPSOC_PLATFORM if ARM_64 select EXYNOS5 if ARM_32 select OMAP5 if ARM_32 What do you think? I think I would prefer the suggestion I made on Andrii's answer: choice config ALL_PLAT bool "All Platforms" "" endchoice config ALL_PLAT_64 default (ALL && ARM_64) config ALL_PLAT_32 default (ALL_PLAT && ARM_32) config MPSOC_PLATFORM bool default (ALL_PLAT_64 || MPSOC) This would avoid a long list in "ALL_PLATFORMS". Also, I just noticed that 'ALL' will become CONFIG_ALL. This is slightly too vague as a name. It would be better to include "PLAT" in it. Cheers, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On Fri, 27 Jul 2018, Julien Grall wrote: > Hi Stefano, > Sorry for the top posting. > > I think Andrii made a good point. With your new code MPSOC will get built on > Arm 32 bit as well. > > This was not the case before this patch. > > So I would like at least that to be fixed before any commit. OK, this is a problem. I'll fix it. Looking into it I think there is a way to solve it that doesn't require duplication, and not even the introduction of ALL_32 and ALL_64: we just need to add "if ARM_64" for the ARM64 platforms and "if ARM_32" for the ARM32 platforms. So today we would have (the "if ARM_64" is new compared to this patch): config ALL bool "All Platforms" select MPSOC_PLATFORM if ARM_64 In the furure, assuming that we had EXYNOS5 and OMAP5 options, it would become: config ALL bool "All Platforms" select MPSOC_PLATFORM if ARM_64 select EXYNOS5 if ARM_32 select OMAP5 if ARM_32 What do you think? ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hi Stefano, Sorry for the top posting. I think Andrii made a good point. With your new code MPSOC will get built on Arm 32 bit as well. This was not the case before this patch. So I would like at least that to be fixed before any commit. Cheers, On Fri, 27 Jul 2018, 22:38 Stefano Stabellini, wrote: > On Fri, 27 Jul 2018, Andrii Anisov wrote: > > Hello Stefano, > > > > On 27.07.18 20:11, Stefano Stabellini wrote: > > > Yes, it does. > > > > > > Let's say that you chose ALL at the menu choice. MPSOC_PLATFORM gets > > > selected, that trigger the build of the MPSOC platform file. > > > > > > If you do "make menuconfig" again and select RCAR3 instead, > > > MPSOC_PLATFORM is removed from the .config. Next time you type "make" > > > the MPSOC platform files will not be built. > > But vexpress, sunxi, other listed in arch/arm/platforms/Makefile and > dependent > > on ARM32 or ARM64 will be built anyway. > > Ah, yes, I understand what you mean now. > > That is not a problem with this patch or with the approach taken here. > It is just a matter of adding more options like RCAR3 and MPSOC. It is > just that I haven't done it yet. Given that this patch series has been > out for a while now and has all the required acks, I would prefer to > commit it as is (with the small change requested by Julien) and make > changes for vexpress, sunxi, and others in follow-up patches. > > ___ > Xen-devel mailing list > Xen-devel@lists.xenproject.org > https://lists.xenproject.org/mailman/listinfo/xen-devel ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On Fri, 27 Jul 2018, Andrii Anisov wrote: > Hello Stefano, > > On 27.07.18 20:11, Stefano Stabellini wrote: > > Yes, it does. > > > > Let's say that you chose ALL at the menu choice. MPSOC_PLATFORM gets > > selected, that trigger the build of the MPSOC platform file. > > > > If you do "make menuconfig" again and select RCAR3 instead, > > MPSOC_PLATFORM is removed from the .config. Next time you type "make" > > the MPSOC platform files will not be built. > But vexpress, sunxi, other listed in arch/arm/platforms/Makefile and dependent > on ARM32 or ARM64 will be built anyway. Ah, yes, I understand what you mean now. That is not a problem with this patch or with the approach taken here. It is just a matter of adding more options like RCAR3 and MPSOC. It is just that I haven't done it yet. Given that this patch series has been out for a while now and has all the required acks, I would prefer to commit it as is (with the small change requested by Julien) and make changes for vexpress, sunxi, and others in follow-up patches. ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hello Stefano, On 27.07.18 20:11, Stefano Stabellini wrote: Yes, it does. Let's say that you chose ALL at the menu choice. MPSOC_PLATFORM gets selected, that trigger the build of the MPSOC platform file. If you do "make menuconfig" again and select RCAR3 instead, MPSOC_PLATFORM is removed from the .config. Next time you type "make" the MPSOC platform files will not be built. But vexpress, sunxi, other listed in arch/arm/platforms/Makefile and dependent on ARM32 or ARM64 will be built anyway. -- *Andrii Anisov* ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On Fri, 27 Jul 2018, Andrii Anisov wrote: > On 27.07.18 01:46, Stefano Stabellini wrote: > > On Tue, 24 Jul 2018, Andrii Anisov wrote: > > > On 07.07.18 02:13, Stefano Stabellini wrote: > > > > Add a "Platform Support" choice with four kconfig options: QEMU, RCAR3, > > > > MPSOC and ALL. They enable the required options for their hardware > > > > platform. ALL 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 is implemented by selecting hidden options > > > > corresponding to QEMU, MPSOC and RCAR3. > > > > > > > > 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 > > > > CC: artem_myga...@epam.com > > > > CC: volodymyr_babc...@epam.com > > > > > > > > --- > > > > 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| 2 ++ > > > >xen/arch/arm/platforms/Kconfig | 55 > > > > + > > > >xen/arch/arm/platforms/Makefile | 2 +- > > > >3 files changed, 58 insertions(+), 1 deletion(-) > > > >create mode 100644 xen/arch/arm/platforms/Kconfig > > > > > > > > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig > > > > index 2b87111..75cacfb 100644 > > > > --- a/xen/arch/arm/Kconfig > > > > +++ b/xen/arch/arm/Kconfig > > > > @@ -213,6 +213,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 000..07c5930 > > > > --- /dev/null > > > > +++ b/xen/arch/arm/platforms/Kconfig > > > > @@ -0,0 +1,55 @@ > > > > +choice > > > > + prompt "Platform Support" > > > > + default ALL > > > > + ---help--- > > > > + Choose which hardware platform to enable in Xen. > > > > + > > > > + If unsure, choose ALL. > > > > + > > > > +config ALL > > > I would suggest to separate it into ALL_ARM32 and ALL_ARM64. Then, in a > > > makefile use them for platforms instead of raw ARM32 and ARM64. This would > > > make such change really useful: disabling ALL_x will drop all odd platform > > > code. > > Hi Andrii, > > > > I don't understand the suggestion: ARM32 platforms cannot be enabled on > > ARM64 and vice versa. > Indeed. > > > So basically it is as if you always get only > > ALL_ARM32 or ALL_ARM64 depending on your target architecture. > > > > Am I missing something? > With this patch, deselecting "config ALL" does not remove all platform code > from the build. Yes, it does. Let's say that you chose ALL at the menu choice. MPSOC_PLATFORM gets selected, that trigger the build of the MPSOC platform file. If you do "make menuconfig" again and select RCAR3 instead, MPSOC_PLATFORM is removed from the .config. Next time you type "make" the MPSOC platform files will not be built. Sorry if I am still misunderstanding your suggestion. > It is because build of the most of that code depends directly > on ARMxx. > In order to get a possibility to drop unneeded platform code, the platform > code should be dependent on "config ALL". But here you do not want to mix > 32bit and 64bit platforms, so you would need "config ALL_32" and "config > ALL_64". > For sure, written above is meaningful only for the case if someone needs the > possibility to drop odd platform code from the build. > > > > > + bool "All Platforms" > > > > + select MPSOC_PLATFORM > > > > + select QEMU_PLATFORM > > > > + select RCAR3_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 QEMU_PLATFORM > > > > + 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 RCAR3_PLATFORM > > > > + select HAS_SCIF > > > > + ---help--- > > > > + Enable all the required drivers for Renesas RCar3 > > > > + > > > > +config MPSOC > > > > + bool "Xilinx Ultrascale+ MPSoC support" > > > > + depends on ARM_64 > > > > + select
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On 27/07/18 12:34, Andrii Anisov wrote: Hello Julien, On 27.07.18 14:27, Julien Grall wrote: There are no need for duplication. You can instead do something like: config ALL_64 default (ALL && ARM_64) config ALL_32 default (ALL && ARM_32) config MPSOC_PLATFORM bool default (ALL_64 || MPSOC) Yep, but then "config ALL" should not select MPSOC_PLATFORM by itself. I know... See my answer on your reply. Cheers, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hello Julien, On 27.07.18 14:27, Julien Grall wrote: There are no need for duplication. You can instead do something like: config ALL_64 default (ALL && ARM_64) config ALL_32 default (ALL && ARM_32) config MPSOC_PLATFORM bool default (ALL_64 || MPSOC) Yep, but then "config ALL" should not select MPSOC_PLATFORM by itself. -- *Andrii Anisov* ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hi, On 27/07/18 12:21, Andrii Anisov wrote: 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" + There are no need for duplication. You can instead do something like: config ALL_64 default (ALL && ARM_64) config ALL_32 default (ALL && ARM_32) config MPSOC_PLATFORM bool default (ALL_64 || MPSOC) Cheers, 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 000..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 -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
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 000..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
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hi, On 27/07/18 11:30, Andrii Anisov wrote: On 27.07.18 01:46, Stefano Stabellini wrote: On 07.07.18 02:13, Stefano Stabellini wrote: Shouldn't MPSOC_PLATFORM be dependent on ARM64? Yes, and it is, see "config MPSOC" few lines above. Few lines above, only "config MPSOC" is dependent on ARM64. But MPSOC_PLATFORM is selected by "config ALL" at the beginning of the patch. And it will be selected for ARM32 as well. You don't really need to select the platform in ALL. Instead you could do something like: config ALL_64 default (ALL && ARM_64) config ALL_32 default (ALL && ARM_32) config MPSOC_PLATFORM bool default (ALL_64 || MPSOC) + bool + diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile index 80e555c..a79bdb9 100644 --- a/xen/arch/arm/platforms/Makefile +++ b/xen/arch/arm/platforms/Makefile @@ -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 -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hello Stefano, On 27.07.18 01:46, Stefano Stabellini wrote: On Tue, 24 Jul 2018, Andrii Anisov wrote: On 07.07.18 02:13, Stefano Stabellini wrote: Add a "Platform Support" choice with four kconfig options: QEMU, RCAR3, MPSOC and ALL. They enable the required options for their hardware platform. ALL 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 is implemented by selecting hidden options corresponding to QEMU, MPSOC and RCAR3. 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 CC: artem_myga...@epam.com CC: volodymyr_babc...@epam.com --- 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| 2 ++ xen/arch/arm/platforms/Kconfig | 55 + xen/arch/arm/platforms/Makefile | 2 +- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 xen/arch/arm/platforms/Kconfig diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 2b87111..75cacfb 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -213,6 +213,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 000..07c5930 --- /dev/null +++ b/xen/arch/arm/platforms/Kconfig @@ -0,0 +1,55 @@ +choice + prompt "Platform Support" + default ALL + ---help--- + Choose which hardware platform to enable in Xen. + + If unsure, choose ALL. + +config ALL I would suggest to separate it into ALL_ARM32 and ALL_ARM64. Then, in a makefile use them for platforms instead of raw ARM32 and ARM64. This would make such change really useful: disabling ALL_x will drop all odd platform code. Hi Andrii, I don't understand the suggestion: ARM32 platforms cannot be enabled on ARM64 and vice versa. Indeed. So basically it is as if you always get only ALL_ARM32 or ALL_ARM64 depending on your target architecture. Am I missing something? With this patch, deselecting "config ALL" does not remove all platform code from the build. It is because build of the most of that code depends directly on ARMxx. In order to get a possibility to drop unneeded platform code, the platform code should be dependent on "config ALL". But here you do not want to mix 32bit and 64bit platforms, so you would need "config ALL_32" and "config ALL_64". For sure, written above is meaningful only for the case if someone needs the possibility to drop odd platform code from the build. + bool "All Platforms" + select MPSOC_PLATFORM + select QEMU_PLATFORM + select RCAR3_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 QEMU_PLATFORM + 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 RCAR3_PLATFORM + 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 + +endchoice + +config QEMU_PLATFORM + bool + +config RCAR3_PLATFORM + bool + +config MPSOC_PLATFORM Shouldn't MPSOC_PLATFORM be dependent on ARM64? Yes, and it is, see "config MPSOC" few lines above. Few lines above, only "config MPSOC" is dependent on ARM64. But MPSOC_PLATFORM is selected by "config ALL" at the beginning of the patch. And it will be selected for ARM32 as well. + bool + diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile index 80e555c..a79bdb9 100644 --- a/xen/arch/arm/platforms/Makefile +++ b/xen/arch/arm/platforms/Makefile @@ -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 -- *Andrii Anisov* ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On Tue, 24 Jul 2018, Andrii Anisov wrote: > On 07.07.18 02:13, Stefano Stabellini wrote: > > Add a "Platform Support" choice with four kconfig options: QEMU, RCAR3, > > MPSOC and ALL. They enable the required options for their hardware > > platform. ALL 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 is implemented by selecting hidden options > > corresponding to QEMU, MPSOC and RCAR3. > > > > 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 > > CC: artem_myga...@epam.com > > CC: volodymyr_babc...@epam.com > > > > --- > > 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| 2 ++ > > xen/arch/arm/platforms/Kconfig | 55 > > + > > xen/arch/arm/platforms/Makefile | 2 +- > > 3 files changed, 58 insertions(+), 1 deletion(-) > > create mode 100644 xen/arch/arm/platforms/Kconfig > > > > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig > > index 2b87111..75cacfb 100644 > > --- a/xen/arch/arm/Kconfig > > +++ b/xen/arch/arm/Kconfig > > @@ -213,6 +213,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 000..07c5930 > > --- /dev/null > > +++ b/xen/arch/arm/platforms/Kconfig > > @@ -0,0 +1,55 @@ > > +choice > > + prompt "Platform Support" > > + default ALL > > + ---help--- > > + Choose which hardware platform to enable in Xen. > > + > > + If unsure, choose ALL. > > + > > +config ALL > I would suggest to separate it into ALL_ARM32 and ALL_ARM64. Then, in a > makefile use them for platforms instead of raw ARM32 and ARM64. This would > make such change really useful: disabling ALL_x will drop all odd platform > code. Hi Andrii, I don't understand the suggestion: ARM32 platforms cannot be enabled on ARM64 and vice versa. So basically it is as if you always get only ALL_ARM32 or ALL_ARM64 depending on your target architecture. Am I missing something? > > + bool "All Platforms" > > + select MPSOC_PLATFORM > > + select QEMU_PLATFORM > > + select RCAR3_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 QEMU_PLATFORM > > + 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 RCAR3_PLATFORM > > + 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 > > + > > +endchoice > > + > > +config QEMU_PLATFORM > > + bool > > + > > +config RCAR3_PLATFORM > > + bool > > + > > +config MPSOC_PLATFORM > Shouldn't MPSOC_PLATFORM be dependent on ARM64? Yes, and it is, see "config MPSOC" few lines above. > > + bool > > + > > diff --git a/xen/arch/arm/platforms/Makefile > > b/xen/arch/arm/platforms/Makefile > > index 80e555c..a79bdb9 100644 > > --- a/xen/arch/arm/platforms/Makefile > > +++ b/xen/arch/arm/platforms/Makefile > > @@ -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 ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
On Mon, 23 Jul 2018, Julien Grall wrote: > Hi Stefano, > > On 07/07/18 00:13, Stefano Stabellini wrote: > > +config QEMU_PLATFORM > > + bool > > + > > +config RCAR3_PLATFORM > > + bool > > Those 2 options do nothing. So I would prefer if they are removed. With that > fixed: > > Acked-by: Julien Grall Sure, I'll do that. We'll add them when we/if we'll actually need them. ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hello Stefano, On 07.07.18 02:13, Stefano Stabellini wrote: Add a "Platform Support" choice with four kconfig options: QEMU, RCAR3, MPSOC and ALL. They enable the required options for their hardware platform. ALL 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 is implemented by selecting hidden options corresponding to QEMU, MPSOC and RCAR3. 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 CC: artem_myga...@epam.com CC: volodymyr_babc...@epam.com --- 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| 2 ++ xen/arch/arm/platforms/Kconfig | 55 + xen/arch/arm/platforms/Makefile | 2 +- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 xen/arch/arm/platforms/Kconfig diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 2b87111..75cacfb 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -213,6 +213,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 000..07c5930 --- /dev/null +++ b/xen/arch/arm/platforms/Kconfig @@ -0,0 +1,55 @@ +choice + prompt "Platform Support" + default ALL + ---help--- + Choose which hardware platform to enable in Xen. + + If unsure, choose ALL. + +config ALL I would suggest to separate it into ALL_ARM32 and ALL_ARM64. Then, in a makefile use them for platforms instead of raw ARM32 and ARM64. This would make such change really useful: disabling ALL_x will drop all odd platform code. + bool "All Platforms" + select MPSOC_PLATFORM + select QEMU_PLATFORM + select RCAR3_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 QEMU_PLATFORM + 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 RCAR3_PLATFORM + 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 + +endchoice + +config QEMU_PLATFORM + bool + +config RCAR3_PLATFORM + bool + +config MPSOC_PLATFORM Shouldn't MPSOC_PLATFORM be dependent on ARM64? + bool + diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile index 80e555c..a79bdb9 100644 --- a/xen/arch/arm/platforms/Makefile +++ b/xen/arch/arm/platforms/Makefile @@ -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 -- *Andrii Anisov* ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Hi Stefano, On 07/07/18 00:13, Stefano Stabellini wrote: +config QEMU_PLATFORM + bool + +config RCAR3_PLATFORM + bool Those 2 options do nothing. So I would prefer if they are removed. With that fixed: Acked-by: Julien Grall Cheers, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
[Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs
Add a "Platform Support" choice with four kconfig options: QEMU, RCAR3, MPSOC and ALL. They enable the required options for their hardware platform. ALL 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 is implemented by selecting hidden options corresponding to QEMU, MPSOC and RCAR3. 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 CC: artem_myga...@epam.com CC: volodymyr_babc...@epam.com --- 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| 2 ++ xen/arch/arm/platforms/Kconfig | 55 + xen/arch/arm/platforms/Makefile | 2 +- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 xen/arch/arm/platforms/Kconfig diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 2b87111..75cacfb 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -213,6 +213,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 000..07c5930 --- /dev/null +++ b/xen/arch/arm/platforms/Kconfig @@ -0,0 +1,55 @@ +choice + prompt "Platform Support" + default ALL + ---help--- + Choose which hardware platform to enable in Xen. + + If unsure, choose ALL. + +config ALL + bool "All Platforms" + select MPSOC_PLATFORM + select QEMU_PLATFORM + select RCAR3_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 QEMU_PLATFORM + 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 RCAR3_PLATFORM + 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 + +endchoice + +config QEMU_PLATFORM + bool + +config RCAR3_PLATFORM + bool + +config MPSOC_PLATFORM + bool + diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile index 80e555c..a79bdb9 100644 --- a/xen/arch/arm/platforms/Makefile +++ b/xen/arch/arm/platforms/Makefile @@ -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 -- 1.9.1 ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel