powerpc/pci: Add config option for using all 256 PCI buses
authorPali Rohár <pali@kernel.org>
Wed, 6 Jul 2022 10:43:08 +0000 (12:43 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 27 Jul 2022 11:36:04 +0000 (21:36 +1000)
commit5663568130825458a2a8535ccef0db9a1bf7be82
treef1ae4fbcc60e366d1667beee46c1db546b36d3b7
parent7f102d61983275ab68b5ac2715afa35c5f4ffd86
powerpc/pci: Add config option for using all 256 PCI buses

By default on PPC32 PCI bus numbers are unique across all PCI domains.
So a system could have only 256 PCI buses independently of available PCI
domains.

This is due to filling DT property pci-OF-bus-map which does not support
a multi-domain setup.

On all powerpc platforms except chrp and powermac there is no DT
property pci-OF-bus-map anymore and therefore it is possible on
non-chrp/powermac platforms to avoid this limitation of maximum number
of 256 PCI buses in a system even on multi-domain setup.

But avoiding this limitation would mean that all PCI and PCIe devices
would be present on completely different BDF addresses as every PCI
domain starts numbering PCI bueses from zero (instead of the last bus
number of previous enumerated PCI domain). Such change could break
existing software which expects fixed PCI bus numbers.

So add a new config option CONFIG_PPC_PCI_BUS_NUM_DOMAIN_DEPENDENT which
enables this change. By default it is disabled. It causes the initial
value of hose->first_busno to be zero.

Signed-off-by: Pali Rohár <pali@kernel.org>
[mpe: Minor change log wording]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220706104308.5390-6-pali@kernel.org
arch/powerpc/Kconfig
arch/powerpc/kernel/pci_32.c