[flashrom] [commit] r810 - trunk

svn at flashrom.org svn at flashrom.org
Tue Dec 22 14:04:13 CET 2009


Author: libv
Date: 2009-12-22 14:04:13 +0100 (Tue, 22 Dec 2009)
New Revision: 810

Modified:
   trunk/board_enable.c
Log:
Boards: Fix several issues with nvidia_mcp_gpio_set.

- CK804, MCP04, MCP2 use the isa bridges..
- Newer nvidia mcp's do use the smbus controllers (Found by
  Michael Karcher).
- gpio line check breaks EPoX EP-8RDA3+, and should be wider.

Signed-off-by: Luc Verhaegen <libv at skynet.be>
Acked-by: Michael Karcher <flashrom at mkarcher.dialup.fu-berlin.de>

Modified: trunk/board_enable.c
===================================================================
--- trunk/board_enable.c	2009-12-21 15:30:46 UTC (rev 809)
+++ trunk/board_enable.c	2009-12-22 13:04:13 UTC (rev 810)
@@ -440,20 +440,30 @@
 	uint16_t base;
 	uint8_t tmp;
 
-	if ((gpio < 0) || (gpio > 31)) {
+	if ((gpio < 0) || (gpio >= 0x40)) {
 		fprintf(stderr, "\nERROR: unsupported GPIO: %d.\n", gpio);
 		return -1;
 	}
 
-	dev = pci_dev_find_vendorclass(0x10DE, 0x0C05);
+	/* First, check the ISA Bridge */
+	dev = pci_dev_find_vendorclass(0x10DE, 0x0601);
 	switch (dev->device_id) {
 	case 0x0030: /* CK804 */
 	case 0x0050: /* MCP04 */
 	case 0x0060: /* MCP2 */
 		break;
 	default:
-		fprintf(stderr, "\nERROR: no nVidia SMBus controller found.\n");
+	    /* Newer MCPs use the SMBus Controller */
+	    dev = pci_dev_find_vendorclass(0x10DE, 0x0C05);
+	    switch (dev->device_id) {
+	    case 0x0264: /* MCP51 */
+		break;
+	    default:
+		fprintf(stderr,
+			"\nERROR: no nVidia LPC/SMBus controller found.\n");
 		return -1;
+	    }
+	    break;
 	}
 
 	base = pci_read_long(dev, 0x64) & 0x0000FF00; /* System control area */





More information about the flashrom mailing list