linux/arch/x86/pci
Mike Habeck 7bd1c365fd x86/PCI: Add option to not assign BAR's if not already assigned
The Linux kernel assigns BARs that a BIOS did not assign, most likely
to handle broken BIOSes that didn't enumerate the devices correctly.
On UV the BIOS purposely doesn't assign I/O BARs for certain devices/
drivers we know don't use them (examples, LSI SAS, Qlogic FC, ...).
We purposely don't assign these I/O BARs because I/O Space is a very
limited resource.  There is only 64k of I/O Space, and in a PCIe
topology that space gets divided up into 4k chucks (this is due to
the fact that a pci-to-pci bridge's I/O decoder is aligned at 4k)...
Thus a system can have at most 16 cards with I/O BARs: (64k / 4k = 16)

SGI needs to scale to >16 devices with I/O BARs.  So by not assigning
I/O BARs on devices we know don't use them, we can do that (iff the
kernel doesn't go and assign these BARs that the BIOS purposely didn't
assign).

This patch will not assign a resource to a device BAR if that BAR was
not assigned by the BIOS, and the kernel cmdline option 'pci=nobar'
was specified.   This patch is closely modeled after the 'pci=norom'
option that currently exists in the tree.

Signed-off-by: Mike Habeck <habeck@sgi.com>
Signed-off-by: Mike Travis <travis@sgi.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-07-30 09:29:12 -07:00
..
acpi.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-30 09:06:13 -07:00
amd_bus.c x86: Change range end to start+size 2010-02-10 17:47:17 -08:00
broadcom_bus.c PCI: read memory ranges out of Broadcom CNB20LE host bridge 2010-05-21 14:43:46 -07:00
bus_numa.c Merge branch 'x86-bootmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-03 08:15:05 -08:00
bus_numa.h Merge branch 'x86-bootmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-03 08:15:05 -08:00
common.c x86/PCI: Add option to not assign BAR's if not already assigned 2010-07-30 09:29:12 -07:00
direct.c x86/PCI: Convert pci_config_lock to raw_spinlock 2010-05-11 12:01:09 -07:00
early.c x86/PCI: remove early PCI pr_debug statements 2009-11-24 15:25:19 -08:00
fixup.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-04-01 09:47:12 -07:00
i386.c PCI: fall back to original BIOS BAR addresses 2010-07-16 11:39:48 -07:00
init.c x86, olpc: Use pci subarch init for OLPC 2010-02-25 19:26:23 -08:00
irq.c x86/PCI: irq and pci_ids patch for additional Intel Cougar Point DeviceIDs 2010-05-11 12:01:40 -07:00
legacy.c x86/PCI: pci, fix section mismatch 2010-07-30 09:29:09 -07:00
Makefile PCI: read memory ranges out of Broadcom CNB20LE host bridge 2010-05-21 14:43:46 -07:00
mmconfig-shared.c x86/PCI: make ACPI MCFG reserved error messages ACPI specific 2010-05-18 15:03:27 -07:00
mmconfig_32.c x86/PCI: Convert pci_config_lock to raw_spinlock 2010-05-11 12:01:09 -07:00
mmconfig_64.c x86/PCI: MMCONFIG: add lookup function 2009-11-24 15:30:36 -08:00
mrst.c x86, pci, mrst: Add extra sanity check in walking the PCI extended cap chain 2010-07-16 16:52:15 -07:00
numaq_32.c x86/PCI: Convert pci_config_lock to raw_spinlock 2010-05-11 12:01:09 -07:00
olpc.c x86, olpc: Use pci subarch init for OLPC 2010-02-25 19:26:23 -08:00
pcbios.c x86/PCI: Convert pci_config_lock to raw_spinlock 2010-05-11 12:01:09 -07:00
visws.c x86: Move pci init function to x86_init 2010-02-19 16:12:29 -08:00