[flashrom] [PATCH] Add board enable for Sun Ultra 40 M2

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Wed Nov 2 15:15:44 CET 2011


Success report:
http://paste.flashrom.org/view.php?id=889

(mostly) written by Joshua Roy (please add your signed-off tag) and
Acked-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
---
 board_enable.c |   33 +++++++++++++++++++++++++++++++++
 print.c        |    1 +
 2 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/board_enable.c b/board_enable.c
index 1874459..fe2f021 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -1051,6 +1051,38 @@ static int nvidia_mcp_gpio3b_raise(void)
 
 /*
  * Suited for:
+ *  - Sun Ultra 40 M2: Dual Socket F (1207) + MCP55
+ */
+static int board_sun_ultra_40_m2(void)
+{
+	int ret;
+	uint8_t reg;
+	uint16_t base;
+	struct pci_dev *dev;
+
+	ret = nvidia_mcp_gpio4_lower();
+	if (ret)
+		return ret;
+
+	dev = pci_dev_find(0x10de, 0x0364); /* NVIDIA MCP55 LPC bridge */
+	if (!dev) {
+		msg_perr("\nERROR: NVIDIA MCP55 LPC bridge not found.\n");
+		return -1;
+	}
+
+	base = pci_read_word(dev, 0xb4); /* some IO BAR? */
+	if (!base)
+		return -1;
+
+	reg = INB(base + 0x4b);
+	reg |= 0x10;
+	OUTB(reg, base + 0x4b);
+
+	return 0;
+}
+
+/*
+ * Suited for:
  *  - Artec Group DBE61 and DBE62
  */
 static int board_artecgroup_dbe6x(void)
@@ -2109,6 +2141,7 @@ const struct board_match board_matches[] = {
 	{0x1106, 0x3104, 0x1297, 0xa238,  0x1106, 0x3059, 0x1297, 0xc063, NULL,         NULL, NULL,           P3, "Shuttle",     "AK38N",                 256, OK, NULL},
 	{0x10DE, 0x0050, 0x1297, 0x5036,  0x1412, 0x1724, 0x1297, 0x5036, NULL,         NULL, NULL,           P3, "Shuttle",     "FN25",                  0,   OK, board_shuttle_fn25},
 	{0x1106, 0x3038, 0x0925, 0x1234,  0x1106, 0x3058, 0x15DD, 0x7609, NULL,         NULL, NULL,           P3, "Soyo",        "SY-7VCA",               0,   OK, via_apollo_gpo0_lower},
+	{0x10de, 0x0364, 0x108e, 0x6676,  0x10de, 0x0369, 0x108e, 0x6676, "^Sun Ultra 40 M2", NULL, NULL,     P3, "Sun",         "Ultra 40 M2",           0,   OK, board_sun_ultra_40_m2},
 	{0x1106, 0x3038, 0x0925, 0x1234,  0x1106, 0x0596, 0x1106,      0, NULL,         NULL, NULL,           P3, "Tekram",      "P6Pro-A5",              256, OK, NULL},
 	{0x1106, 0x3123, 0x1106, 0x3123,  0x1106, 0x3059, 0x1106, 0x4161, NULL,         NULL, NULL,           P3, "Termtek",     "TK-3370 (Rev:2.5B)",    0,   OK, w836xx_memw_enable_4e},
 	{0x8086, 0x1076, 0x8086, 0x1176,  0x1106, 0x3059, 0x10f1, 0x2498, NULL,         NULL, NULL,           P3, "Tyan",        "S2498 (Tomcat K7M)",    0,   OK, w836xx_memw_enable_2e},
diff --git a/print.c b/print.c
index 05eee9f..91288ee 100644
--- a/print.c
+++ b/print.c
@@ -846,6 +846,7 @@ const struct board_info boards_known[] = {
 	B("Sun",	"Fire x4200",		0, "http://www.sun.com/servers/entry/x4200/", "No public report found. May work now."),
 	B("Sun",	"Fire x4540",		0, "http://www.sun.com/servers/x64/x4540/", "No public report found. May work now."),
 	B("Sun",	"Fire x4600",		0, "http://www.sun.com/servers/x64/x4600/", "No public report found. May work now."),
+	B("Sun",	"Ultra 40 M2",		1, NULL, NULL),
 	B("Supermicro",	"H8QC8",		1, "http://www.supermicro.com/Aplus/motherboard/Opteron/nforce/H8QC8.cfm", NULL),
 	B("Supermicro", "X5DP8-G2",		1, "http://www.supermicro.com/products/motherboard/Xeon/E7501/X5DP8-G2.cfm", NULL),
 	B("Supermicro", "X7DBT-INF",		1, "http://www.supermicro.com/products/motherboard/Xeon1333/5000P/X7DBT-INF.cfm", NULL),
-- 
1.7.1





More information about the flashrom mailing list