[coreboot] New patch to review for coreboot: db5db28 i945: Disable IGD if plugin VGA is preferred

Patrick Georgi (patrick@georgi-clan.de) gerrit at coreboot.org
Fri Jul 20 13:54:39 CEST 2012


Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1252

-gerrit

commit db5db2847ffb26c4e8181166498ae6353c65ec9c
Author: Patrick Georgi <patrick.georgi at secunet.com>
Date:   Fri Jul 20 12:37:06 2012 +0200

    i945: Disable IGD if plugin VGA is preferred
    
    It's shut down, but UMA memory is not reclaimed. A later extension
    could optionally do the magic register dance that allows initialization
    of IGD as secondary graphics device.
    
    Change-Id: I2a92bb71755005b886a8e1825325c678a9991bf2
    Signed-off-by: Patrick Georgi <patrick.georgi at secunet.com>
---
 src/northbridge/intel/i945/gma.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
index b703a80..bf381b8 100644
--- a/src/northbridge/intel/i945/gma.c
+++ b/src/northbridge/intel/i945/gma.c
@@ -23,6 +23,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <pc80/mc146818rtc.h>
+#include "i945.h"
 
 #define GDRST 0xc0
 
@@ -44,6 +45,22 @@ static void gma_func0_init(struct device *dev)
 	pci_dev_init(dev);
 }
 
+/* This doesn't reclaim stolen UMA memory, but IGD could still
+   be reenabled later. */
+static void gma_func0_disable(struct device *dev)
+{
+	struct device *dev_host = dev_find_slot(0, PCI_DEVFN(0x0, 0));
+
+	pci_write_config16(dev, GCFC, 0xa00);
+	pci_write_config16(dev_host, GGC, (1 << 1));
+
+	unsigned int reg32 = pci_read_config32(dev_host, DEVEN);
+	reg32 &= ~(DEVEN_D2F0 | DEVEN_D2F1);
+	pci_write_config32(dev_host, DEVEN, reg32);
+
+	dev->enabled = 0;
+}
+
 static void gma_func1_init(struct device *dev)
 {
 	u32 reg32;
@@ -82,6 +99,7 @@ static struct device_operations gma_func0_ops = {
 	.init			= gma_func0_init,
 	.scan_bus		= 0,
 	.enable			= 0,
+	.disable		= gma_func0_disable,
 	.ops_pci		= &gma_pci_ops,
 };
 




More information about the coreboot mailing list