[flashrom] [PATCH] Various programmer fixes

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sat May 15 20:58:19 CEST 2010


Initialize the internal delay function before running programmer init.
The programmer init may need a good host delay function.

Fix Tyan S2915 by commenting out MCP55 LPC PCI ID 10de:0361 and add
debug output to avoid similar nightmares in the future.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Index: flashrom-0.9.2-programmer_fixes/chipset_enable.c
===================================================================
--- flashrom-0.9.2-programmer_fixes/chipset_enable.c	(Revision 998)
+++ flashrom-0.9.2-programmer_fixes/chipset_enable.c	(Arbeitskopie)
@@ -1354,7 +1354,15 @@
 	{0x10de, 0x0262, NT, "NVIDIA", "MCP51",		enable_flash_ck804},
 	{0x10de, 0x0263, NT, "NVIDIA", "MCP51",		enable_flash_ck804},
 	{0x10de, 0x0360, OK, "NVIDIA", "MCP55",		enable_flash_mcp55}, /* M57SLI*/
-	{0x10de, 0x0361, OK, "NVIDIA", "MCP55",		enable_flash_mcp55}, /* LPC */
+	/* 10de:0361 is present in Tyan S2915 systems, but not connected to
+	 * the flash chip. Instead, 10de:0364 is connected to the flash chip.
+	 * Until we have PCI device class matching or some fallback mechanism,
+	 * this is needed to get flashrom working on Tyan S2915 and maybe other
+	 * dual-MCP55 boards.
+	 */
+#if 0
+	{0x10de, 0x0361, NT, "NVIDIA", "MCP55",		enable_flash_mcp55}, /* LPC */
+#endif
 	{0x10de, 0x0362, OK, "NVIDIA", "MCP55",		enable_flash_mcp55}, /* LPC */
 	{0x10de, 0x0363, OK, "NVIDIA", "MCP55",		enable_flash_mcp55}, /* LPC */
 	{0x10de, 0x0364, OK, "NVIDIA", "MCP55",		enable_flash_mcp55}, /* LPC */
@@ -1439,6 +1447,9 @@
 		msg_pinfo("Found chipset \"%s %s\", enabling flash write... ",
 		       chipset_enables[i].vendor_name,
 		       chipset_enables[i].device_name);
+		msg_pdbg("chipset PCI ID is %04x:%04x, ",
+			 chipset_enables[i].vendor_id,
+			 chipset_enables[i].device_id);
 
 		ret = chipset_enables[i].doit(dev,
 					      chipset_enables[i].device_name);
Index: flashrom-0.9.2-programmer_fixes/cli_classic.c
===================================================================
--- flashrom-0.9.2-programmer_fixes/cli_classic.c	(Revision 998)
+++ flashrom-0.9.2-programmer_fixes/cli_classic.c	(Arbeitskopie)
@@ -378,6 +378,9 @@
 		flash = NULL;
 	}
 
+	/* FIXME: Delay calibration should happen in programmer code. */
+	myusec_calibrate_delay();
+
 	msg_pdbg("Initializing %s programmer\n",
 		 programmer_table[programmer].name);
 	if (programmer_init()) {
@@ -386,8 +389,6 @@
 	}
 
 	/* FIXME: Delay calibration should happen in programmer code. */
-	myusec_calibrate_delay();
-
 	for (i = 0; i < ARRAY_SIZE(flashes); i++) {
 		flashes[i] =
 		    probe_flash(i ? flashes[i - 1] + 1 : flashchips, 0);


-- 
http://www.hailfinger.org/





More information about the flashrom mailing list