Re: [Qemu-devel] [PATCH 1/2] kconfig: add CONFIG_MSI

2019-03-15 Thread Paolo Bonzini
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



Re: [Qemu-devel] [PATCH 1/2] kconfig: add CONFIG_MSI

2019-03-14 Thread Philippe Mathieu-Daudé
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 
> ---
>  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
> 



[Qemu-devel] [PATCH 1/2] kconfig: add CONFIG_MSI

2019-03-14 Thread Paolo Bonzini
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 
---
 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
+# 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
-- 
2.20.1