diff mbox series

[for-QEMU-4.1,v5,16/29] hw/arm: Express dependencies of the virt machine with Kconfig

Message ID 20190418180057.3593-17-thuth@redhat.com
State New
Headers show
Series Kconfig dependencies for ARM machines | expand

Commit Message

Thomas Huth April 18, 2019, 6 p.m. UTC
Dependencies have been determined by looking at hw/arm/virt.c

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 default-configs/arm-softmmu.mak | 11 +----------
 hw/arm/Kconfig                  | 19 +++++++++++++++++++
 hw/arm/Makefile.objs            |  3 ++-
 3 files changed, 22 insertions(+), 11 deletions(-)

Comments

Philippe Mathieu-Daudé April 25, 2019, 3:53 p.m. UTC | #1
Hi Thomas,

On 4/18/19 8:00 PM, Thomas Huth wrote:
> Dependencies have been determined by looking at hw/arm/virt.c
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  default-configs/arm-softmmu.mak | 11 +----------
>  hw/arm/Kconfig                  | 19 +++++++++++++++++++
>  hw/arm/Makefile.objs            |  3 ++-
>  3 files changed, 22 insertions(+), 11 deletions(-)
> 
> diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
> index 2580584281..f440a2b1cd 100644
> --- a/default-configs/arm-softmmu.mak
> +++ b/default-configs/arm-softmmu.mak
> @@ -6,6 +6,7 @@ CONFIG_ARM_V7M=y
>  # CONFIG_PCI_DEVICES=n
>  # CONFIG_TEST_DEVICES=n
>  
> +CONFIG_ARM_VIRT=y
>  CONFIG_EXYNOS4=y
>  CONFIG_HIGHBANK=y
>  CONFIG_INTEGRATOR=y
> @@ -32,8 +33,6 @@ CONFIG_VGA=y
>  CONFIG_SSI_M25P80=y
>  CONFIG_ALLWINNER_EMAC=y
>  CONFIG_IMX_FEC=y
> -CONFIG_PLATFORM_BUS=y
> -CONFIG_VIRTIO_MMIO=y
>  
>  CONFIG_NETDUINO2=y
>  
> @@ -68,9 +67,6 @@ CONFIG_IOTKIT_SYSINFO=y
>  CONFIG_ARMSSE_CPUID=y
>  CONFIG_ARMSSE_MHU=y
>  
> -CONFIG_PCI_EXPRESS=y
> -CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
> -
>  CONFIG_ALLWINNER_A10_PIT=y
>  CONFIG_ALLWINNER_A10_PIC=y
>  CONFIG_ALLWINNER_A10=y
> @@ -86,10 +82,5 @@ CONFIG_PCIE_PORT=y
>  CONFIG_XIO3130=y
>  CONFIG_IOH3420=y
>  CONFIG_I82801B11=y
> -CONFIG_ACPI=y
> -CONFIG_ARM_VIRT=y
> -CONFIG_SMBIOS=y
> -CONFIG_GPIO_KEY=y
>  CONFIG_MSF2=y
> -CONFIG_FW_CFG_DMA=y
>  CONFIG_PCI_EXPRESS_DESIGNWARE=y
> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> index abeaa54d88..4d0febf644 100644
> --- a/hw/arm/Kconfig
> +++ b/hw/arm/Kconfig
> @@ -1,6 +1,24 @@
>  config ARM_VIRT
>      bool
> +    imply PCI_DEVICES

Without -nodefaults I get:
qemu-system-aarch64: Unsupported NIC model: virtio-net-pci
This is expected.

> +    imply TEST_DEVICES
> +    imply VFIO_AMD_XGBE
>      imply VFIO_PLATFORM
> +    imply VFIO_XGMAC
> +    select A15MPCORE
> +    select ACPI
> +    select ARM_SMMUV3

You forgot to remove ARM_SMMUV3 from default-configs/aarch64-softmmu.mak.

With it removed:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> +    select GPIO_KEY
> +    select FW_CFG_DMA
> +    select PCI_EXPRESS
> +    select PCI_EXPRESS_GENERIC_BRIDGE
> +    select PFLASH_CFI01
> +    select PL011 # UART
> +    select PL031 # RTC
> +    select PL061 # GPIO
> +    select PLATFORM_BUS
> +    select SMBIOS
> +    select VIRTIO_MMIO
>  
>  config CHEETAH
>      bool
> @@ -298,6 +316,7 @@ config A9MPCORE
>  
>  config A15MPCORE
>      bool
> +    select ARM_GIC
>  
>  config ARM11MPCORE
>      bool
> diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
> index 729e711b87..4f591ca487 100644
> --- a/hw/arm/Makefile.objs
> +++ b/hw/arm/Makefile.objs
> @@ -1,4 +1,5 @@
> -obj-y += boot.o sysbus-fdt.o
> +obj-y += boot.o
> +obj-$(CONFIG_PLATFORM_BUS) += sysbus-fdt.o
>  obj-$(CONFIG_ARM_VIRT) += virt.o
>  obj-$(CONFIG_ACPI) += virt-acpi-build.o
>  obj-$(CONFIG_DIGIC) += digic_boards.o
>
Thomas Huth April 29, 2019, 3:34 p.m. UTC | #2
On 25/04/2019 17.53, Philippe Mathieu-Daudé wrote:
> Hi Thomas,
> 
> On 4/18/19 8:00 PM, Thomas Huth wrote:
>> Dependencies have been determined by looking at hw/arm/virt.c
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  default-configs/arm-softmmu.mak | 11 +----------
>>  hw/arm/Kconfig                  | 19 +++++++++++++++++++
>>  hw/arm/Makefile.objs            |  3 ++-
>>  3 files changed, 22 insertions(+), 11 deletions(-)
>>
>> diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
>> index 2580584281..f440a2b1cd 100644
>> --- a/default-configs/arm-softmmu.mak
>> +++ b/default-configs/arm-softmmu.mak
>> @@ -6,6 +6,7 @@ CONFIG_ARM_V7M=y
>>  # CONFIG_PCI_DEVICES=n
>>  # CONFIG_TEST_DEVICES=n
>>  
>> +CONFIG_ARM_VIRT=y
>>  CONFIG_EXYNOS4=y
>>  CONFIG_HIGHBANK=y
>>  CONFIG_INTEGRATOR=y
>> @@ -32,8 +33,6 @@ CONFIG_VGA=y
>>  CONFIG_SSI_M25P80=y
>>  CONFIG_ALLWINNER_EMAC=y
>>  CONFIG_IMX_FEC=y
>> -CONFIG_PLATFORM_BUS=y
>> -CONFIG_VIRTIO_MMIO=y
>>  
>>  CONFIG_NETDUINO2=y
>>  
>> @@ -68,9 +67,6 @@ CONFIG_IOTKIT_SYSINFO=y
>>  CONFIG_ARMSSE_CPUID=y
>>  CONFIG_ARMSSE_MHU=y
>>  
>> -CONFIG_PCI_EXPRESS=y
>> -CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
>> -
>>  CONFIG_ALLWINNER_A10_PIT=y
>>  CONFIG_ALLWINNER_A10_PIC=y
>>  CONFIG_ALLWINNER_A10=y
>> @@ -86,10 +82,5 @@ CONFIG_PCIE_PORT=y
>>  CONFIG_XIO3130=y
>>  CONFIG_IOH3420=y
>>  CONFIG_I82801B11=y
>> -CONFIG_ACPI=y
>> -CONFIG_ARM_VIRT=y
>> -CONFIG_SMBIOS=y
>> -CONFIG_GPIO_KEY=y
>>  CONFIG_MSF2=y
>> -CONFIG_FW_CFG_DMA=y
>>  CONFIG_PCI_EXPRESS_DESIGNWARE=y
>> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
>> index abeaa54d88..4d0febf644 100644
>> --- a/hw/arm/Kconfig
>> +++ b/hw/arm/Kconfig
>> @@ -1,6 +1,24 @@
>>  config ARM_VIRT
>>      bool
>> +    imply PCI_DEVICES
> 
> Without -nodefaults I get:
> qemu-system-aarch64: Unsupported NIC model: virtio-net-pci
> This is expected.

Yes, it should still work with "-nic none" or "-nodefaults".

>> +    imply TEST_DEVICES
>> +    imply VFIO_AMD_XGBE
>>      imply VFIO_PLATFORM
>> +    imply VFIO_XGMAC
>> +    select A15MPCORE
>> +    select ACPI
>> +    select ARM_SMMUV3
> 
> You forgot to remove ARM_SMMUV3 from default-configs/aarch64-softmmu.mak.

Good catch! Will fix it in v6.

> With it removed:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Thanks!

 Thomas
Peter Maydell April 29, 2019, 3:53 p.m. UTC | #3
On Mon, 29 Apr 2019 at 16:34, Thomas Huth <thuth@redhat.com> wrote:
>
> On 25/04/2019 17.53, Philippe Mathieu-Daudé wrote:
> > Hi Thomas,
> >
> > On 4/18/19 8:00 PM, Thomas Huth wrote:
> >> Dependencies have been determined by looking at hw/arm/virt.c
> >>
> >> Signed-off-by: Thomas Huth <thuth@redhat.com>
> >> ---
> >>  default-configs/arm-softmmu.mak | 11 +----------
> >>  hw/arm/Kconfig                  | 19 +++++++++++++++++++
> >>  hw/arm/Makefile.objs            |  3 ++-
> >>  3 files changed, 22 insertions(+), 11 deletions(-)

> > Without -nodefaults I get:
> > qemu-system-aarch64: Unsupported NIC model: virtio-net-pci
> > This is expected.
>
> Yes, it should still work with "-nic none" or "-nodefaults".

Er, if you need either -nic none or -nodefaults after this
patch then this would be a change in behaviour, which seems
wrong to me.

thanks
-- PMM
Thomas Huth April 29, 2019, 4:02 p.m. UTC | #4
On 29/04/2019 17.53, Peter Maydell wrote:
> On Mon, 29 Apr 2019 at 16:34, Thomas Huth <thuth@redhat.com> wrote:
>>
>> On 25/04/2019 17.53, Philippe Mathieu-Daudé wrote:
>>> Hi Thomas,
>>>
>>> On 4/18/19 8:00 PM, Thomas Huth wrote:
>>>> Dependencies have been determined by looking at hw/arm/virt.c
>>>>
>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>> ---
>>>>  default-configs/arm-softmmu.mak | 11 +----------
>>>>  hw/arm/Kconfig                  | 19 +++++++++++++++++++
>>>>  hw/arm/Makefile.objs            |  3 ++-
>>>>  3 files changed, 22 insertions(+), 11 deletions(-)
> 
>>> Without -nodefaults I get:
>>> qemu-system-aarch64: Unsupported NIC model: virtio-net-pci
>>> This is expected.
>>
>> Yes, it should still work with "-nic none" or "-nodefaults".
> 
> Er, if you need either -nic none or -nodefaults after this
> patch then this would be a change in behaviour, which seems
> wrong to me.

No worry, this only applies to compiling builds where you run "configure
 --without-default-devices". For normal builds, virtio-net should still
be included fine. ... at least I hope this is what Philippe was talking
about ... but for me it's working fine when I run "configure" normally.

 Thomas
Philippe Mathieu-Daudé April 29, 2019, 4:06 p.m. UTC | #5
On 4/29/19 6:02 PM, Thomas Huth wrote:
> On 29/04/2019 17.53, Peter Maydell wrote:
>> On Mon, 29 Apr 2019 at 16:34, Thomas Huth <thuth@redhat.com> wrote:
>>>
>>> On 25/04/2019 17.53, Philippe Mathieu-Daudé wrote:
>>>> Hi Thomas,
>>>>
>>>> On 4/18/19 8:00 PM, Thomas Huth wrote:
>>>>> Dependencies have been determined by looking at hw/arm/virt.c
>>>>>
>>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>>> ---
>>>>>  default-configs/arm-softmmu.mak | 11 +----------
>>>>>  hw/arm/Kconfig                  | 19 +++++++++++++++++++
>>>>>  hw/arm/Makefile.objs            |  3 ++-
>>>>>  3 files changed, 22 insertions(+), 11 deletions(-)
>>
>>>> Without -nodefaults I get:
>>>> qemu-system-aarch64: Unsupported NIC model: virtio-net-pci
>>>> This is expected.
>>>
>>> Yes, it should still work with "-nic none" or "-nodefaults".
>>
>> Er, if you need either -nic none or -nodefaults after this
>> patch then this would be a change in behaviour, which seems
>> wrong to me.
> 
> No worry, this only applies to compiling builds where you run "configure
>  --without-default-devices". For normal builds, virtio-net should still
> be included fine. ... at least I hope this is what Philippe was talking
> about ... but for me it's working fine when I run "configure" normally.

Yes, I tested both cases, without --without-default-devices it works as
expected (no behaviour change). With --without-default-devices (this is
a new configure switch) it is probably required to run QEMU with
-nodefaults.
diff mbox series

Patch

diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
index 2580584281..f440a2b1cd 100644
--- a/default-configs/arm-softmmu.mak
+++ b/default-configs/arm-softmmu.mak
@@ -6,6 +6,7 @@  CONFIG_ARM_V7M=y
 # CONFIG_PCI_DEVICES=n
 # CONFIG_TEST_DEVICES=n
 
+CONFIG_ARM_VIRT=y
 CONFIG_EXYNOS4=y
 CONFIG_HIGHBANK=y
 CONFIG_INTEGRATOR=y
@@ -32,8 +33,6 @@  CONFIG_VGA=y
 CONFIG_SSI_M25P80=y
 CONFIG_ALLWINNER_EMAC=y
 CONFIG_IMX_FEC=y
-CONFIG_PLATFORM_BUS=y
-CONFIG_VIRTIO_MMIO=y
 
 CONFIG_NETDUINO2=y
 
@@ -68,9 +67,6 @@  CONFIG_IOTKIT_SYSINFO=y
 CONFIG_ARMSSE_CPUID=y
 CONFIG_ARMSSE_MHU=y
 
-CONFIG_PCI_EXPRESS=y
-CONFIG_PCI_EXPRESS_GENERIC_BRIDGE=y
-
 CONFIG_ALLWINNER_A10_PIT=y
 CONFIG_ALLWINNER_A10_PIC=y
 CONFIG_ALLWINNER_A10=y
@@ -86,10 +82,5 @@  CONFIG_PCIE_PORT=y
 CONFIG_XIO3130=y
 CONFIG_IOH3420=y
 CONFIG_I82801B11=y
-CONFIG_ACPI=y
-CONFIG_ARM_VIRT=y
-CONFIG_SMBIOS=y
-CONFIG_GPIO_KEY=y
 CONFIG_MSF2=y
-CONFIG_FW_CFG_DMA=y
 CONFIG_PCI_EXPRESS_DESIGNWARE=y
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index abeaa54d88..4d0febf644 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -1,6 +1,24 @@ 
 config ARM_VIRT
     bool
+    imply PCI_DEVICES
+    imply TEST_DEVICES
+    imply VFIO_AMD_XGBE
     imply VFIO_PLATFORM
+    imply VFIO_XGMAC
+    select A15MPCORE
+    select ACPI
+    select ARM_SMMUV3
+    select GPIO_KEY
+    select FW_CFG_DMA
+    select PCI_EXPRESS
+    select PCI_EXPRESS_GENERIC_BRIDGE
+    select PFLASH_CFI01
+    select PL011 # UART
+    select PL031 # RTC
+    select PL061 # GPIO
+    select PLATFORM_BUS
+    select SMBIOS
+    select VIRTIO_MMIO
 
 config CHEETAH
     bool
@@ -298,6 +316,7 @@  config A9MPCORE
 
 config A15MPCORE
     bool
+    select ARM_GIC
 
 config ARM11MPCORE
     bool
diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
index 729e711b87..4f591ca487 100644
--- a/hw/arm/Makefile.objs
+++ b/hw/arm/Makefile.objs
@@ -1,4 +1,5 @@ 
-obj-y += boot.o sysbus-fdt.o
+obj-y += boot.o
+obj-$(CONFIG_PLATFORM_BUS) += sysbus-fdt.o
 obj-$(CONFIG_ARM_VIRT) += virt.o
 obj-$(CONFIG_ACPI) += virt-acpi-build.o
 obj-$(CONFIG_DIGIC) += digic_boards.o