[coreboot-gerrit] Patch set updated for coreboot: 76fc94d haswell: add option to mark graphics memory write-combining.

Aaron Durbin (adurbin@google.com) gerrit at coreboot.org
Wed Mar 27 18:19:58 CET 2013


Aaron Durbin (adurbin at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2893

-gerrit

commit 76fc94d0d72398412fc0abe32aed724f8cdcdcab
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Fri Mar 22 22:23:05 2013 -0500

    haswell: add option to mark graphics memory write-combining.
    
    The graphics memory can be accessed in a faster manner by
    setting it to write-combing mode. Add an option to enable
    write-combining for the graphics memory.
    
    Change-Id: I797fcd9f0dfb074f9e45476773acbfe614eb4b0a
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 src/northbridge/intel/haswell/Kconfig |  8 ++++++++
 src/northbridge/intel/haswell/gma.c   | 19 ++++++++++++++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/src/northbridge/intel/haswell/Kconfig b/src/northbridge/intel/haswell/Kconfig
index f689780..12f865a 100644
--- a/src/northbridge/intel/haswell/Kconfig
+++ b/src/northbridge/intel/haswell/Kconfig
@@ -82,6 +82,14 @@ config DCACHE_RAM_ROMSTAGE_STACK_SIZE
 	  The amount of anticipated stack usage from the data cache
 	  during pre-ram rom stage execution.
 
+config MARK_GRAPHICS_MEM_WRCOMB
+	bool "Mark graphics memory as write-combining."
+	default n
+	help
+	 The graphics performance may increase if the graphics
+	 memory is set as write-combining cache type. This option
+	 enables marking the graphics memory as write-combining.
+
 config HAVE_MRC
 	bool "Add a System Agent binary"
 	help
diff --git a/src/northbridge/intel/haswell/gma.c b/src/northbridge/intel/haswell/gma.c
index d085066..0a67b6a 100644
--- a/src/northbridge/intel/haswell/gma.c
+++ b/src/northbridge/intel/haswell/gma.c
@@ -217,12 +217,29 @@ static void gma_set_subsystem(device_t dev, unsigned vendor, unsigned device)
 	}
 }
 
+static void gma_read_resources(struct device *dev)
+{
+	pci_dev_read_resources(dev);
+
+#if CONFIG_MARK_GRAPHICS_MEM_WRCOMB
+	struct resource *res;
+
+	/* Set the graphics memory to write combining. */
+	res = find_resource(dev, PCI_BASE_ADDRESS_2);
+	if (res == NULL) {
+		printk(BIOS_DEBUG, "gma: memory resource not found.\n");
+		return;
+	}
+	res->flags |= IORESOURCE_WRCOMB;
+#endif
+}
+
 static struct pci_operations gma_pci_ops = {
 	.set_subsystem    = gma_set_subsystem,
 };
 
 static struct device_operations gma_func0_ops = {
-	.read_resources		= pci_dev_read_resources,
+	.read_resources		= gma_read_resources,
 	.set_resources		= pci_dev_set_resources,
 	.enable_resources	= pci_dev_enable_resources,
 	.init			= gma_func0_init,



More information about the coreboot-gerrit mailing list