diff mbox series

[PULL,11/35] arm/Kconfig: Do not build TCG-only boards on a KVM-only build

Message ID 20230502121459.2422303-12-peter.maydell@linaro.org
State Accepted
Commit 29d9efca16080211f107b540f04d1ed3c12c63b0
Headers show
Series [PULL,01/35] target/arm: Move cortex sysregs into a separate file | expand

Commit Message

Peter Maydell May 2, 2023, 12:14 p.m. UTC
From: Fabiano Rosas <farosas@suse.de>

Move all the CONFIG_FOO=y from default.mak into "default y if TCG"
statements in Kconfig. That way they won't be selected when
CONFIG_TCG=n.

I'm leaving CONFIG_ARM_VIRT in default.mak because it allows us to
keep the two default.mak files not empty and keep aarch64-default.mak
including arm-default.mak. That way we don't surprise anyone that's
used to altering these files.

With this change we can start building with --disable-tcg.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20230426180013.14814-12-farosas@suse.de
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 configs/devices/aarch64-softmmu/default.mak |  4 --
 configs/devices/arm-softmmu/default.mak     | 37 ------------------
 hw/arm/Kconfig                              | 42 ++++++++++++++++++++-
 3 files changed, 41 insertions(+), 42 deletions(-)

Comments

Thomas Huth May 4, 2023, 7:12 a.m. UTC | #1
On 02/05/2023 14.14, Peter Maydell wrote:
> From: Fabiano Rosas <farosas@suse.de>
> 
> Move all the CONFIG_FOO=y from default.mak into "default y if TCG"
> statements in Kconfig. That way they won't be selected when
> CONFIG_TCG=n.
> 
> I'm leaving CONFIG_ARM_VIRT in default.mak because it allows us to
> keep the two default.mak files not empty and keep aarch64-default.mak
> including arm-default.mak. That way we don't surprise anyone that's
> used to altering these files.
> 
> With this change we can start building with --disable-tcg.
> 
> Signed-off-by: Fabiano Rosas <farosas@suse.de>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> Message-id: 20230426180013.14814-12-farosas@suse.de
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   configs/devices/aarch64-softmmu/default.mak |  4 --
>   configs/devices/arm-softmmu/default.mak     | 37 ------------------
>   hw/arm/Kconfig                              | 42 ++++++++++++++++++++-
>   3 files changed, 41 insertions(+), 42 deletions(-)
> 
> diff --git a/configs/devices/aarch64-softmmu/default.mak b/configs/devices/aarch64-softmmu/default.mak
> index cf43ac8da11..70e05a197dc 100644
> --- a/configs/devices/aarch64-softmmu/default.mak
> +++ b/configs/devices/aarch64-softmmu/default.mak
> @@ -2,7 +2,3 @@
>   
>   # We support all the 32 bit boards so need all their config
>   include ../arm-softmmu/default.mak
> -
> -CONFIG_XLNX_ZYNQMP_ARM=y
> -CONFIG_XLNX_VERSAL=y
> -CONFIG_SBSA_REF=y
> diff --git a/configs/devices/arm-softmmu/default.mak b/configs/devices/arm-softmmu/default.mak
> index cb3e5aea657..647fbce88d3 100644
> --- a/configs/devices/arm-softmmu/default.mak
> +++ b/configs/devices/arm-softmmu/default.mak
> @@ -4,40 +4,3 @@
>   # CONFIG_TEST_DEVICES=n
>   
>   CONFIG_ARM_VIRT=y
> -CONFIG_CUBIEBOARD=y
> -CONFIG_EXYNOS4=y
> -CONFIG_HIGHBANK=y
> -CONFIG_INTEGRATOR=y
> -CONFIG_FSL_IMX31=y
> -CONFIG_MUSICPAL=y
> -CONFIG_MUSCA=y
> -CONFIG_CHEETAH=y
> -CONFIG_SX1=y
> -CONFIG_NSERIES=y
> -CONFIG_STELLARIS=y
> -CONFIG_STM32VLDISCOVERY=y
> -CONFIG_REALVIEW=y
> -CONFIG_VERSATILE=y
> -CONFIG_VEXPRESS=y
> -CONFIG_ZYNQ=y
> -CONFIG_MAINSTONE=y
> -CONFIG_GUMSTIX=y
> -CONFIG_SPITZ=y
> -CONFIG_TOSA=y
> -CONFIG_Z2=y
> -CONFIG_NPCM7XX=y
> -CONFIG_COLLIE=y
> -CONFIG_ASPEED_SOC=y
> -CONFIG_NETDUINO2=y
> -CONFIG_NETDUINOPLUS2=y
> -CONFIG_OLIMEX_STM32_H405=y
> -CONFIG_MPS2=y
> -CONFIG_RASPI=y
> -CONFIG_DIGIC=y
> -CONFIG_SABRELITE=y
> -CONFIG_EMCRAFT_SF2=y
> -CONFIG_MICROBIT=y
> -CONFIG_FSL_IMX25=y
> -CONFIG_FSL_IMX7=y
> -CONFIG_FSL_IMX6UL=y
> -CONFIG_ALLWINNER_H3=y
> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> index 87c1a29c912..2d7c4579559 100644
> --- a/hw/arm/Kconfig
> +++ b/hw/arm/Kconfig
> @@ -35,20 +35,24 @@ config ARM_VIRT
>   
>   config CHEETAH
>       bool
> +    default y if TCG && ARM
>       select OMAP
>       select TSC210X
>   
>   config CUBIEBOARD
>       bool
> +    default y if TCG && ARM
>       select ALLWINNER_A10
...

  Hi!

Sorry for not noticing this earlier, but I have to say that I really dislike 
this change, since it very much changes the way we did our machine 
configuration so far.
Until now, you could simply go to configs/devices/*-softmmu/*.mak and only 
select the machines you wanted to have with "...=y" and delete everything 
else. Now you have to know *all* the machines that you do *not* want to have 
in your build and disable them with "...=n" in that file. That's quite ugly, 
especially for the arm target that has so many machines. (ok, you could also 
do a "--without-default-devices" configuration to get rid of the machines, 
but that also disables all other kind of devices that you then have to 
specify manually).

Isn't there a better way to solve this TCG dependency problem?
Paolo, do you maybe have any ideas?

  Thomas
Fabiano Rosas May 4, 2023, 12:27 p.m. UTC | #2
Thomas Huth <thuth@redhat.com> writes:

> On 02/05/2023 14.14, Peter Maydell wrote:
>> From: Fabiano Rosas <farosas@suse.de>
>> 
>> Move all the CONFIG_FOO=y from default.mak into "default y if TCG"
>> statements in Kconfig. That way they won't be selected when
>> CONFIG_TCG=n.
>> 
>> I'm leaving CONFIG_ARM_VIRT in default.mak because it allows us to
>> keep the two default.mak files not empty and keep aarch64-default.mak
>> including arm-default.mak. That way we don't surprise anyone that's
>> used to altering these files.
>> 
>> With this change we can start building with --disable-tcg.
>> 
>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>> Message-id: 20230426180013.14814-12-farosas@suse.de
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>> ---
>>   configs/devices/aarch64-softmmu/default.mak |  4 --
>>   configs/devices/arm-softmmu/default.mak     | 37 ------------------
>>   hw/arm/Kconfig                              | 42 ++++++++++++++++++++-
>>   3 files changed, 41 insertions(+), 42 deletions(-)
>> 
>> diff --git a/configs/devices/aarch64-softmmu/default.mak b/configs/devices/aarch64-softmmu/default.mak
>> index cf43ac8da11..70e05a197dc 100644
>> --- a/configs/devices/aarch64-softmmu/default.mak
>> +++ b/configs/devices/aarch64-softmmu/default.mak
>> @@ -2,7 +2,3 @@
>>   
>>   # We support all the 32 bit boards so need all their config
>>   include ../arm-softmmu/default.mak
>> -
>> -CONFIG_XLNX_ZYNQMP_ARM=y
>> -CONFIG_XLNX_VERSAL=y
>> -CONFIG_SBSA_REF=y
>> diff --git a/configs/devices/arm-softmmu/default.mak b/configs/devices/arm-softmmu/default.mak
>> index cb3e5aea657..647fbce88d3 100644
>> --- a/configs/devices/arm-softmmu/default.mak
>> +++ b/configs/devices/arm-softmmu/default.mak
>> @@ -4,40 +4,3 @@
>>   # CONFIG_TEST_DEVICES=n
>>   
>>   CONFIG_ARM_VIRT=y
>> -CONFIG_CUBIEBOARD=y
>> -CONFIG_EXYNOS4=y
>> -CONFIG_HIGHBANK=y
>> -CONFIG_INTEGRATOR=y
>> -CONFIG_FSL_IMX31=y
>> -CONFIG_MUSICPAL=y
>> -CONFIG_MUSCA=y
>> -CONFIG_CHEETAH=y
>> -CONFIG_SX1=y
>> -CONFIG_NSERIES=y
>> -CONFIG_STELLARIS=y
>> -CONFIG_STM32VLDISCOVERY=y
>> -CONFIG_REALVIEW=y
>> -CONFIG_VERSATILE=y
>> -CONFIG_VEXPRESS=y
>> -CONFIG_ZYNQ=y
>> -CONFIG_MAINSTONE=y
>> -CONFIG_GUMSTIX=y
>> -CONFIG_SPITZ=y
>> -CONFIG_TOSA=y
>> -CONFIG_Z2=y
>> -CONFIG_NPCM7XX=y
>> -CONFIG_COLLIE=y
>> -CONFIG_ASPEED_SOC=y
>> -CONFIG_NETDUINO2=y
>> -CONFIG_NETDUINOPLUS2=y
>> -CONFIG_OLIMEX_STM32_H405=y
>> -CONFIG_MPS2=y
>> -CONFIG_RASPI=y
>> -CONFIG_DIGIC=y
>> -CONFIG_SABRELITE=y
>> -CONFIG_EMCRAFT_SF2=y
>> -CONFIG_MICROBIT=y
>> -CONFIG_FSL_IMX25=y
>> -CONFIG_FSL_IMX7=y
>> -CONFIG_FSL_IMX6UL=y
>> -CONFIG_ALLWINNER_H3=y
>> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
>> index 87c1a29c912..2d7c4579559 100644
>> --- a/hw/arm/Kconfig
>> +++ b/hw/arm/Kconfig
>> @@ -35,20 +35,24 @@ config ARM_VIRT
>>   
>>   config CHEETAH
>>       bool
>> +    default y if TCG && ARM
>>       select OMAP
>>       select TSC210X
>>   
>>   config CUBIEBOARD
>>       bool
>> +    default y if TCG && ARM
>>       select ALLWINNER_A10
> ...
>
>   Hi!
>
> Sorry for not noticing this earlier, but I have to say that I really dislike 
> this change, since it very much changes the way we did our machine 
> configuration so far.
> Until now, you could simply go to configs/devices/*-softmmu/*.mak and only 
> select the machines you wanted to have with "...=y" and delete everything 
> else. Now you have to know *all* the machines that you do *not* want to have 
> in your build and disable them with "...=n" in that file. That's quite ugly, 
> especially for the arm target that has so many machines. (ok, you could also 
> do a "--without-default-devices" configuration to get rid of the machines, 
> but that also disables all other kind of devices that you then have to 
> specify manually).
>

Would leaving the CONFIGs as 'n', but commented out in the .mak files be
of any help? If I understand your use case, you were probably just
deleting the CONFIG=y for the boards you don't want. So now you'd be
uncommenting the CONFIG=n instead.

Alternatively, we could revert the .mak part of this change, convert
default.mak into tcg.mak and kvm.mak, and use those transparently
depending on whether --disable-tcg is present in the configure line.

But there's probably a better way still that I'm not seeing here, let's
see what others think.
Paolo Bonzini May 8, 2023, 10:19 p.m. UTC | #3
Il gio 4 mag 2023, 14:27 Fabiano Rosas <farosas@suse.de> ha scritto:

> Thomas Huth <thuth@redhat.com> writes:
>
> > On 02/05/2023 14.14, Peter Maydell wrote:
> >> From: Fabiano Rosas <farosas@suse.de>
> >>
> >> Move all the CONFIG_FOO=y from default.mak into "default y if TCG"
> >> statements in Kconfig. That way they won't be selected when
> >> CONFIG_TCG=n.
> >>
> >> I'm leaving CONFIG_ARM_VIRT in default.mak because it allows us to
> >> keep the two default.mak files not empty and keep aarch64-default.mak
> >> including arm-default.mak. That way we don't surprise anyone that's
> >> used to altering these files.
> >>
> >> With this change we can start building with --disable-tcg.
> >>
> >> Signed-off-by: Fabiano Rosas <farosas@suse.de>
> >> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> >> Message-id: 20230426180013.14814-12-farosas@suse.de
> >> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> >> ---
> >>   configs/devices/aarch64-softmmu/default.mak |  4 --
> >>   configs/devices/arm-softmmu/default.mak     | 37 ------------------
> >>   hw/arm/Kconfig                              | 42 ++++++++++++++++++++-
> >>   3 files changed, 41 insertions(+), 42 deletions(-)
> >>
> >> diff --git a/configs/devices/aarch64-softmmu/default.mak
> b/configs/devices/aarch64-softmmu/default.mak
> >> index cf43ac8da11..70e05a197dc 100644
> >> --- a/configs/devices/aarch64-softmmu/default.mak
> >> +++ b/configs/devices/aarch64-softmmu/default.mak
> >> @@ -2,7 +2,3 @@
> >>
> >>   # We support all the 32 bit boards so need all their config
> >>   include ../arm-softmmu/default.mak
> >> -
> >> -CONFIG_XLNX_ZYNQMP_ARM=y
> >> -CONFIG_XLNX_VERSAL=y
> >> -CONFIG_SBSA_REF=y
> >> diff --git a/configs/devices/arm-softmmu/default.mak
> b/configs/devices/arm-softmmu/default.mak
> >> index cb3e5aea657..647fbce88d3 100644
> >> --- a/configs/devices/arm-softmmu/default.mak
> >> +++ b/configs/devices/arm-softmmu/default.mak
> >> @@ -4,40 +4,3 @@
> >>   # CONFIG_TEST_DEVICES=n
> >>
> >>   CONFIG_ARM_VIRT=y
> >> -CONFIG_CUBIEBOARD=y
> >> -CONFIG_EXYNOS4=y
> >> -CONFIG_HIGHBANK=y
> >> -CONFIG_INTEGRATOR=y
> >> -CONFIG_FSL_IMX31=y
> >> -CONFIG_MUSICPAL=y
> >> -CONFIG_MUSCA=y
> >> -CONFIG_CHEETAH=y
> >> -CONFIG_SX1=y
> >> -CONFIG_NSERIES=y
> >> -CONFIG_STELLARIS=y
> >> -CONFIG_STM32VLDISCOVERY=y
> >> -CONFIG_REALVIEW=y
> >> -CONFIG_VERSATILE=y
> >> -CONFIG_VEXPRESS=y
> >> -CONFIG_ZYNQ=y
> >> -CONFIG_MAINSTONE=y
> >> -CONFIG_GUMSTIX=y
> >> -CONFIG_SPITZ=y
> >> -CONFIG_TOSA=y
> >> -CONFIG_Z2=y
> >> -CONFIG_NPCM7XX=y
> >> -CONFIG_COLLIE=y
> >> -CONFIG_ASPEED_SOC=y
> >> -CONFIG_NETDUINO2=y
> >> -CONFIG_NETDUINOPLUS2=y
> >> -CONFIG_OLIMEX_STM32_H405=y
> >> -CONFIG_MPS2=y
> >> -CONFIG_RASPI=y
> >> -CONFIG_DIGIC=y
> >> -CONFIG_SABRELITE=y
> >> -CONFIG_EMCRAFT_SF2=y
> >> -CONFIG_MICROBIT=y
> >> -CONFIG_FSL_IMX25=y
> >> -CONFIG_FSL_IMX7=y
> >> -CONFIG_FSL_IMX6UL=y
> >> -CONFIG_ALLWINNER_H3=y
> >> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> >> index 87c1a29c912..2d7c4579559 100644
> >> --- a/hw/arm/Kconfig
> >> +++ b/hw/arm/Kconfig
> >> @@ -35,20 +35,24 @@ config ARM_VIRT
> >>
> >>   config CHEETAH
> >>       bool
> >> +    default y if TCG && ARM
> >>       select OMAP
> >>       select TSC210X
> >>
> >>   config CUBIEBOARD
> >>       bool
> >> +    default y if TCG && ARM
> >>       select ALLWINNER_A10
> > ...
> >
> >   Hi!
> >
> > Sorry for not noticing this earlier, but I have to say that I really
> dislike
> > this change, since it very much changes the way we did our machine
> > configuration so far.
> > Until now, you could simply go to configs/devices/*-softmmu/*.mak and
> only
> > select the machines you wanted to have with "...=y" and delete
> everything
> > else. Now you have to know *all* the machines that you do *not* want to
> have
> > in your build and disable them with "...=n" in that file. That's quite
> ugly,
> > especially for the arm target that has so many machines. (ok, you could
> also
> > do a "--without-default-devices" configuration to get rid of the
> machines,
> > but that also disables all other kind of devices that you then have to
> > specify manually).
> >
>
> Would leaving the CONFIGs as 'n', but commented out in the .mak files be
> of any help? If I understand your use case, you were probably just
> deleting the CONFIG=y for the boards you don't want. So now you'd be
> uncommenting the CONFIG=n instead.


Yes, that would help—though it is likely to bitrot. I would also change the
"if TCG" part to "depends on TCG && ARM", which will break loudly if
someone sets the config to y with the wrong accelerator or in the wrong
file.

Once this is done for ARM we can extend it to other .mak files for
consistency.

Paolo


> Alternatively, we could revert the .mak part of this change, convert
> default.mak into tcg.mak and kvm.mak, and use those transparently
> depending on whether --disable-tcg is present in the configure line.
>
> But there's probably a better way still that I'm not seeing here, let's
> see what others think.
>
>
Thomas Huth May 9, 2023, 6:57 a.m. UTC | #4
On 04/05/2023 14.27, Fabiano Rosas wrote:
> Thomas Huth <thuth@redhat.com> writes:
> 
>> On 02/05/2023 14.14, Peter Maydell wrote:
>>> From: Fabiano Rosas <farosas@suse.de>
>>>
>>> Move all the CONFIG_FOO=y from default.mak into "default y if TCG"
>>> statements in Kconfig. That way they won't be selected when
>>> CONFIG_TCG=n.
>>>
>>> I'm leaving CONFIG_ARM_VIRT in default.mak because it allows us to
>>> keep the two default.mak files not empty and keep aarch64-default.mak
>>> including arm-default.mak. That way we don't surprise anyone that's
>>> used to altering these files.
>>>
>>> With this change we can start building with --disable-tcg.
>>>
>>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>>> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>>> Message-id: 20230426180013.14814-12-farosas@suse.de
>>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>>> ---
>>>    configs/devices/aarch64-softmmu/default.mak |  4 --
>>>    configs/devices/arm-softmmu/default.mak     | 37 ------------------
>>>    hw/arm/Kconfig                              | 42 ++++++++++++++++++++-
>>>    3 files changed, 41 insertions(+), 42 deletions(-)
>>>
>>> diff --git a/configs/devices/aarch64-softmmu/default.mak b/configs/devices/aarch64-softmmu/default.mak
>>> index cf43ac8da11..70e05a197dc 100644
>>> --- a/configs/devices/aarch64-softmmu/default.mak
>>> +++ b/configs/devices/aarch64-softmmu/default.mak
>>> @@ -2,7 +2,3 @@
>>>    
>>>    # We support all the 32 bit boards so need all their config
>>>    include ../arm-softmmu/default.mak
>>> -
>>> -CONFIG_XLNX_ZYNQMP_ARM=y
>>> -CONFIG_XLNX_VERSAL=y
>>> -CONFIG_SBSA_REF=y
>>> diff --git a/configs/devices/arm-softmmu/default.mak b/configs/devices/arm-softmmu/default.mak
>>> index cb3e5aea657..647fbce88d3 100644
>>> --- a/configs/devices/arm-softmmu/default.mak
>>> +++ b/configs/devices/arm-softmmu/default.mak
>>> @@ -4,40 +4,3 @@
>>>    # CONFIG_TEST_DEVICES=n
>>>    
>>>    CONFIG_ARM_VIRT=y
>>> -CONFIG_CUBIEBOARD=y
>>> -CONFIG_EXYNOS4=y
>>> -CONFIG_HIGHBANK=y
>>> -CONFIG_INTEGRATOR=y
>>> -CONFIG_FSL_IMX31=y
>>> -CONFIG_MUSICPAL=y
>>> -CONFIG_MUSCA=y
>>> -CONFIG_CHEETAH=y
>>> -CONFIG_SX1=y
>>> -CONFIG_NSERIES=y
>>> -CONFIG_STELLARIS=y
>>> -CONFIG_STM32VLDISCOVERY=y
>>> -CONFIG_REALVIEW=y
>>> -CONFIG_VERSATILE=y
>>> -CONFIG_VEXPRESS=y
>>> -CONFIG_ZYNQ=y
>>> -CONFIG_MAINSTONE=y
>>> -CONFIG_GUMSTIX=y
>>> -CONFIG_SPITZ=y
>>> -CONFIG_TOSA=y
>>> -CONFIG_Z2=y
>>> -CONFIG_NPCM7XX=y
>>> -CONFIG_COLLIE=y
>>> -CONFIG_ASPEED_SOC=y
>>> -CONFIG_NETDUINO2=y
>>> -CONFIG_NETDUINOPLUS2=y
>>> -CONFIG_OLIMEX_STM32_H405=y
>>> -CONFIG_MPS2=y
>>> -CONFIG_RASPI=y
>>> -CONFIG_DIGIC=y
>>> -CONFIG_SABRELITE=y
>>> -CONFIG_EMCRAFT_SF2=y
>>> -CONFIG_MICROBIT=y
>>> -CONFIG_FSL_IMX25=y
>>> -CONFIG_FSL_IMX7=y
>>> -CONFIG_FSL_IMX6UL=y
>>> -CONFIG_ALLWINNER_H3=y
>>> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
>>> index 87c1a29c912..2d7c4579559 100644
>>> --- a/hw/arm/Kconfig
>>> +++ b/hw/arm/Kconfig
>>> @@ -35,20 +35,24 @@ config ARM_VIRT
>>>    
>>>    config CHEETAH
>>>        bool
>>> +    default y if TCG && ARM
>>>        select OMAP
>>>        select TSC210X
>>>    
>>>    config CUBIEBOARD
>>>        bool
>>> +    default y if TCG && ARM
>>>        select ALLWINNER_A10
>> ...
>>
>>    Hi!
>>
>> Sorry for not noticing this earlier, but I have to say that I really dislike
>> this change, since it very much changes the way we did our machine
>> configuration so far.
>> Until now, you could simply go to configs/devices/*-softmmu/*.mak and only
>> select the machines you wanted to have with "...=y" and delete everything
>> else. Now you have to know *all* the machines that you do *not* want to have
>> in your build and disable them with "...=n" in that file. That's quite ugly,
>> especially for the arm target that has so many machines. (ok, you could also
>> do a "--without-default-devices" configuration to get rid of the machines,
>> but that also disables all other kind of devices that you then have to
>> specify manually).
>>
> 
> Would leaving the CONFIGs as 'n', but commented out in the .mak files be
> of any help? If I understand your use case, you were probably just
> deleting the CONFIG=y for the boards you don't want. So now you'd be
> uncommenting the CONFIG=n instead.
> 
> Alternatively, we could revert the .mak part of this change, convert
> default.mak into tcg.mak and kvm.mak, and use those transparently
> depending on whether --disable-tcg is present in the configure line.
> 
> But there's probably a better way still that I'm not seeing here, let's
> see what others think.

I pondered about it for a while, but I also don't have a better solution, so 
yes, I guess that "# CONFIG_xxx=n" idea is likely still the best solution 
right now.

  Thomas
diff mbox series

Patch

diff --git a/configs/devices/aarch64-softmmu/default.mak b/configs/devices/aarch64-softmmu/default.mak
index cf43ac8da11..70e05a197dc 100644
--- a/configs/devices/aarch64-softmmu/default.mak
+++ b/configs/devices/aarch64-softmmu/default.mak
@@ -2,7 +2,3 @@ 
 
 # We support all the 32 bit boards so need all their config
 include ../arm-softmmu/default.mak
-
-CONFIG_XLNX_ZYNQMP_ARM=y
-CONFIG_XLNX_VERSAL=y
-CONFIG_SBSA_REF=y
diff --git a/configs/devices/arm-softmmu/default.mak b/configs/devices/arm-softmmu/default.mak
index cb3e5aea657..647fbce88d3 100644
--- a/configs/devices/arm-softmmu/default.mak
+++ b/configs/devices/arm-softmmu/default.mak
@@ -4,40 +4,3 @@ 
 # CONFIG_TEST_DEVICES=n
 
 CONFIG_ARM_VIRT=y
-CONFIG_CUBIEBOARD=y
-CONFIG_EXYNOS4=y
-CONFIG_HIGHBANK=y
-CONFIG_INTEGRATOR=y
-CONFIG_FSL_IMX31=y
-CONFIG_MUSICPAL=y
-CONFIG_MUSCA=y
-CONFIG_CHEETAH=y
-CONFIG_SX1=y
-CONFIG_NSERIES=y
-CONFIG_STELLARIS=y
-CONFIG_STM32VLDISCOVERY=y
-CONFIG_REALVIEW=y
-CONFIG_VERSATILE=y
-CONFIG_VEXPRESS=y
-CONFIG_ZYNQ=y
-CONFIG_MAINSTONE=y
-CONFIG_GUMSTIX=y
-CONFIG_SPITZ=y
-CONFIG_TOSA=y
-CONFIG_Z2=y
-CONFIG_NPCM7XX=y
-CONFIG_COLLIE=y
-CONFIG_ASPEED_SOC=y
-CONFIG_NETDUINO2=y
-CONFIG_NETDUINOPLUS2=y
-CONFIG_OLIMEX_STM32_H405=y
-CONFIG_MPS2=y
-CONFIG_RASPI=y
-CONFIG_DIGIC=y
-CONFIG_SABRELITE=y
-CONFIG_EMCRAFT_SF2=y
-CONFIG_MICROBIT=y
-CONFIG_FSL_IMX25=y
-CONFIG_FSL_IMX7=y
-CONFIG_FSL_IMX6UL=y
-CONFIG_ALLWINNER_H3=y
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 87c1a29c912..2d7c4579559 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -35,20 +35,24 @@  config ARM_VIRT
 
 config CHEETAH
     bool
+    default y if TCG && ARM
     select OMAP
     select TSC210X
 
 config CUBIEBOARD
     bool
+    default y if TCG && ARM
     select ALLWINNER_A10
 
 config DIGIC
     bool
+    default y if TCG && ARM
     select PTIMER
     select PFLASH_CFI02
 
 config EXYNOS4
     bool
+    default y if TCG && ARM
     imply I2C_DEVICES
     select A9MPCORE
     select I2C
@@ -61,6 +65,7 @@  config EXYNOS4
 
 config HIGHBANK
     bool
+    default y if TCG && ARM
     select A9MPCORE
     select A15MPCORE
     select AHCI
@@ -75,6 +80,7 @@  config HIGHBANK
 
 config INTEGRATOR
     bool
+    default y if TCG && ARM
     select ARM_TIMER
     select INTEGRATOR_DEBUG
     select PL011 # UART
@@ -87,12 +93,14 @@  config INTEGRATOR
 
 config MAINSTONE
     bool
+    default y if TCG && ARM
     select PXA2XX
     select PFLASH_CFI01
     select SMC91C111
 
 config MUSCA
     bool
+    default y if TCG && ARM
     select ARMSSE
     select PL011
     select PL031
@@ -104,6 +112,7 @@  config MARVELL_88W8618
 
 config MUSICPAL
     bool
+    default y if TCG && ARM
     select OR_IRQ
     select BITBANG_I2C
     select MARVELL_88W8618
@@ -114,18 +123,22 @@  config MUSICPAL
 
 config NETDUINO2
     bool
+    default y if TCG && ARM
     select STM32F205_SOC
 
 config NETDUINOPLUS2
     bool
+    default y if TCG && ARM
     select STM32F405_SOC
 
 config OLIMEX_STM32_H405
     bool
+    default y if TCG && ARM
     select STM32F405_SOC
 
 config NSERIES
     bool
+    default y if TCG && ARM
     select OMAP
     select TMP105   # temperature sensor
     select BLIZZARD # LCD/TV controller
@@ -158,12 +171,14 @@  config PXA2XX
 
 config GUMSTIX
     bool
+    default y if TCG && ARM
     select PFLASH_CFI01
     select SMC91C111
     select PXA2XX
 
 config TOSA
     bool
+    default y if TCG && ARM
     select ZAURUS  # scoop
     select MICRODRIVE
     select PXA2XX
@@ -171,6 +186,7 @@  config TOSA
 
 config SPITZ
     bool
+    default y if TCG && ARM
     select ADS7846 # touch-screen controller
     select MAX111X # A/D converter
     select WM8750  # audio codec
@@ -183,6 +199,7 @@  config SPITZ
 
 config Z2
     bool
+    default y if TCG && ARM
     select PFLASH_CFI01
     select WM8750
     select PL011 # UART
@@ -190,6 +207,7 @@  config Z2
 
 config REALVIEW
     bool
+    default y if TCG && ARM
     imply PCI_DEVICES
     imply PCI_TESTDEV
     imply I2C_DEVICES
@@ -218,6 +236,7 @@  config REALVIEW
 
 config SBSA_REF
     bool
+    default y if TCG && AARCH64
     imply PCI_DEVICES
     select AHCI
     select ARM_SMMUV3
@@ -233,11 +252,13 @@  config SBSA_REF
 
 config SABRELITE
     bool
+    default y if TCG && ARM
     select FSL_IMX6
     select SSI_M25P80
 
 config STELLARIS
     bool
+    default y if TCG && ARM
     imply I2C_DEVICES
     select ARM_V7M
     select CMSDK_APB_WATCHDOG
@@ -255,6 +276,7 @@  config STELLARIS
 
 config STM32VLDISCOVERY
     bool
+    default y if TCG && ARM
     select STM32F100_SOC
 
 config STRONGARM
@@ -263,16 +285,19 @@  config STRONGARM
 
 config COLLIE
     bool
+    default y if TCG && ARM
     select PFLASH_CFI01
     select ZAURUS  # scoop
     select STRONGARM
 
 config SX1
     bool
+    default y if TCG && ARM
     select OMAP
 
 config VERSATILE
     bool
+    default y if TCG && ARM
     select ARM_TIMER # sp804
     select PFLASH_CFI01
     select LSI_SCSI_PCI
@@ -284,6 +309,7 @@  config VERSATILE
 
 config VEXPRESS
     bool
+    default y if TCG && ARM
     select A9MPCORE
     select A15MPCORE
     select ARM_MPTIMER
@@ -299,6 +325,7 @@  config VEXPRESS
 
 config ZYNQ
     bool
+    default y if TCG && ARM
     select A9MPCORE
     select CADENCE # UART
     select PFLASH_CFI02
@@ -315,7 +342,7 @@  config ZYNQ
 config ARM_V7M
     bool
     # currently v7M must be included in a TCG build due to translate.c
-    default y if TCG && (ARM || AARCH64)
+    default y if TCG && ARM
     select PTIMER
 
 config ALLWINNER_A10
@@ -334,6 +361,7 @@  config ALLWINNER_A10
 
 config ALLWINNER_H3
     bool
+    default y if TCG && ARM
     select ALLWINNER_A10_PIT
     select ALLWINNER_SUN8I_EMAC
     select ALLWINNER_I2C
@@ -348,6 +376,7 @@  config ALLWINNER_H3
 
 config RASPI
     bool
+    default y if TCG && ARM
     select FRAMEBUFFER
     select PL011 # UART
     select SDHCI
@@ -378,6 +407,7 @@  config STM32F405_SOC
 
 config XLNX_ZYNQMP_ARM
     bool
+    default y if TCG && AARCH64
     select AHCI
     select ARM_GIC
     select CADENCE
@@ -395,6 +425,7 @@  config XLNX_ZYNQMP_ARM
 
 config XLNX_VERSAL
     bool
+    default y if TCG && AARCH64
     select ARM_GIC
     select PL011
     select CADENCE
@@ -408,6 +439,7 @@  config XLNX_VERSAL
 
 config NPCM7XX
     bool
+    default y if TCG && ARM
     select A9MPCORE
     select ADM1272
     select ARM_GIC
@@ -424,6 +456,7 @@  config NPCM7XX
 
 config FSL_IMX25
     bool
+    default y if TCG && ARM
     imply I2C_DEVICES
     select IMX
     select IMX_FEC
@@ -433,6 +466,7 @@  config FSL_IMX25
 
 config FSL_IMX31
     bool
+    default y if TCG && ARM
     imply I2C_DEVICES
     select SERIAL
     select IMX
@@ -453,6 +487,7 @@  config FSL_IMX6
 
 config ASPEED_SOC
     bool
+    default y if TCG && ARM
     select DS1338
     select FTGMAC100
     select I2C
@@ -473,6 +508,7 @@  config ASPEED_SOC
 
 config MPS2
     bool
+    default y if TCG && ARM
     imply I2C_DEVICES
     select ARMSSE
     select LAN9118
@@ -488,6 +524,7 @@  config MPS2
 
 config FSL_IMX7
     bool
+    default y if TCG && ARM
     imply PCI_DEVICES
     imply TEST_DEVICES
     imply I2C_DEVICES
@@ -506,6 +543,7 @@  config ARM_SMMUV3
 
 config FSL_IMX6UL
     bool
+    default y if TCG && ARM
     imply I2C_DEVICES
     select A15MPCORE
     select IMX
@@ -517,6 +555,7 @@  config FSL_IMX6UL
 
 config MICROBIT
     bool
+    default y if TCG && ARM
     select NRF51_SOC
 
 config NRF51_SOC
@@ -528,6 +567,7 @@  config NRF51_SOC
 
 config EMCRAFT_SF2
     bool
+    default y if TCG && ARM
     select MSF2
     select SSI_M25P80