Re: [Xen-devel] [PATCH v7 08/12] arm: add ALL, QEMU, Rcar3 and MPSoC configs

2018-07-30 Thread Stefano Stabellini
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

2018-07-30 Thread Andrii Anisov

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

2018-07-30 Thread Julien Grall

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

2018-07-27 Thread Stefano Stabellini
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

2018-07-27 Thread Julien Grall
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

2018-07-27 Thread Stefano Stabellini
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

2018-07-27 Thread Andrii Anisov

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

2018-07-27 Thread Stefano Stabellini
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

2018-07-27 Thread Julien Grall



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

2018-07-27 Thread Andrii Anisov

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

2018-07-27 Thread Julien Grall

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

2018-07-27 Thread Andrii Anisov

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

2018-07-27 Thread Julien Grall

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

2018-07-27 Thread Andrii Anisov

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

2018-07-26 Thread Stefano Stabellini
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

2018-07-24 Thread Stefano Stabellini
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

2018-07-24 Thread Andrii Anisov

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

2018-07-23 Thread Julien Grall

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

2018-07-06 Thread Stefano Stabellini
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