[+cc Rafael, linux-acpi, start of thread at https://lore.kernel.org/lkml/PSXP216MB0438F3D8C09957C6A45BC43D80580@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/#u] On Fri, Jan 17, 2020 at 03:00:11PM +0000, Nicholas Johnson wrote: > On Thu, Jan 16, 2020 at 11:13:13PM +0100, Thomas Gleixner wrote: > > Nicholas Johnson <nicholas.johnson-opensource@xxxxxxxxxxxxxx> writes: > > > > > Add pci=nobbn kernel parameter. > > > > > > Override the host bridge bus resource to [bus 00-ff] when specified. > > > > Fine, but you completely fail to explain why this is useful and why > > someone would utilize this command line parameter. > > There are motherboards with single PCIe root complex which give > significantly less than [bus 00-ff] via CRS. I own one with [bus 00-7f] > and have seen some with significantly less. > > A user who wants to use more busses than the motherboard advertises will > want to use this kernel parameter, for instance if they have a lot of > PCIe switches or Thunderbolt 3 devices. I don't think this is a good idea. "pci=nocrs" was mainly useful to work around Linux defects in handling _CRS methods. I don't think we have comparable defects in our handling of _BBN. In your example, the BIOS is telling us the bridge leads to [bus 00-7f]. We don't know what is at [bus 80-ff]. Maybe that range is valid and usable, and maybe it's not. It could be routed to a different host bridge, it could contain devices the BIOS uses for its own purposes, it could be completely invalid. If we *did* decide this is a good idea, "nobbn" is a misleading name. _BBN evaluates to a single bus number, not a range. In your example, BIOS is supplying _BBN=0 and _CRS that contains [bus 00-7f]. "nobbn" suggests that'd we'd ignore _BBN. But this patch actually ignores the bus number range from _CRS, so it has nothing to do with _BBN. > This is similar to how we have pci=nocrs to override motherboards with > issues. The bus resource is not overridden by pci=nocrs, even though it > will usually come from the same method. However, I believe it would be > unwise to change pci=nocrs to include bus resource, as detailed in my > original RFC. For reference, I think this original RFC was https://lore.kernel.org/r/PSXP216MB04385B2C1BB518E5219C30CE80580@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Bjorn