On 7/15/19 12:56 PM, Cornelia Huck wrote: > On Mon, 15 Jul 2019 12:48:55 +0200 > Thomas Huth <th...@redhat.com> wrote: > >> On 15/07/2019 12.19, Peter Maydell wrote: >>> On Mon, 15 Jul 2019 at 11:15, Thomas Huth <th...@redhat.com> wrote: >>>> >>>> On 15/07/2019 11.55, Philippe Mathieu-Daudé wrote: >>>>> If a controller device provides a PCI bus, we can plug any PCI >>>>> daughter card on it. >>>>> >>>>> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> >>>>> --- >>> >>>>> diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig >>>>> index 77f8b005ff..0f7267db35 100644 >>>>> --- a/hw/pci/Kconfig >>>>> +++ b/hw/pci/Kconfig >>>>> @@ -1,5 +1,6 @@ >>>>> config PCI >>>>> bool >>>>> + imply PCI_DEVICES >>>> >>>> No, please don't change this. This was done on purpose, since almost all >>>> PCI_DEVICES do not work on s390x (so s390x does *not* imply PCI_DEVICES). >>> >>> But that means that every board that provides PCI has to have an >>> "imply PCI_DEVICES" line, which is pretty clunky just to work >>> around an s390x limitation. >>> >>> Is there some way in the Kconfig syntax for s390x to say >>> "no PCI_DEVICES" so we can have the corner-case be handled >>> by the s390x Kconfig in one place rather than in 20 places >>> affecting everywhere except s390x? >> >> IIRC the problem on s390x are the legacy IRQs. s390x has only MSIs. So I >> guess the correct way to fix this would be to introduce some >> PCI_LEGACY_IRQ switch and let all old devices that do not work with MSI >> depend on it. > > s/MSI/MSI-X/, IIRC. Not sure how far 'legacy' would stretch.
Maybe we can have something like PCI_LEGACY_DEVICES and PCI_MSI_DEVICES? So if s390x only selects PCI_LEGACY (not PCI_MSI) bus, then it only get legacy devices? Other MSI compliant should select PCI_MSI instead. PCI alone seems to give troubles. > cc:ing Collin in case there's something else. >