[Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig

Paolo Bonzini posted 52 patches 7 years ago
Maintainers: Eduardo Habkost <ehabkost@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Palmer Dabbelt <palmer@sifive.com>, Max Filippov <jcmvbkbc@gmail.com>, Alistair Francis <alistair@alistair23.me>, Guan Xuetao <gxt@mprc.pku.edu.cn>, Max Reitz <mreitz@redhat.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Igor Mammedov <imammedo@redhat.com>, Aleksandar Markovic <amarkovic@wavecomp.com>, Fam Zheng <fam@euphon.net>, Cornelia Huck <cohuck@redhat.com>, Peter Crosthwaite <crosthwaite.peter@gmail.com>, Gerd Hoffmann <kraxel@redhat.com>, Aleksandar Rikalo <arikalo@wavecomp.com>, Corey Minyard <minyard@acm.org>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Alex Williamson <alex.williamson@redhat.com>, Alberto Garcia <berto@igalia.com>, Anthony Green <green@moxielogic.com>, Jason Wang <jasowang@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>, Richard Henderson <rth@twiddle.net>, Greg Kurz <groug@kaod.org>, "Daniel P. Berrangé" <berrange@redhat.com>, Alistair Francis <Alistair.Francis@wdc.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Michael Clark <mjc@sifive.com>, Kevin Wolf <kwolf@redhat.com>, Chris Wulff <crwulff@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, Stafford Horne <shorne@gmail.com>, Michael Walle <michael@walle.cc>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, David Hildenbrand <david@redhat.com>, Marek Vasut <marex@denx.de>, Paolo Bonzini <pbonzini@redhat.com>, David Gibson <david@gibson.dropbear.id.au>, Peter Maydell <peter.maydell@linaro.org>, Halil Pasic <pasic@linux.ibm.com>, Stefan Berger <stefanb@linux.ibm.com>, John Snow <jsnow@redhat.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Christian Borntraeger <borntraeger@de.ibm.com>, Artyom Tarasenko <atar4qemu@gmail.com>, Cleber Rosa <crosa@redhat.com>
There is a newer version of this series
[Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Paolo Bonzini 7 years ago
This way, the default-configs file only need to specify the boards
and any optional devices.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-37-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 default-configs/i386-softmmu.mak | 44 ++++++--------------------------
 hw/acpi/Kconfig                  |  3 +++
 hw/i2c/Makefile.objs             |  2 +-
 hw/i386/Kconfig                  | 54 ++++++++++++++++++++++++++++++++++++++++
 hw/isa/Kconfig                   |  1 +
 hw/pci-host/Kconfig              |  4 +++
 hw/tpm/Kconfig                   |  2 ++
 7 files changed, 73 insertions(+), 37 deletions(-)

diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 8e6a810..9eb9a5e 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -1,11 +1,6 @@
 # Default configuration for i386-softmmu
 
-CONFIG_PCI=y
-CONFIG_PCI_DEVICES=y
-CONFIG_ISA_BUS=y
 include hyperv.mak
-CONFIG_VGA_ISA=y
-CONFIG_VMWARE_VGA=y
 CONFIG_VMXNET3_PCI=y
 CONFIG_VIRTIO_VGA=y
 CONFIG_IPMI=y
@@ -13,49 +8,26 @@ CONFIG_IPMI_LOCAL=y
 CONFIG_IPMI_EXTERN=y
 CONFIG_ISA_IPMI_KCS=y
 CONFIG_ISA_IPMI_BT=y
-CONFIG_I8254=y
-CONFIG_ACPI=y
-CONFIG_ACPI_X86=y
-CONFIG_ACPI_X86_ICH=y
-CONFIG_ACPI_MEMORY_HOTPLUG=y
-CONFIG_ACPI_CPU_HOTPLUG=y
-CONFIG_APM=y
-CONFIG_I8257=y
-CONFIG_IDE_ISA=y
-CONFIG_IDE_PIIX=y
+
+# Optional devices:
+#
 CONFIG_HPET=y
 CONFIG_APPLESMC=y
-CONFIG_I8259=y
 CONFIG_PFLASH_CFI01=y
-CONFIG_MC146818RTC=y
-CONFIG_PCI_PIIX=y
-CONFIG_ISA_DEBUG=y
 CONFIG_ISA_TESTDEV=y
-CONFIG_VMPORT=y
 CONFIG_SGA=y
-CONFIG_LPC_ICH9=y
-CONFIG_PCI_EXPRESS=y
-CONFIG_PCI_EXPRESS_Q35=y
-CONFIG_APIC=y
-CONFIG_IOAPIC=y
 CONFIG_PVPANIC=y
 CONFIG_MEM_DEVICE=y
-CONFIG_DIMM=y
 CONFIG_NVDIMM=y
 CONFIG_ACPI_NVDIMM=y
-CONFIG_XIO3130=y
-CONFIG_IOH3420=y
-CONFIG_I82801B11=y
-CONFIG_SMBIOS=y
 CONFIG_PXB=y
 CONFIG_ACPI_VMGENID=y
-CONFIG_ACPI_SMBUS=y
 CONFIG_SMBUS_EEPROM=y
-CONFIG_FW_CFG_DMA=y
 CONFIG_I2C=y
-CONFIG_VTD=y
-CONFIG_AMD_IOMMU=y
-CONFIG_PAM=y
-CONFIG_PC=y
+CONFIG_PCI_DEVICES=y
+
+# Boards:
+#
+CONFIG_ISAPC=y
 CONFIG_I440FX=y
 CONFIG_Q35=y
diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
index c485a34..035a28f 100644
--- a/hw/acpi/Kconfig
+++ b/hw/acpi/Kconfig
@@ -3,15 +3,18 @@ config ACPI
 
 config ACPI_X86
     bool
+    select ACPI
 
 config ACPI_X86_ICH
     bool
+    select ACPI_X86
 
 config ACPI_CPU_HOTPLUG
     bool
 
 config ACPI_MEMORY_HOTPLUG
     bool
+    select MEM_DEVICE
 
 config ACPI_NVDIMM
     bool
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index 61ac50a..ff22aa6 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -2,7 +2,7 @@ common-obj-$(CONFIG_I2C) += core.o smbus.o
 common-obj-$(CONFIG_SMBUS_EEPROM) += smbus_eeprom.o
 common-obj-$(CONFIG_DDC) += i2c-ddc.o
 common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
-common-obj-$(CONFIG_ACPI_X86) += smbus_ich9.o
+common-obj-$(CONFIG_ACPI_X86_ICH) += smbus_ich9.o
 common-obj-$(CONFIG_ACPI_SMBUS) += pm_smbus.o
 common-obj-$(CONFIG_BITBANG_I2C) += bitbang_i2c.o
 common-obj-$(CONFIG_EXYNOS4) += exynos4210_i2c.o
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index ff41be3..8814b7c 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -5,20 +5,73 @@ config SEV
 config PC
     bool
 
+config PC
+    bool
+    select ISA_DEBUG
+    select I8259
+    select I8254
+    select PCSPK
+    select I82374
+    select I8257
+    select MC146818RTC
+
+config PC_PCI
+    bool
+    select APIC
+    select IOAPIC
+    select APM
+    select PC
+
+config PC_ACPI
+    bool
+    select ACPI_X86
+    select ACPI_CPU_HOTPLUG
+    select ACPI_MEMORY_HOTPLUG
+    depends on ACPI_SMBUS
+
 config I440FX
     bool
+    select PC_PCI
+    select PC_ACPI
+    select ACPI_SMBUS
+    select PCI_PIIX
+    select FDC
+    select IDE_PIIX
+    select DIMM
+    select SMBIOS
+    select VMPORT
+    select VMMOUSE
+    select FW_CFG_DMA
 
 config ISAPC
     bool
     select ISA_BUS
+    select PC
+    select IDE_ISA
+    select VGA_ISA
+    # FIXME: it is in the same file as i440fx, and does not compile
+    # if separated
+    depends on I440FX
 
 config Q35
     bool
+    select PC_PCI
+    select PC_ACPI
+    select PCI_EXPRESS_Q35
+    select LPC_ICH9
+    select AHCI
+    select DIMM
+    select SMBIOS
+    select VMPORT
+    select VMMOUSE
+    select FW_CFG_DMA
 
 config VTD
+    default y if Q35
     bool
 
 config AMD_IOMMU
+    default y if Q35
     bool
 
 config VMPORT
@@ -26,3 +79,4 @@ config VMPORT
 
 config VMMOUSE
     bool
+    depends on VMPORT
diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index af68af9..6f0812d 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -27,4 +27,5 @@ config SMC37C669
 config LPC_ICH9
     bool
     select ISA_BUS
+    select ACPI_SMBUS
     select ACPI_X86_ICH
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index c01812a..ff4080c 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -27,10 +27,14 @@ config PCI_SABRE
 
 config PCI_PIIX
     bool
+    select PCI
+    select PAM
+    select ISA_BUS
 
 config PCI_EXPRESS_Q35
     bool
     select PCI_EXPRESS
+    select PAM
 
 config PCI_EXPRESS_GENERIC_BRIDGE
     bool
diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
index db57388..8a63597 100644
--- a/hw/tpm/Kconfig
+++ b/hw/tpm/Kconfig
@@ -8,6 +8,8 @@ config TPM_TIS
 
 config TPM_CRB
     bool
+    default y
+    depends on TPM && PC
 
 config TPM_PASSTHROUGH
     bool
-- 
1.8.3.1



Re: [Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Thomas Huth 7 years ago
On 2019-01-25 11:07, Paolo Bonzini wrote:
> This way, the default-configs file only need to specify the boards
> and any optional devices.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> Message-Id: <20190123065618.3520-37-yang.zhong@intel.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
[...]
> diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
> index ff41be3..8814b7c 100644
> --- a/hw/i386/Kconfig
> +++ b/hw/i386/Kconfig
> @@ -5,20 +5,73 @@ config SEV
>  config PC
>      bool
>  
> +config PC
> +    bool
> +    select ISA_DEBUG
> +    select I8259
> +    select I8254
> +    select PCSPK
> +    select I82374
> +    select I8257
> +    select MC146818RTC

You've duplicated the "config PC" line here. The "select"s should be
added to the previous "config PC" section instead.

 Thomas

Re: [Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Philippe Mathieu-Daudé 7 years ago
Hi Paolo,

On 1/25/19 11:07 AM, Paolo Bonzini wrote:
> This way, the default-configs file only need to specify the boards
> and any optional devices.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> Message-Id: <20190123065618.3520-37-yang.zhong@intel.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  default-configs/i386-softmmu.mak | 44 ++++++--------------------------
>  hw/acpi/Kconfig                  |  3 +++
>  hw/i2c/Makefile.objs             |  2 +-
>  hw/i386/Kconfig                  | 54 ++++++++++++++++++++++++++++++++++++++++
>  hw/isa/Kconfig                   |  1 +
>  hw/pci-host/Kconfig              |  4 +++
>  hw/tpm/Kconfig                   |  2 ++
>  7 files changed, 73 insertions(+), 37 deletions(-)
> 
> diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
> index 8e6a810..9eb9a5e 100644
> --- a/default-configs/i386-softmmu.mak
> +++ b/default-configs/i386-softmmu.mak
> @@ -1,11 +1,6 @@
>  # Default configuration for i386-softmmu
>  
> -CONFIG_PCI=y
> -CONFIG_PCI_DEVICES=y
> -CONFIG_ISA_BUS=y
>  include hyperv.mak
> -CONFIG_VGA_ISA=y
> -CONFIG_VMWARE_VGA=y
>  CONFIG_VMXNET3_PCI=y
>  CONFIG_VIRTIO_VGA=y
>  CONFIG_IPMI=y
> @@ -13,49 +8,26 @@ CONFIG_IPMI_LOCAL=y
>  CONFIG_IPMI_EXTERN=y
>  CONFIG_ISA_IPMI_KCS=y
>  CONFIG_ISA_IPMI_BT=y
> -CONFIG_I8254=y
> -CONFIG_ACPI=y
> -CONFIG_ACPI_X86=y
> -CONFIG_ACPI_X86_ICH=y
> -CONFIG_ACPI_MEMORY_HOTPLUG=y
> -CONFIG_ACPI_CPU_HOTPLUG=y
> -CONFIG_APM=y
> -CONFIG_I8257=y
> -CONFIG_IDE_ISA=y
> -CONFIG_IDE_PIIX=y
> +
> +# Optional devices:
> +#
>  CONFIG_HPET=y
>  CONFIG_APPLESMC=y
> -CONFIG_I8259=y
>  CONFIG_PFLASH_CFI01=y
> -CONFIG_MC146818RTC=y
> -CONFIG_PCI_PIIX=y
> -CONFIG_ISA_DEBUG=y
>  CONFIG_ISA_TESTDEV=y
> -CONFIG_VMPORT=y
>  CONFIG_SGA=y
> -CONFIG_LPC_ICH9=y
> -CONFIG_PCI_EXPRESS=y
> -CONFIG_PCI_EXPRESS_Q35=y
> -CONFIG_APIC=y
> -CONFIG_IOAPIC=y
>  CONFIG_PVPANIC=y
>  CONFIG_MEM_DEVICE=y
> -CONFIG_DIMM=y
>  CONFIG_NVDIMM=y
>  CONFIG_ACPI_NVDIMM=y
> -CONFIG_XIO3130=y
> -CONFIG_IOH3420=y
> -CONFIG_I82801B11=y
> -CONFIG_SMBIOS=y
>  CONFIG_PXB=y
>  CONFIG_ACPI_VMGENID=y
> -CONFIG_ACPI_SMBUS=y
>  CONFIG_SMBUS_EEPROM=y
> -CONFIG_FW_CFG_DMA=y
>  CONFIG_I2C=y
> -CONFIG_VTD=y
> -CONFIG_AMD_IOMMU=y
> -CONFIG_PAM=y
> -CONFIG_PC=y
> +CONFIG_PCI_DEVICES=y
> +
> +# Boards:
> +#
> +CONFIG_ISAPC=y
>  CONFIG_I440FX=y
>  CONFIG_Q35=y
> diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig
> index c485a34..035a28f 100644
> --- a/hw/acpi/Kconfig
> +++ b/hw/acpi/Kconfig
> @@ -3,15 +3,18 @@ config ACPI
>  
>  config ACPI_X86
>      bool
> +    select ACPI
>  
>  config ACPI_X86_ICH
>      bool
> +    select ACPI_X86
>  
>  config ACPI_CPU_HOTPLUG
>      bool
>  
>  config ACPI_MEMORY_HOTPLUG
>      bool
> +    select MEM_DEVICE
>  
>  config ACPI_NVDIMM
>      bool
> diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
> index 61ac50a..ff22aa6 100644
> --- a/hw/i2c/Makefile.objs
> +++ b/hw/i2c/Makefile.objs
> @@ -2,7 +2,7 @@ common-obj-$(CONFIG_I2C) += core.o smbus.o
>  common-obj-$(CONFIG_SMBUS_EEPROM) += smbus_eeprom.o
>  common-obj-$(CONFIG_DDC) += i2c-ddc.o
>  common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
> -common-obj-$(CONFIG_ACPI_X86) += smbus_ich9.o
> +common-obj-$(CONFIG_ACPI_X86_ICH) += smbus_ich9.o
>  common-obj-$(CONFIG_ACPI_SMBUS) += pm_smbus.o
>  common-obj-$(CONFIG_BITBANG_I2C) += bitbang_i2c.o
>  common-obj-$(CONFIG_EXYNOS4) += exynos4210_i2c.o
> diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
> index ff41be3..8814b7c 100644
> --- a/hw/i386/Kconfig
> +++ b/hw/i386/Kconfig
> @@ -5,20 +5,73 @@ config SEV
>  config PC
>      bool
>  
> +config PC
> +    bool
> +    select ISA_DEBUG
> +    select I8259
> +    select I8254
> +    select PCSPK
> +    select I82374
> +    select I8257
> +    select MC146818RTC
> +
> +config PC_PCI
> +    bool
> +    select APIC
> +    select IOAPIC
> +    select APM
> +    select PC
> +
> +config PC_ACPI
> +    bool
> +    select ACPI_X86
> +    select ACPI_CPU_HOTPLUG
> +    select ACPI_MEMORY_HOTPLUG
> +    depends on ACPI_SMBUS
> +
>  config I440FX
>      bool
> +    select PC_PCI
> +    select PC_ACPI
> +    select ACPI_SMBUS
> +    select PCI_PIIX
> +    select FDC
> +    select IDE_PIIX
> +    select DIMM
> +    select SMBIOS
> +    select VMPORT
> +    select VMMOUSE
> +    select FW_CFG_DMA
>  
>  config ISAPC
>      bool
>      select ISA_BUS
> +    select PC
> +    select IDE_ISA
> +    select VGA_ISA
> +    # FIXME: it is in the same file as i440fx, and does not compile
> +    # if separated
> +    depends on I440FX
>  
>  config Q35
>      bool
> +    select PC_PCI
> +    select PC_ACPI
> +    select PCI_EXPRESS_Q35
> +    select LPC_ICH9
> +    select AHCI
> +    select DIMM
> +    select SMBIOS
> +    select VMPORT
> +    select VMMOUSE
> +    select FW_CFG_DMA

This lacks a DISPLAY dependency?

$ i386-softmmu/qemu-system-i386 -M q35
qemu-system-i386: Unknown device 'VGA' for bus 'PCIE'
Aborted (core dumped)

PCIDevice *pci_vga_init(PCIBus *bus)
{
    switch (vga_interface_type) {
    case VGA_CIRRUS:
        return pci_create_simple(bus, -1, "cirrus-vga");
    case VGA_QXL:
        return pci_create_simple(bus, -1, "qxl-vga");
    case VGA_STD:
        return pci_create_simple(bus, -1, "VGA");
    case VGA_VMWARE:
        return pci_create_simple(bus, -1, "vmware-svga");
    case VGA_VIRTIO:
        return pci_create_simple(bus, -1, "virtio-vga");
    case VGA_NONE:
    default: /* Other non-PCI types. Checking for unsupported types is
already
                done in vl.c. */
        return NULL;
    }
}

If so, how to express "at least one of *TYPE"?

>  
>  config VTD
> +    default y if Q35
>      bool
>  
>  config AMD_IOMMU
> +    default y if Q35
>      bool
>  
>  config VMPORT
> @@ -26,3 +79,4 @@ config VMPORT
>  
>  config VMMOUSE
>      bool
> +    depends on VMPORT
> diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
> index af68af9..6f0812d 100644
> --- a/hw/isa/Kconfig
> +++ b/hw/isa/Kconfig
> @@ -27,4 +27,5 @@ config SMC37C669
>  config LPC_ICH9
>      bool
>      select ISA_BUS
> +    select ACPI_SMBUS
>      select ACPI_X86_ICH
> diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
> index c01812a..ff4080c 100644
> --- a/hw/pci-host/Kconfig
> +++ b/hw/pci-host/Kconfig
> @@ -27,10 +27,14 @@ config PCI_SABRE
>  
>  config PCI_PIIX
>      bool
> +    select PCI
> +    select PAM
> +    select ISA_BUS
>  
>  config PCI_EXPRESS_Q35
>      bool
>      select PCI_EXPRESS
> +    select PAM
>  
>  config PCI_EXPRESS_GENERIC_BRIDGE
>      bool
> diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig
> index db57388..8a63597 100644
> --- a/hw/tpm/Kconfig
> +++ b/hw/tpm/Kconfig
> @@ -8,6 +8,8 @@ config TPM_TIS
>  
>  config TPM_CRB
>      bool
> +    default y
> +    depends on TPM && PC
>  
>  config TPM_PASSTHROUGH
>      bool
> 

Re: [Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Paolo Bonzini 7 years ago
On 01/02/19 16:05, Philippe Mathieu-Daudé wrote:
> This lacks a DISPLAY dependency?
> 
> $ i386-softmmu/qemu-system-i386 -M q35
> qemu-system-i386: Unknown device 'VGA' for bus 'PCIE'
> Aborted (core dumped)

If you build --without-default-devices, you pretty much have to do one
of two things: 1) enable some devices yourself; 2) always run QEMU with
-nodefaults.

Paolo

> PCIDevice *pci_vga_init(PCIBus *bus)
> {
>     switch (vga_interface_type) {
>     case VGA_CIRRUS:
>         return pci_create_simple(bus, -1, "cirrus-vga");
>     case VGA_QXL:
>         return pci_create_simple(bus, -1, "qxl-vga");
>     case VGA_STD:
>         return pci_create_simple(bus, -1, "VGA");
>     case VGA_VMWARE:
>         return pci_create_simple(bus, -1, "vmware-svga");
>     case VGA_VIRTIO:
>         return pci_create_simple(bus, -1, "virtio-vga");
>     case VGA_NONE:
>     default: /* Other non-PCI types. Checking for unsupported types is
> already
>                 done in vl.c. */
>         return NULL;
>     }
> }
> 
> If so, how to express "at least one of *TYPE"?
> 


Re: [Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Paolo Bonzini 6 years, 12 months ago
On 01/02/19 16:05, Philippe Mathieu-Daudé wrote:
> This lacks a DISPLAY dependency?
> 
> $ i386-softmmu/qemu-system-i386 -M q35
> qemu-system-i386: Unknown device 'VGA' for bus 'PCIE'
> Aborted (core dumped)

If you got this with --without-default-devices, then it's intended behavior.

VGA_PCI is selected via CONFIG_PCI_DEVICES.

Paolo

Re: [Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Michael S. Tsirkin 6 years, 12 months ago
On Thu, Feb 14, 2019 at 05:47:08PM +0100, Paolo Bonzini wrote:
> On 01/02/19 16:05, Philippe Mathieu-Daudé wrote:
> > This lacks a DISPLAY dependency?
> > 
> > $ i386-softmmu/qemu-system-i386 -M q35
> > qemu-system-i386: Unknown device 'VGA' for bus 'PCIE'
> > Aborted (core dumped)
> 
> If you got this with --without-default-devices, then it's intended behavior.
> 
> VGA_PCI is selected via CONFIG_PCI_DEVICES.
> 
> Paolo

OK but I guess as a follow-up patch we can hide things that don't work,
or select things that are required?

-- 
MST

Re: [Qemu-devel] [PATCH 42/52] i386: express dependencies with Kconfig
Posted by Paolo Bonzini 6 years, 12 months ago
On 14/02/19 17:54, Michael S. Tsirkin wrote:
> On Thu, Feb 14, 2019 at 05:47:08PM +0100, Paolo Bonzini wrote:
>> On 01/02/19 16:05, Philippe Mathieu-Daudé wrote:
>>> This lacks a DISPLAY dependency?
>>>
>>> $ i386-softmmu/qemu-system-i386 -M q35
>>> qemu-system-i386: Unknown device 'VGA' for bus 'PCIE'
>>> Aborted (core dumped)
>>
>> If you got this with --without-default-devices, then it's intended behavior.
>>
>> VGA_PCI is selected via CONFIG_PCI_DEVICES.
> 
> OK but I guess as a follow-up patch we can hide things that don't work,
> or select things that are required?

It is not required; if you use "-nodefaults" you can build without
CONFIG_VGA_PCI (the failure mode is horrible, granted; it's the same
today if you modify pci.mak).  The documentation explains this for
--without-default-devices:

  When QEMU is built with this option, the user will probably
  want to change some lines in the first group, for example like this::

    CONFIG_PCI_DEVICES=y
    #CONFIG_TEST_DEVICES=n

  and/or pick a subset of the devices in those device groups.

Paolo