[flashrom] [commit] r1656 - trunk

repository service svn at flashrom.org
Fri Mar 15 04:12:30 CET 2013


Author: stefanct
Date: Fri Mar 15 04:12:29 2013
New Revision: 1656
URL: http://flashrom.org/trac/flashrom/changeset/1656

Log:
Add support for Intel Lynx Point low-power and Wellsburg.

New IDs taken from Intel's patches for the Linux kernel.
Also, refine original Lynx Point naming etc.

Based on the chromiumos patch
Change-Id: I303a05baa80e4449e70d20adf78ebc7128b88d8e
Signed-off-by: Duncan Laurie <dlaurie at chromium.org>

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>

Modified:
   trunk/chipset_enable.c
   trunk/programmer.h

Modified: trunk/chipset_enable.c
==============================================================================
--- trunk/chipset_enable.c	Fri Mar 15 03:03:16 2013	(r1655)
+++ trunk/chipset_enable.c	Fri Mar 15 04:12:29 2013	(r1656)
@@ -512,6 +512,8 @@
 	static const char *const straps_names_ich7_nm10[] = { "reserved", "SPI", "PCI", "LPC" };
 	static const char *const straps_names_ich8910[] = { "SPI", "SPI", "PCI", "LPC" };
 	static const char *const straps_names_pch567[] = { "LPC", "reserved", "PCI", "SPI" };
+	static const char *const straps_names_pch8[] = { "LPC", "reserved", "reserved", "SPI" };
+	static const char *const straps_names_pch8_lp[] = { "SPI", "LPC", "unknown", "unknown" };
 	static const char *const straps_names_unknown[] = { "unknown", "unknown", "unknown", "unknown" };
 
 	switch (ich_generation) {
@@ -534,6 +536,15 @@
 	case CHIPSET_7_SERIES_PANTHER_POINT:
 		straps_names = straps_names_pch567;
 		break;
+	case CHIPSET_8_SERIES_LYNX_POINT:
+		straps_names = straps_names_pch8;
+		break;
+	case CHIPSET_8_SERIES_LYNX_POINT_LP:
+		straps_names = straps_names_pch8_lp;
+		break;
+	case CHIPSET_8_SERIES_WELLSBURG: // FIXME: check datasheet
+		straps_names = straps_names_unknown;
+		break;
 	default:
 		msg_gerr("%s: unknown ICH generation. Please report!\n",
 			 __func__);
@@ -557,7 +568,18 @@
 	msg_pdbg("GCS = 0x%x: ", gcs);
 	msg_pdbg("BIOS Interface Lock-Down: %sabled, ",
 		 (gcs & 0x1) ? "en" : "dis");
-	bbs = (gcs >> 10) & 0x3;
+
+	switch (ich_generation) {
+	case CHIPSET_8_SERIES_LYNX_POINT_LP:
+	case CHIPSET_8_SERIES_WELLSBURG: // FIXME: check datasheet
+		/* Lynx Point LP uses a single bit for GCS */
+		bbs = (gcs >> 10) & 0x1;
+		break;
+	default:
+		/* Older chipsets use two bits for GCS */
+		bbs = (gcs >> 10) & 0x3;
+		break;
+	}
 	msg_pdbg("Boot BIOS Straps: 0x%x (%s)\n", bbs, straps_names[bbs]);
 
 	buc = mmio_readb(rcrb + 0x3414);
@@ -635,6 +657,18 @@
 	return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT);
 }
 
+/* Lynx Point aka. 8 series low-power */
+static int enable_flash_pch8_lp(struct pci_dev *dev, const char *name)
+{
+	return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT_LP);
+}
+
+/* Wellsburg (for Haswell-EP Xeons) */
+static int enable_flash_pch8_wb(struct pci_dev *dev, const char *name)
+{
+	return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_WELLSBURG);
+}
+
 static int via_no_byte_merge(struct pci_dev *dev, const char *name)
 {
 	uint8_t val;
@@ -1468,37 +1502,73 @@
 	{0x8086, 0x8119, OK, "Intel", "SCH Poulsbo",	enable_flash_poulsbo},
 	{0x8086, 0x8186, OK, "Intel", "Atom E6xx(T)/Tunnel Creek", enable_flash_tunnelcreek},
 	{0x8086, 0x8c40, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c41, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c42, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c41, NT, "Intel", "Lynx Point Mobile Engineering Sample", enable_flash_pch8},
+	{0x8086, 0x8c42, NT, "Intel", "Lynx Point Desktop Engineering Sample", enable_flash_pch8},
 	{0x8086, 0x8c43, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c44, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c44, NT, "Intel", "Z87",		enable_flash_pch8},
 	{0x8086, 0x8c45, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c46, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c46, NT, "Intel", "Z85",		enable_flash_pch8},
 	{0x8086, 0x8c47, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c48, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c49, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c4a, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c4b, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c4c, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c49, NT, "Intel", "HM86",		enable_flash_pch8},
+	{0x8086, 0x8c4a, NT, "Intel", "H87",		enable_flash_pch8},
+	{0x8086, 0x8c4b, NT, "Intel", "HM87",		enable_flash_pch8},
+	{0x8086, 0x8c4c, NT, "Intel", "Q85",		enable_flash_pch8},
 	{0x8086, 0x8c4d, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c4e, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c4f, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c50, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c4e, NT, "Intel", "Q87",		enable_flash_pch8},
+	{0x8086, 0x8c4f, NT, "Intel", "QM87",		enable_flash_pch8},
+	{0x8086, 0x8c50, NT, "Intel", "B85",		enable_flash_pch8},
 	{0x8086, 0x8c51, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c52, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c52, NT, "Intel", "C222",		enable_flash_pch8},
 	{0x8086, 0x8c53, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c54, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c54, NT, "Intel", "C224",		enable_flash_pch8},
 	{0x8086, 0x8c55, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c56, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c56, NT, "Intel", "C226",		enable_flash_pch8},
 	{0x8086, 0x8c57, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c58, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c59, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c5a, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c5b, NT, "Intel", "Lynx Point",	enable_flash_pch8},
-	{0x8086, 0x8c5c, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x8c5c, NT, "Intel", "H81",		enable_flash_pch8},
 	{0x8086, 0x8c5d, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c5e, NT, "Intel", "Lynx Point",	enable_flash_pch8},
 	{0x8086, 0x8c5f, NT, "Intel", "Lynx Point",	enable_flash_pch8},
+	{0x8086, 0x9c41, NT, "Intel", "Lynx Point LP Engineering Sample", enable_flash_pch8_lp},
+	{0x8086, 0x9c43, NT, "Intel", "Lynx Point LP Premium", enable_flash_pch8_lp},
+	{0x8086, 0x9c45, NT, "Intel", "Lynx Point LP Mainstream", enable_flash_pch8_lp},
+	{0x8086, 0x9c47, NT, "Intel", "Lynx Point LP Value", enable_flash_pch8_lp},
+ 	{0x8086, 0x8d40, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d41, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d42, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d43, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d44, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d45, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d46, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d47, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d48, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d49, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d4a, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d4b, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d4c, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d4d, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d4e, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d4f, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d50, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d51, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d52, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d53, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d54, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d55, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d56, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d57, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d58, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d59, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d5a, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d5b, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d5c, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d5d, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d5e, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
+ 	{0x8086, 0x8d5f, NT, "Intel", "Wellsburg",	enable_flash_pch8_wb},
 #endif
 	{0},
 };

Modified: trunk/programmer.h
==============================================================================
--- trunk/programmer.h	Fri Mar 15 03:03:16 2013	(r1655)
+++ trunk/programmer.h	Fri Mar 15 04:12:29 2013	(r1656)
@@ -547,7 +547,9 @@
 	CHIPSET_5_SERIES_IBEX_PEAK,
 	CHIPSET_6_SERIES_COUGAR_POINT,
 	CHIPSET_7_SERIES_PANTHER_POINT,
-	CHIPSET_8_SERIES_LYNX_POINT
+	CHIPSET_8_SERIES_LYNX_POINT,
+	CHIPSET_8_SERIES_LYNX_POINT_LP,
+	CHIPSET_8_SERIES_WELLSBURG,
 };
 
 /* ichspi.c */




More information about the flashrom mailing list