See patch

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: [EMAIL PROTECTED]  • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866

Changes required to the device allocator:
- leave a hole for mmapped PCIe config space if CONFIG_PCIE_CONFIGSPACE_HOLE
  is set.
- Mask moving bits to 32bit when resources are not supposed above 4G. Linux
  does not like this, even though the resource is disabled.

Signed-off-by: Stefan Reinauer <[EMAIL PROTECTED]>

Index: src/config/Options.lb
===================================================================
--- src/config/Options.lb	(revision 3698)
+++ src/config/Options.lb	(working copy)
@@ -1115,6 +1120,12 @@
 # 4 for 1280x1024
 end
 
+define CONFIG_PCIE_CONFIGSPACE_HOLE
+	default 0
+	export always
+	comment "Leave a hole for PCIe config space in the device allocator"
+end
+
 ###############################################
 # Board specific options
 ###############################################
Index: src/devices/device.c
===================================================================
--- src/devices/device.c	(revision 3698)
+++ src/devices/device.c	(working copy)
@@ -366,6 +366,12 @@
 				(resource->flags & IORESOURCE_IO)? "io":
 				(resource->flags & IORESOURCE_PREFETCH)? "prefmem": "mem");
 		}
+#if CONFIG_PCIE_CONFIGSPACE_HOLE
+#warning Handle PCIe hole differently...
+		if (base >= 0xf0000000 && base < 0xf4000000) {
+			base = 0xf4000000;
+		}
+#endif
 	}
 	/* A pci bridge resource does not need to be a power
 	 * of two size, but it does have a minimum granularity.
Index: src/devices/pci_device.c
===================================================================
--- src/devices/pci_device.c	(revision 3698)
+++ src/devices/pci_device.c	(working copy)
@@ -377,7 +377,11 @@
 		 * clear it and forget it.
 		 */
 		if (resource->size == 0) {
+#if CONFIG_PCI_64BIT_PREF_MEM == 1
 			resource->base = moving;
+#else
+			resource->base = moving & 0xffffffff;
+#endif
 			resource->flags |= IORESOURCE_ASSIGNED;
 			resource->flags &= ~IORESOURCE_STORED;
 			pci_set_resource(dev, resource);

Attachment: signature.asc
Description: OpenPGP digital signature

--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to