mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] Don't touch BARs of host bridges
@ 2004-12-10  0:20 Maciej W. Rozycki
  2004-12-10  4:46 ` Benjamin Herrenschmidt
  2004-12-17 21:46 ` Greg KH
  0 siblings, 2 replies; 6+ messages in thread
From: Maciej W. Rozycki @ 2004-12-10  0:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-kernel, Chris Dearman, Maciej W. Rozycki

Hello,

 BARs of host bridges often have special meaning and AFAIK are best left 
to be setup by the firmware or system-specific startup code and kept 
intact by the generic resource handler.  For example a couple of host 
bridges used for MIPS processors interpret BARs as target-mode decoders 
for accessing host memory by PCI masters (which is quite reasonable).  
For them it's desirable to keep their decoded address range overlapping 
with the host RAM for simplicity if nothing else (I can imagine running 
out of address space with lots of memory and 32-bit PCI with no DAC 
support in the participating devices).

 This is already the case with the i386 and ppc platform-specific PCI 
resource allocators.  Please consider the following change for the generic 
allocator.  Currently we have a pile of hacks implemented for host bridges 
to be left untouched and I'd be pleased to remove them.

  Maciej

patch-mips-2.6.10-rc2-20041124-pci-hb-0
diff -up --recursive --new-file linux-mips-2.6.10-rc2-20041124.macro/drivers/pci/setup-bus.c linux-mips-2.6.10-rc2-20041124/drivers/pci/setup-bus.c
--- linux-mips-2.6.10-rc2-20041124.macro/drivers/pci/setup-bus.c	2004-11-12 13:12:47.000000000 +0000
+++ linux-mips-2.6.10-rc2-20041124/drivers/pci/setup-bus.c	2004-12-08 13:32:06.000000000 +0000
@@ -57,8 +57,13 @@ pbus_assign_resources_sorted(struct pci_
 	list_for_each_entry(dev, &bus->devices, bus_list) {
 		u16 class = dev->class >> 8;
 
-		if (class == PCI_CLASS_DISPLAY_VGA
-				|| class == PCI_CLASS_NOT_DEFINED_VGA)
+		/* Don't touch classless devices and host bridges.  */
+		if (class == PCI_CLASS_NOT_DEFINED ||
+		    class == PCI_CLASS_BRIDGE_HOST)
+			continue;
+
+		if (class == PCI_CLASS_DISPLAY_VGA ||
+		    class == PCI_CLASS_NOT_DEFINED_VGA)
 			bus->bridge_ctl |= PCI_BRIDGE_CTL_VGA;
 
 		pdev_sort_resources(dev, &head);

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

end of thread, other threads:[~2004-12-17 21:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-10  0:20 [PATCH] Don't touch BARs of host bridges Maciej W. Rozycki
2004-12-10  4:46 ` Benjamin Herrenschmidt
2004-12-10 13:11   ` Maciej W. Rozycki
2004-12-10 21:25     ` Benjamin Herrenschmidt
2004-12-13  2:46       ` Maciej W. Rozycki
2004-12-17 21:46 ` Greg KH

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

Powered by JetHome