[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