From b992d3433974479909e6fd584dd798d4badf27b9 Mon Sep 17 00:00:00 2001 From: Joshua Roys Date: Wed, 2 Nov 2011 14:31:18 +0000 Subject: Add board enable for Sun Ultra 40 M2 Failure report with logs: http://www.flashrom.org/pipermail/flashrom/2011-October/008158.html Success report: http://paste.flashrom.org/view.php?id=889 Corresponding to flashrom svn r1458. Signed-off-by: Joshua Roys Acked-by: Stefan Tauner --- board_enable.c | 33 +++++++++++++++++++++++++++++++++ print.c | 1 + 2 files changed, 34 insertions(+) diff --git a/board_enable.c b/board_enable.c index 1874459a3..fe2f021ac 100644 --- a/board_enable.c +++ b/board_enable.c @@ -1049,6 +1049,38 @@ static int nvidia_mcp_gpio3b_raise(void) return nvidia_mcp_gpio_set(0x3b, 1); } +/* + * 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 @@ -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 05eee9f6c..62904c948 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, "http://download.oracle.com/docs/cd/E19127-01/ultra40.ws/820-0123-13/intro.html", 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), -- cgit v1.2.3