diff mbox series

[1/2] kconfig: add CONFIG_MSI

Message ID 20190314143032.16870-2-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show
Series kconfig: add fine-grained dependencies for MSI | expand

Commit Message

Paolo Bonzini March 14, 2019, 2:30 p.m. UTC
Not all interrupt controllers support message-signalled interrupts,
and some devices *only* support message-signalled interrupts.

In QEMU this is represented by the "msi_nonbroken" variable.  This
patch adds a new configuration symbol enabled whenever the binary
contains an interrupt controller that will set "msi_nonbroken".  We
can then use it to remove devices that cannot be possibly added
to the machine, because they require MSI.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/intc/Kconfig     | 3 +++
 hw/pci-host/Kconfig | 1 +
 hw/pci/Kconfig      | 4 ++++
 hw/ppc/Kconfig      | 1 +
 hw/s390x/Kconfig    | 1 +
 5 files changed, 10 insertions(+)

Comments

Philippe Mathieu-Daudé March 14, 2019, 10:19 p.m. UTC | #1
On 3/14/19 3:30 PM, Paolo Bonzini wrote:
> Not all interrupt controllers support message-signalled interrupts,
> and some devices *only* support message-signalled interrupts.
> 
> In QEMU this is represented by the "msi_nonbroken" variable.  This
> patch adds a new configuration symbol enabled whenever the binary
> contains an interrupt controller that will set "msi_nonbroken".  We
> can then use it to remove devices that cannot be possibly added
> to the machine, because they require MSI.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  hw/intc/Kconfig     | 3 +++
>  hw/pci-host/Kconfig | 1 +
>  hw/pci/Kconfig      | 4 ++++
>  hw/ppc/Kconfig      | 1 +
>  hw/s390x/Kconfig    | 1 +
>  5 files changed, 10 insertions(+)
> 
> diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
> index de10a6bcbf..e78b5db3be 100644
> --- a/hw/intc/Kconfig
> +++ b/hw/intc/Kconfig
> @@ -12,12 +12,15 @@ config IOAPIC
>  
>  config ARM_GIC
>      bool
> +    select MSI
>  
>  config OPENPIC
>      bool
> +    select MSI
>  
>  config APIC
>      bool
> +    select MSI
>  
>  config ARM_GIC_KVM
>      bool
> diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
> index b39ea297ba..58c99f55fa 100644
> --- a/hw/pci-host/Kconfig
> +++ b/hw/pci-host/Kconfig
> @@ -49,3 +49,4 @@ config PCI_EXPRESS_XILINX
>  config PCI_EXPRESS_DESIGNWARE
>      bool
>      select PCI_EXPRESS
> +    select MSI
> diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
> index 3b8638b51d..574b5d4a4a 100644
> --- a/hw/pci/Kconfig
> +++ b/hw/pci/Kconfig
> @@ -7,3 +7,7 @@ config PCI_EXPRESS
>  
>  config PCI_DEVICES
>      bool
> +
> +config MSI

Can we use PCI_MSI?

> +    # selected by interrupt controllers that support MSI
> +    bool
> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
> index 2b83637511..c14f7ea4fe 100644
> --- a/hw/ppc/Kconfig
> +++ b/hw/ppc/Kconfig
> @@ -8,6 +8,7 @@ config PSERIES
>      select VFIO if LINUX   # needed by spapr_pci_vfio.c
>      select XICS_SPAPR
>      select XIVE_SPAPR
> +    select MSI
>  
>  config SPAPR_RNG
>      bool
> diff --git a/hw/s390x/Kconfig b/hw/s390x/Kconfig
> index a7046ea41f..ac0f335584 100644
> --- a/hw/s390x/Kconfig
> +++ b/hw/s390x/Kconfig
> @@ -9,3 +9,4 @@ config S390_CCW_VIRTIO
>      select S390_FLIC
>      select SCLPCONSOLE
>      select VIRTIO_CCW
> +    select MSI
>
Paolo Bonzini March 15, 2019, 11:51 a.m. UTC | #2
On 14/03/19 23:19, Philippe Mathieu-Daudé wrote:
>>  config PCI_DEVICES
>>      bool
>> +
>> +config MSI
> Can we use PCI_MSI?
> 

No, because it is a property of the interrupt controller, not of the PCI
host bridge.

Paolo
diff mbox series

Patch

diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
index de10a6bcbf..e78b5db3be 100644
--- a/hw/intc/Kconfig
+++ b/hw/intc/Kconfig
@@ -12,12 +12,15 @@  config IOAPIC
 
 config ARM_GIC
     bool
+    select MSI
 
 config OPENPIC
     bool
+    select MSI
 
 config APIC
     bool
+    select MSI
 
 config ARM_GIC_KVM
     bool
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig
index b39ea297ba..58c99f55fa 100644
--- a/hw/pci-host/Kconfig
+++ b/hw/pci-host/Kconfig
@@ -49,3 +49,4 @@  config PCI_EXPRESS_XILINX
 config PCI_EXPRESS_DESIGNWARE
     bool
     select PCI_EXPRESS
+    select MSI
diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig
index 3b8638b51d..574b5d4a4a 100644
--- a/hw/pci/Kconfig
+++ b/hw/pci/Kconfig
@@ -7,3 +7,7 @@  config PCI_EXPRESS
 
 config PCI_DEVICES
     bool
+
+config MSI
+    # selected by interrupt controllers that support MSI
+    bool
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 2b83637511..c14f7ea4fe 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -8,6 +8,7 @@  config PSERIES
     select VFIO if LINUX   # needed by spapr_pci_vfio.c
     select XICS_SPAPR
     select XIVE_SPAPR
+    select MSI
 
 config SPAPR_RNG
     bool
diff --git a/hw/s390x/Kconfig b/hw/s390x/Kconfig
index a7046ea41f..ac0f335584 100644
--- a/hw/s390x/Kconfig
+++ b/hw/s390x/Kconfig
@@ -9,3 +9,4 @@  config S390_CCW_VIRTIO
     select S390_FLIC
     select SCLPCONSOLE
     select VIRTIO_CCW
+    select MSI