public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/7] PCI: try enabling "pci=use_crs" again
@ 2010-02-03 23:38 Bjorn Helgaas
  2010-02-03 23:39 ` [PATCH v1 1/7] x86/PCI: remove IOH range fetching Bjorn Helgaas
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Bjorn Helgaas @ 2010-02-03 23:38 UTC (permalink / raw)
  To: Jesse Barnes
  Cc: Matthew Garrett, Tony Luck, linux-pci, Peter Haight, Gary Hade,
	linux-kernel, linux-acpi, Yinghai Lu, Ingo Molnar, Linus Torvalds,
	Larry Finger

Historically, Linux has assumed a single PCI host bridge, with that bridge
claiming all the address space left after RAM and legacy devices are taken out.

If the system contains multiple host bridges, we can no longer operate under
that assumption.  We have to know what parts of the address space are claimed
by each bridge so that when we assign resources to a PCI device, we take them
from a range claimed by the upstream host bridge.

We use ACPI to enumerate all the PCI host bridges in the system, and part of
the host bridge description is the "_CRS" (current resource settings" property,
which lists the address space used by the bridge.  On x86, we currently ignore
most of the _CRS information.  This patch series changes this, so we will use
_CRS to learn about the host bridge windows.

Since most x86 machines with multiple host bridges are relatively new, this
series only turns this on for machines with BIOS dates of 2010 or newer and for
a few machines that we know need it.

These apply on 0148b041be4e7, which is the current head of the linux-next
branch of Jesse's pci-2.6 git tree.  The first patch is just Jeff Garrett's
patch to remove intel_bus.c, so that is only here for people who want to test
the rest of the patches.  I expect Jesse will pick up Jeff's patch via Linus'
tree.

Gary and Peter have some of these problem machines, so I'm hoping they can give
this a whirl.

Larry, you reported the problem the last time I tried to turn on "pci=use_crs"
by default.  This series shouldn't affect your machine because it's not in the
whitelist, but I expect that if you boot the current kernel with "pci=use_crs",
it should still fail, and if you boot with these patches and "pci=use_crs", it
*should* work.  I know it's a lot to ask, but it'd be great if you had a chance
to try that.

Bjorn

---

Bjorn Helgaas (7):
      x86/PCI: remove IOH range fetching
      PCI: break out primary/secondary/subordinate for readability
      PCI: split up pci_read_bridge_bases()
      PCI: read bridge windows before filling in subtractive decode resources
      PCI: replace bus resource table with a list
      x86/PCI: use host bridge _CRS info by default on 2010 and newer machines
      PCI: reference bridge window resources explicitly


 Documentation/kernel-parameters.txt |    8 +-
 arch/ia64/include/asm/acpi.h        |    1 
 arch/ia64/pci/pci.c                 |   20 ++--
 arch/x86/include/asm/pci_x86.h      |    1 
 arch/x86/pci/Makefile               |    2 
 arch/x86/pci/acpi.c                 |  105 +++++++++++++++-------
 arch/x86/pci/bus_numa.c             |    9 +-
 arch/x86/pci/common.c               |    3 +
 arch/x86/pci/intel_bus.c            |   94 --------------------
 drivers/acpi/pci_root.c             |    1 
 drivers/pci/bus.c                   |   50 ++++++++++-
 drivers/pci/hotplug/shpchp_sysfs.c  |   15 ++-
 drivers/pci/pci.c                   |    6 +
 drivers/pci/probe.c                 |  102 +++++++++++++++-------
 drivers/pci/quirks.c                |    4 -
 drivers/pci/setup-bus.c             |  166 ++++++++++++++++++-----------------
 drivers/pcmcia/rsrc_nonstatic.c     |    7 +
 drivers/pcmcia/yenta_socket.c       |   46 ++++++----
 include/acpi/acpi_drivers.h         |    1 
 include/linux/pci.h                 |   27 ++++--
 20 files changed, 367 insertions(+), 301 deletions(-)
 delete mode 100644 arch/x86/pci/intel_bus.c

-- 

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2010-02-08 20:00 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-03 23:38 [PATCH v1 0/7] PCI: try enabling "pci=use_crs" again Bjorn Helgaas
2010-02-03 23:39 ` [PATCH v1 1/7] x86/PCI: remove IOH range fetching Bjorn Helgaas
2010-02-03 23:39 ` [PATCH v1 2/7] PCI: break out primary/secondary/subordinate for readability Bjorn Helgaas
2010-02-03 23:39 ` [PATCH v1 3/7] PCI: split up pci_read_bridge_bases() Bjorn Helgaas
2010-02-08 19:59   ` Jesse Barnes
2010-02-03 23:39 ` [PATCH v1 4/7] PCI: read bridge windows before filling in subtractive decode resources Bjorn Helgaas
2010-02-03 23:39 ` [PATCH v1 5/7] PCI: replace bus resource table with a list Bjorn Helgaas
2010-02-03 23:39 ` [PATCH v1 6/7] x86/PCI: use host bridge _CRS info by default on 2010 and newer machines Bjorn Helgaas
2010-02-03 23:39 ` [PATCH v1 7/7] PCI: reference bridge window resources explicitly Bjorn Helgaas
2010-02-04  0:04 ` [PATCH v1 0/7] PCI: try enabling "pci=use_crs" again Linus Torvalds
2010-02-04  4:37 ` Larry Finger
2010-02-04 17:55   ` Bjorn Helgaas
2010-02-04 22:36     ` Larry Finger
2010-02-04 22:55     ` Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox