[OpenBIOS] [commit] r1376 - trunk/openbios-devel/drivers

repository service svn at openbios.org
Fri Jan 8 13:09:46 CET 2016


Author: mcayland
Date: Fri Jan  8 13:09:46 2016
New Revision: 1376
URL: http://tracker.coreboot.org/trac/openbios/changeset/1376

Log:
pci: remove the configuration space range from the PCI host bridge by default

While the configuration space range appears in real SPARC device trees, it
isn't mentioned in the IEEE-1275 PCI bindings and in fact causes Darwin/OS X
to calculate PCI address spaces incorrectly.

Disable this range in the PCI host bridge by default, except for SPARC64
where it can evidently still appear.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
Reviewed-by: Alexander Graf <agraf at suse.de>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>

Modified:
   trunk/openbios-devel/drivers/pci.c

Modified: trunk/openbios-devel/drivers/pci.c
==============================================================================
--- trunk/openbios-devel/drivers/pci.c	Fri Jan  8 13:09:44 2016	(r1375)
+++ trunk/openbios-devel/drivers/pci.c	Fri Jan  8 13:09:46 2016	(r1376)
@@ -460,13 +460,18 @@
 	int ncells;
 
 	ncells = 0;
-	/* first encode PCI configuration space */
-	{
-	    ncells += pci_encode_phys_addr(props + ncells, 0, CONFIGURATION_SPACE,
+	
+#ifdef CONFIG_SPARC64
+        /* While configuration space isn't mentioned in the IEEE-1275 PCI
+           bindings, it appears in the PCI host bridge ranges property in
+           real device trees. Hence we disable this range for all host
+           bridges except for SPARC, particularly as it causes Darwin/OS X
+           to incorrectly calculated PCI memory space ranges on PPC. */
+	ncells += pci_encode_phys_addr(props + ncells, 0, CONFIGURATION_SPACE,
                      config->dev, 0, 0);
         ncells += host_encode_phys_addr(props + ncells, arch->cfg_addr);
         ncells += pci_encode_size(props + ncells, arch->cfg_len);
-	}
+#endif
 
 	if (arch->io_base) {
 	    ncells += pci_encode_phys_addr(props + ncells, 0, IO_SPACE,



More information about the OpenBIOS mailing list