summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--board_enable.c33
-rw-r--r--print.c1
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..62904c9 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),
OpenPOWER on IntegriCloud