diff --git a/flash.h b/flash.h
index 7e91633..7f28186 100644
--- a/flash.h
+++ b/flash.h
@@ -305,12 +305,22 @@
 struct board_info {
 	const char *vendor;
 	const char *name;
+	const int working;
+#ifdef CONFIG_PRINT_WIKI
+	const char *url;
+	const char *note;
+#endif
 };
 
-extern const struct board_info boards_ok[];
-extern const struct board_info boards_bad[];
-extern const struct board_info laptops_ok[];
-extern const struct board_info laptops_bad[];
+#ifdef CONFIG_PRINT_WIKI
+#define B(vendor, name, status, url, note) { vendor, name, status, url, note }
+#else
+#define B(vendor, name, status, url, note) { vendor, name, status }
+#endif
+
+extern const struct board_info boards_known[];
+extern const struct board_info laptops_known[];
+
 #endif
 
 /* udelay.c */
diff --git a/print.c b/print.c
index 65af085..6ffcd90 100644
--- a/print.c
+++ b/print.c
@@ -169,59 +169,45 @@
 	}
 }
 
-void print_supported_boards_helper(const struct board_info *b, const char *msg)
+void print_supported_boards_helper(const struct board_info *boards,
+				   const char *devicetype)
 {
-	int i, j, boardcount = 0;
-
-	for (i = 0; b[i].vendor != NULL; i++)
-		boardcount++;
-
-	printf("\n%s (total: %d):\n\n", msg, boardcount);
-
-	for (i = 0; b[i].vendor != NULL; i++) {
-		printf("%s", b[i].vendor);
-		for (j = 0; j < 25 - strlen(b[i].vendor); j++)
-			printf(" ");
-		printf("%s", b[i].name);
-		for (j = 0; j < 28 - strlen(b[i].name); j++)
-			printf(" ");
-		printf("\n");
-	}
-}
-
-void print_supported_boards(void)
-{
-	int i, j, boardcount = 0;
+	int i, j, boardcount_good = 0, boardcount_bad = 0;
 	struct board_pciid_enable *b = board_pciid_enables;
 
-	for (i = 0; b[i].vendor_name != NULL; i++)
-		boardcount++;
-
-	printf("\nSupported boards which need write-enable code (total: %d):"
-	       "\n\nVendor:                  Board:                        "
-	       "Required option:\n\n", boardcount);
-
-	for (i = 0; b[i].vendor_name != NULL; i++) {
-		printf("%s", b[i].vendor_name);
-		for (j = 0; j < 25 - strlen(b[i].vendor_name); j++)
-			printf(" ");
-		printf("%s", b[i].board_name);
-		for (j = 0; j < 30 - strlen(b[i].board_name); j++)
-			printf(" ");
-		if (b[i].lb_vendor != NULL)
-			printf("-m %s:%s\n", b[i].lb_vendor, b[i].lb_part);
+	for (i = 0; boards[i].vendor != NULL; i++) {
+		if (boards[i].working)
+			boardcount_good++;
 		else
-			printf("(none, board is autodetected)\n");
+			boardcount_bad++;
 	}
 
-	print_supported_boards_helper(boards_ok,
-		"Supported boards which don't need write-enable code");
-	print_supported_boards_helper(boards_bad,
-		"Boards which have been verified to NOT work yet");
-	print_supported_boards_helper(laptops_ok,
-		"Laptops which have been verified to work");
-	print_supported_boards_helper(laptops_bad,
-		"Laptops which have been verified to NOT work yet");
+	printf("\nKnown %s (good: %d, bad: %d):"
+	       "\n\nVendor:                  Board:                      "
+	       "Status: Required option:"
+	       "\n\n", devicetype, boardcount_good, boardcount_bad);
+
+	for (i = 0; boards[i].vendor != NULL; i++) {
+		printf("%s", boards[i].vendor);
+		for (j = 0; j < 25 - strlen(boards[i].vendor); j++)
+			printf(" ");
+		printf("%s", boards[i].name);
+		for (j = 0; j < 28 - strlen(boards[i].name); j++)
+			printf(" ");
+		printf((boards[i].working) ? "OK      " : "BAD     ");
+
+		for (j = 0; b[j].vendor_name != NULL; j++) {
+			if (strcmp(b[j].vendor_name, boards[i].vendor)
+			    || strcmp(b[j].board_name, boards[i].name))
+				continue;
+			if (b[j].lb_vendor == NULL)
+				printf("(autodetected)");
+			else
+				printf("-m %s:%s", b[j].lb_vendor,
+						   b[j].lb_part);
+		}
+		printf("\n");
+	}
 }
 #endif
 
@@ -230,7 +216,8 @@
 		print_supported_chips();
 #if CONFIG_INTERNAL == 1
 		print_supported_chipsets();
-		print_supported_boards();
+		print_supported_boards_helper(boards_known, "boards");
+		print_supported_boards_helper(laptops_known, "laptops");
 #endif
 #if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT >= 1
 		printf("\nSupported PCI devices flashrom can use "
@@ -257,183 +244,221 @@
 #endif
 }
 
-
 #if CONFIG_INTERNAL == 1
 /* Please keep this list alphabetically ordered by vendor/board. */
-const struct board_info boards_ok[] = {
-	/* Verified working boards that don't need write-enables. */
+const struct board_info boards_known[] = {
 #if defined(__i386__) || defined(__x86_64__)
-	{ "Abit",		"AX8", },
-	{ "Abit",		"Fatal1ty F-I90HD", },
-	{ "Advantech",		"PCM-5820", },
-	{ "ASI",		"MB-5BLMP", },
-	{ "ASRock",		"A770CrossFire", },
-	{ "ASRock",		"K8S8X", },
-	{ "ASRock",		"M3A790GXH/128M" },
-	{ "ASUS",		"A7N8X Deluxe", },
-	{ "ASUS",		"A7N8X-E Deluxe", },
-	{ "ASUS",		"A7V133", },
-	{ "ASUS",		"A7V400-MX", },
-	{ "ASUS",		"A7V8X-MX", },
-	{ "ASUS",		"A8N-E", },
-	{ "ASUS",		"A8NE-FM/S", },
-	{ "ASUS",		"A8N-SLI", },
-	{ "ASUS",		"A8N-SLI Premium", },
-	{ "ASUS",		"A8V Deluxe", },
-	{ "ASUS",		"A8V-E Deluxe", },
-	{ "ASUS",		"A8V-E SE", },
-	{ "ASUS",		"K8V", },
-	{ "ASUS",		"K8V SE Deluxe", },
-	{ "ASUS",		"K8V-X SE", },
-	{ "ASUS",		"M2A-MX", },
-	{ "ASUS",		"M2A-VM", },
-	{ "ASUS",		"M2N-E", },
-	{ "ASUS",		"M2V", },
-	{ "ASUS",		"M3A78-EM", },
-	{ "ASUS",		"P2B", },
-	{ "ASUS",		"P2B-D", },
-	{ "ASUS",		"P2B-DS", },
-	{ "ASUS",		"P2B-F", },
-	{ "ASUS",		"P2L97-S", },
-	{ "ASUS",		"P5B", },
-	{ "ASUS",		"P5B-Deluxe", },
-	{ "ASUS",		"P5KC", },
-	{ "ASUS",		"P5L-MX", },
-	{ "ASUS",		"P6T Deluxe", },
-	{ "ASUS",		"P6T Deluxe V2", },
-	{ "A-Trend",		"ATC-6220", },
-	{ "BCOM",		"WinNET100", },
-	{ "DFI",		"Blood-Iron P35 T2RL", },
-	{ "Elitegroup",		"K7S5A", },
-	{ "Elitegroup",		"P6VAP-A+", },
-	{ "GIGABYTE",		"GA-2761GXDK", },
-	{ "GIGABYTE",		"GA-6BXC", },
-	{ "GIGABYTE",		"GA-6BXDU", },
-	{ "GIGABYTE",		"GA-6ZMA", },
-	{ "GIGABYTE",		"GA-7ZM", },
-	{ "GIGABYTE",		"GA-965P-DS4", },
-	{ "GIGABYTE",		"GA-EP35-DS3L", },
-	{ "GIGABYTE",		"GA-EX58-UD4P", },
-	{ "GIGABYTE",		"GA-M57SLI-S4", },
-	{ "GIGABYTE",		"GA-M61P-S3", },
-	{ "GIGABYTE",		"GA-MA69VM-S2", },
-	{ "GIGABYTE",		"GA-MA770T-UD3P", },
-	{ "GIGABYTE",		"GA-MA78G-DS3H", },
-	{ "GIGABYTE",		"GA-MA78GM-S2H", },
-	{ "GIGABYTE",		"GA-MA78GPM-DS2H", },
-	{ "GIGABYTE",		"GA-MA790FX-DQ6", },
-	{ "GIGABYTE",		"GA-MA790GP-DS4H", },
-	{ "Intel",		"EP80759", },
-	{ "Jetway",		"J7F4K1G5D-PB", },
-	{ "MSI",                "MS-6153", },
-	{ "MSI",                "MS-6156", },
-	{ "MSI",                "MS-6330 (K7T Turbo)", },
-	{ "MSI",		"MS-6570 (K7N2)", },
-	{ "MSI",		"MS-7065", },
-	{ "MSI",		"MS-7168 (Orion)", },
-	{ "MSI",		"MS-7236 (945PL Neo3)", },
-	{ "MSI",		"MS-7255 (P4M890M)", },
-	{ "MSI",		"MS-7312 (K9MM-V)", },
-	{ "MSI",		"MS-7345 (P35 Neo2-FIR)", },
-	{ "MSI",		"MS-7368 (K9AG Neo2-Digital)", },
-	{ "MSI",                "MS-7376 (K9A2 Platinum)", },
-	{ "NEC",		"PowerMate 2000", },
-	{ "PC Engines",		"Alix.1c", },
-	{ "PC Engines",		"Alix.2c2", },
-	{ "PC Engines",		"Alix.2c3", },
-	{ "PC Engines",		"Alix.3c3", },
-	{ "PC Engines",		"Alix.3d3", },
-	{ "PC Engines",		"WRAP.2E", },
-	{ "RCA",		"RM4100", },
-	{ "Shuttle",            "FD37", },
-	{ "Sun",		"Blade x6250", },
-	{ "Supermicro",		"H8QC8", },
-	{ "Supermicro",		"X8DTT-F", },
-	{ "Thomson",		"IP1000", },
-	{ "TriGem",		"Lomita", },
-	{ "T-Online",		"S-100", },
-	{ "Tyan",		"iS5375-1U", },
-	{ "Tyan",		"S1846", },
-	{ "Tyan",		"S2466", },
-	{ "Tyan",		"S2881", },
-	{ "Tyan",		"S2882", },
-	{ "Tyan",		"S2882-D", },
-	{ "Tyan",		"S2891", },
-	{ "Tyan",		"S2892", },
-	{ "Tyan",		"S2895", },
-	{ "Tyan",		"S3095", },
-	{ "Tyan",		"S5180", },
-	{ "Tyan",		"S5191", },
-	{ "Tyan",		"S5197", },
-	{ "Tyan",		"S5211", },
-	{ "Tyan",		"S5211-1U", },
-	{ "Tyan",		"S5220", },
-	{ "Tyan",		"S5375", },
-	{ "Tyan",		"S5376G2NR/S5376WAG2NR", },
-	{ "Tyan",		"S5377", },
-	{ "Tyan",		"S5382 (Tempest i5000PW)", },
-	{ "Tyan",		"S5397", },
-	{ "VIA",		"EPIA-CN", },
-	{ "VIA",		"EPIA-EX15000G", },
-	{ "VIA",		"EPIA-LN", },
-	{ "VIA",		"EPIA-M700", },
-	{ "VIA",		"EPIA-NX15000G", },
-	{ "VIA",		"EPIA-SP", },
-	{ "VIA",		"NAB74X0", },
-	{ "VIA",		"pc2500e", },
-	{ "VIA",		"PC3500G", },
-	{ "VIA",		"VB700X", },
+	B("A-Trend",	"ATC-6220",		1, "http://www.motherboard.cz/mb/atrend/atc6220.htm", NULL),
+	B("Abit",	"AX8",			1, "http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?DEFTITLE=Y&fMTYPE=Socket%20939&pMODEL_NAME=AX8", NULL),
+	B("Abit",	"Fatal1ty F-I90HD",	1, "http://www.abit.com.tw/page/de/motherboard/motherboard_detail.php?pMODEL_NAME=Fatal1ty+F-I90HD&fMTYPE=LGA775", NULL),
+	B("Abit",	"IP35",			1, "http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?fMTYPE=LGA775&pMODEL_NAME=IP35", NULL),
+	B("Abit",	"IP35 Pro",		1, "http://www.abit.com.tw/page/de/motherboard/motherboard_detail.php?fMTYPE=LGA775&pMODEL_NAME=IP35%20Pro", NULL),
+	B("Abit",	"IS-10",		0, "http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?pMODEL_NAME=IS-10&fMTYPE=Socket+478", NULL),
+	B("Abit",	"NF7-S",		1, "http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?fMTYPE=Socket%20A&pMODEL_NAME=NF7-S", NULL),
+	B("Abit",	"VT6X4",		1, "http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?fMTYPE=Slot%201&pMODEL_NAME=VT6X4", NULL),
+	B("Acorp",	"6A815EPD",		1, "http://web.archive.org/web/20021206163652/www.acorp.com.tw/English/default.asp", NULL),
+	B("Advantech",	"PCM-5820",		1, "http://www.emacinc.com/sbc_pc_compatible/pcm_5820.htm", NULL),
+	B("agami",	"Aruma",		1, "http://web.archive.org/web/20080212111524/http://www.agami.com/site/ais-6000-series", NULL),
+	B("Albatron",	"PM266A Pro",		1, "http://www.albatron.com.tw/English/Product/MB/pro_detail.asp?rlink=Overview&no=56", NULL), /* FIXME */
+	B("AOpen",	"vKM400Am-S",		1, "http://usa.aopen.com/products_detail.aspx?Auno=824", NULL),
+	B("Artec Group","DBE61",		1, "http://wiki.thincan.org/DBE61", NULL),
+	B("Artec Group","DBE62",		1, "http://wiki.thincan.org/DBE62", NULL),
+	B("ASI",	"MB-5BLMP",		1, "http://www.hojerteknik.com/winnet.htm", "Used in the IGEL WinNET III thin client."),
+	B("ASRock",	"A770CrossFire",	1, "http://www.asrock.com/mb/overview.asp?Model=A770CrossFire&s=AM2\%2b", NULL),
+	B("ASRock",	"K7VT4A+",		0, "http://www.asrock.com/mb/overview.asp?Model=K7VT4A%%2b&s=", NULL),
+	B("ASRock",	"K8S8X",		1, "http://www.asrock.com/mb/overview.asp?Model=K8S8X", "The Super I/O isn't found on this board. See http://www.flashrom.org/pipermail/flashrom/2009-November/000937.html."),
+	B("ASRock",	"P4i65GV",		1, NULL, NULL),
+	B("ASRock",	"M3A790GXH/128M",	1, "http://www.asrock.com/MB/overview.asp?Model=M3A790GXH/128M", NULL),
+	B("ASUS",	"A7N8X Deluxe",		1, "http://www.asus.com/product.aspx?P_ID=wAsRYm41KTp78MFC", NULL),
+	B("ASUS",	"A7N8X-E Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=TmQtPJv4jIxmL9C2", NULL),
+	B("ASUS",	"A7V133",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/socka/kt133a/a7v133/", NULL),
+	B("ASUS",	"A7V400-MX",		1, "http://www.asus.com/product.aspx?P_ID=hORgEHRBDLMfwAwx", NULL),
+	B("ASUS",	"A7V600-X",		1, "http://www.asus.com/product.aspx?P_ID=L2XYS0rmtCjeOr4k", NULL),
+	B("ASUS",	"A7V8X",		1, "http://www.asus.com/product.aspx?P_ID=qfpaGrAy2kLVo0f2", NULL),
+	B("ASUS",	"A7V8X-MX",		1, "http://www.asus.com/product.aspx?P_ID=SEJOOYqfuQPitx2H", NULL),
+	B("ASUS",	"A7V8X-MX SE",		1, "http://www.asus.com/product.aspx?P_ID=1guVBT1qV5oqhHyZ", NULL),
+	B("ASUS",	"A7V8X-X",		1, "http://www.asus.com/product.aspx?P_ID=YcXfRrWHZ9RKoVmw", NULL),
+	B("ASUS",	"A8N-E",		1, "http://www.asus.com/product.aspx?P_ID=DzbA8hgqchMBOVRz", NULL),
+	B("ASUS",	"A8N-SLI",		1, "http://www.asus.com/product.aspx?P_ID=J9FKa8z2xVId3pDK", NULL),
+	B("ASUS",	"A8N-SLI Premium",	1, "http://www.asus.com/product.aspx?P_ID=nbulqxniNmzf0mH1", NULL),
+	B("ASUS",	"A8NE-FM/S",		1, "http://www.hardwareschotte.de/hardware/preise/proid_1266090/preis_ASUS+A8NE-FM", NULL),
+	B("ASUS",	"A8V Deluxe",		1, "http://www.asus.com/product.aspx?P_ID=tvpdgPNCPaABZRVU", NULL),
+	B("ASUS",	"A8V-E Deluxe",		1, "http://www.asus.com/product.aspx?P_ID=hQBPIJWEZnnGAZEh", NULL),
+	B("ASUS",	"A8V-E SE",		1, "http://www.asus.com/product.aspx?P_ID=VMfiJJRYTHM4gXIi", "See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html."),
+	B("ASUS",	"K8V",			1, "http://www.asus.com/product.aspx?P_ID=fG2KZOWF7v6MRFRm", NULL),
+	B("ASUS",	"K8V SE Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=65HeDI8XM1u6Uy6o", NULL),
+	B("ASUS",	"K8V-X SE",		1, "http://www.asus.com/product.aspx?P_ID=lzDXlbBVHkdckHVr", NULL),
+	B("ASUS",	"M2A-MX",		1, "http://www.asus.com/product.aspx?P_ID=BmaOnPewi1JgltOZ", NULL),
+	B("ASUS",	"M2A-VM",		1, "http://www.asus.com/product.aspx?P_ID=St3pWpym8xXpROQS", "See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html."),
+	B("ASUS",	"M2N-E",		1, "http://www.asus.com/product.aspx?P_ID=NFlvt10av3F7ayQ9", "If the machine doesn't come up again after flashing, try resetting the NVRAM(CMOS). The MAC address of the onboard network card will change to the value stored in the new image, so backup the old address first. See http://www.flashrom.org/pipermail/flashrom/2009-November/000879.html"),
+	B("ASUS",	"M2NBP-VM CSM",		1, "http://www.asus.com/product.aspx?P_ID=MnOfzTGd2KkwG0rF", NULL),
+	B("ASUS",	"M2V",			1, "http://www.asus.com/product.aspx?P_ID=OqYlEDFfF6ZqZGvp", NULL),
+	B("ASUS",	"M2V-MX",		1, "http://www.asus.com/product.aspx?P_ID=7grf8Ci4yxnqzt3z", NULL),
+	B("ASUS",	"M3A78-EM",		1, "http://www.asus.com/product.aspx?P_ID=KjpYqzmAd9vsTM2D", NULL),
+	B("ASUS",	"MEW-AM",		0, "ftp://ftp.asus.com.tw/pub/ASUS/mb/sock370/810/mew-am/", NULL),
+	B("ASUS",	"MEW-VM",		0, "http://www.elhvb.com/mboards/OEM/HP/manual/ASUS%20MEW-VM.htm", NULL),
+	B("ASUS",	"P2B",			1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b/", NULL),
+	B("ASUS",	"P2B-D",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-d/", NULL),
+	B("ASUS",	"P2B-DS",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-ds/", NULL),
+	B("ASUS",	"P2B-F",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-d/", NULL),
+	B("ASUS",	"P2L97-S",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440lx/p2l97-s/", NULL),
+	B("ASUS",	"P3B-F",		0, "ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p3b-f/", NULL),
+	B("ASUS",	"P4B266",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/sock478/p4b266/", NULL),
+	B("ASUS",	"P4B266-LM",		1, "http://esupport.sony.com/US/perl/swu-list.pl?mdl=PCVRX650", NULL),
+	B("ASUS",	"P4C800-E Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=cFuVCr9bXXCckmcK", NULL),
+	B("ASUS",	"P4P800-E Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=INIJUvLlif7LHp3g", NULL),
+	B("ASUS",	"P5A",			1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/sock7/ali/p5a/", NULL),
+	B("ASUS",	"P5B",			1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/socket775/P5B/", NULL),
+	B("ASUS",	"P5B-Deluxe",		1, "http://www.asus.com/product.aspx?P_ID=bswT66IBSb2rEWNa", NULL),
+	B("ASUS",	"P5BV-M",		0, "ftp://ftp.asus.com.tw/pub/ASUS/mb/socket775/P5B-VM/", NULL),
+	B("ASUS",	"P5KC",			1, "http://www.asus.com/product.aspx?P_ID=fFZ8oUIGmLpwNMjj", NULL),
+	B("ASUS",	"P5L-MX",		1, "http://www.asus.com/product.aspx?P_ID=X70d3NCzH2DE9vWH", NULL),
+	B("ASUS",	"P5ND2-SLI Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=WY7XroDuUImVbgp5", NULL),
+	B("ASUS",	"P6T Deluxe",		1, "http://www.asus.com/product.aspx?P_ID=vXixf82co6Q5v0BZ", NULL),
+	B("ASUS",	"P6T Deluxe V2",	1, "http://www.asus.com/product.aspx?P_ID=iRlP8RG9han6saZx", NULL),
+	B("BCOM",	"WinNET100",		1, "http://www.coreboot.org/BCOM_WINNET100", "Used in the IGEL-316 thin client."),
+	B("Biostar",	"M6TBA",		0, "ftp://ftp.biostar-usa.com/manuals/M6TBA/", NULL),
+	B("Biostar",	"P4M80-M4",		1, "http://www.biostar-usa.com/mbdetails.asp?model=p4m80-m4", NULL),
+	B("Boser",	"HS-6637",		0, "http://www.boser.com.tw/manual/HS-62376637v3.4.pdf", NULL),
+	B("Dell",	"PowerEdge 1850",	1, "http://support.dell.com/support/edocs/systems/pe1850/en/index.htm", NULL),
+	B("DFI",	"855GME-MGF",		0, "http://www.dfi.com.tw/portal/CM/cmproduct/XX_cmproddetail/XX_WbProdsWindow?action=e&downloadType=&windowstate=normal&mode=view&downloadFlag=false&itemId=433", NULL),
+	B("DFI",	"Blood-Iron P35 T2RL",	1, "http://lp.lanparty.com.tw/portal/CM/cmproduct/XX_cmproddetail/XX_WbProdsWindow?itemId=516&downloadFlag=false&action=1", NULL),
+	B("Elitegroup",	"K7S5A",		1, "http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=279&CategoryID=1&DetailName=Specification&MenuID=1&LanID=0", NULL),
+	B("Elitegroup",	"K7S6A",		1, "http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=77&CategoryID=1&DetailName=Specification&MenuID=52&LanID=0", NULL),
+	B("Elitegroup",	"K7VTA3",		1, "http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=264&CategoryID=1&DetailName=Specification&MenuID=52&LanID=0", NULL),
+	B("Elitegroup",	"P6VAP-A+",		1, "http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=117&CategoryID=1&DetailName=Specification&MenuID=1&LanID=0", NULL),
+	B("EPoX",	"EP-8K5A2",		1, "http://www.epox.com/product.asp?ID=EP-8K5A2", NULL),
+	B("EPoX",	"EP-8RDA3+",		1, "http://www.epox.com/product.asp?ID=EP-8RDA3plus", NULL),
+	B("EPoX",	"EP-BX3",		1, "http://www.epox.com/product.asp?ID=EP-BX3", NULL),
+	B("FIC",	"VA-502",		0, "ftp://ftp.fic.com.tw/motherboard/manual/socket7/va-502/", NULL),
+	B("GIGABYTE",	"GA-2761GXDK",		1, "http://www.computerbase.de/news/hardware/mainboards/amd-systeme/2007/mai/gigabyte_dtx-mainboard/", NULL),
+	B("GIGABYTE",	"GA-6BXC",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1445", NULL),
+	B("GIGABYTE",	"GA-6BXDU",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1429", NULL),
+	B("GIGABYTE",	"GA-6ZMA",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1541", NULL),
+	B("GIGABYTE",	"GA-7VT600",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1666", NULL),
+	B("GIGABYTE",	"GA-7ZM",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1366", "Works fine if you remove jumper JP9 on the board and disable the flash protection BIOS option."),
+	B("GIGABYTE",	"GA-965P-DS4",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2288", NULL),
+	B("GIGABYTE",	"GA-EP35-DS3L",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2778", NULL),
+	B("GIGABYTE",	"GA-EX58-UD4P",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2986", NULL),
+	B("GIGABYTE",	"GA-K8N-SLI",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1928", NULL),
+	B("GIGABYTE",	"GA-M57SLI-S4",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2287", NULL),
+	B("GIGABYTE",	"GA-M61P-S3",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2434", NULL),
+	B("GIGABYTE",	"GA-MA69VM-S2",		1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2500", NULL),
+	B("GIGABYTE",	"GA-MA770T-UD3P",	1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=3096", NULL),
+	B("GIGABYTE",	"GA-MA78G-DS3H",	1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2800", NULL), /* TODO: Rev 1.x or 2.x? */
+	B("GIGABYTE",	"GA-MA78GM-S2H",	1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2758", NULL), /* TODO: Rev. 1.0, 1.1, or 2.x? */
+	B("GIGABYTE",	"GA-MA78GPM-DS2H",	1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2859", NULL),
+	B("GIGABYTE",	"GA-MA790FX-DQ6",	1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2690", NULL),
+	B("GIGABYTE",	"GA-MA790GP-DS4H",	1, "http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2887", NULL),
+	B("HP",		"DL145 G3",		1, "http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00816835&lang=en&cc=us&taskId=101&prodSeriesId=3219755&prodTypeId=15351", NULL),
+	B("HP",		"Vectra VL400 PC",	1, "http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00060658&lang=en&cc=us", NULL),
+	B("HP",		"Vectra VL420 SFF PC",	1, "http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00060661&lang=en&cc=us", NULL),
+	B("IBM",	"x3455",		1, "http://www-03.ibm.com/systems/x/hardware/rack/x3455/index.html", NULL),
+	B("Intel",	"D201GLY",		1, "http://www.intel.com/support/motherboards/desktop/d201gly/index.htm", NULL),
+	B("Intel",	"EP80759",		1, NULL, NULL),
+	B("IWILL",	"DK8-HTX",		1, "http://web.archive.org/web/20060507170150/http://www.iwill.net/product_2.asp?p_id=98", NULL),
+	B("Jetway",	"J7F4K1G5D-PB",		1, "http://www.jetway.com.tw/jetway/system/productshow2.asp?id=389&proname=J7F4K1G5D-P", NULL),
+	B("Kontron",	"986LCD-M",		1, "http://de.kontron.com/products/boards+and+mezzanines/embedded+motherboards/miniitx+motherboards/986lcdmmitx.html", NULL),
+	B("Mitac",	"6513WU",		1, "http://web.archive.org/web/20050313054828/http://www.mitac.com/micweb/products/tyan/6513wu/6513wu.htm", NULL),
+	B("MSI",	"MS-6153",		1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=336", NULL),
+	B("MSI",	"MS-6156",		1, "http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/boards/Motherboards/MicroStar/Ms6156/MS6156.htm", NULL),
+	B("MSI",	"MS-6178",		0, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=343", "Immediately powers off if you try to hot-plug the chip. However, this does '''not''' happen if you use coreboot."),
+	B("MSI",	"MS-6330 (K7T Turbo)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=327", NULL),
+	B("MSI",	"MS-6570 (K7N2)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=519", NULL),
+	B("MSI",	"MS-6590 (KT4 Ultra)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=502", NULL),
+	B("MSI",	"MS-6702E (K8T Neo2-F)",1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=588", NULL),
+	B("MSI",	"MS-6712 (KT4V)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=505", NULL),
+	B("MSI",	"MS-7005 (651M-L)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=559", NULL),
+	B("MSI",	"MS-7046",		1, "http://www.heimir.de/ms7046/", NULL),
+	B("MSI",	"MS-7065",		1, "http://browse.geekbench.ca/geekbench2/view/53114", NULL),
+	B("MSI",	"MS-7135 (K8N Neo3)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=170", NULL),
+	B("MSI",	"MS-7168 (Orion)",	1, "http://support.packardbell.co.uk/uk/item/index.php?i=spec_orion&pi=platform_honeymoon_istart", NULL),
+	B("MSI",	"MS-7236 (945PL Neo3)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1173", NULL),
+	B("MSI",	"MS-7255 (P4M890M)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1082", NULL),
+	B("MSI",	"MS-7260, (K9N Neo)",	0, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=255", "Interestingly flashrom does not work when the vendor BIOS is booted, but it ''does'' work flawlessly when the machine is booted with coreboot."),
+	B("MSI",	"MS-7312 (K9MM-V)",	1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1104", NULL),
+	B("MSI",	"MS-7345 (P35 Neo2-FIR)",1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1261", NULL),
+	B("MSI",	"MS-7368 (K9AG Neo2-Digital)",1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1241", NULL),
+	B("MSI",	"MS-7376 (K9A2 Platinum)",1, "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1332", NULL),
+	B("NEC",	"PowerMate 2000",	1, "http://support.necam.com/mobilesolutions/hardware/Desktops/pm2000/celeron/", NULL),
+	B("Nokia",	"IP530",		1, NULL, NULL),
+	B("PC Engines",	"Alix.1c",		1, "http://pcengines.ch/alix1c.htm", NULL),
+	B("PC Engines",	"Alix.2c2",		1, "http://pcengines.ch/alix2c2.htm", NULL),
+	B("PC Engines",	"Alix.2c3",		1, "http://pcengines.ch/alix2c3.htm", NULL),
+	B("PC Engines",	"Alix.3c3",		1, "http://pcengines.ch/alix3c3.htm", NULL),
+	B("PC Engines",	"Alix.3d3",		1, "http://pcengines.ch/alix3d3.htm", NULL),
+	B("PC Engines",	"WRAP.2E",		1, "http://pcengines.ch/wrap2e1.htm", NULL),
+	B("RCA",	"RM4100",		1, "http://www.settoplinux.org/index.php?title=RCA_RM4100", NULL),
+	B("Shuttle",	"AK31",			1, "http://www.motherboard.cz/mb/shuttle/AK31.htm", NULL),
+	B("Shuttle",	"AK38N",		1, "http://eu.shuttle.com/en/desktopdefault.aspx/tabid-36/558_read-9889/", NULL),
+	B("Shuttle",	"FD37",			1, "http://www.shuttle.eu/products/discontinued/barebones/sd37p2/", NULL),
+	B("Shuttle",	"FN25",			1, "http://www.shuttle.eu/products/discontinued/barebones/sn25p/?0=", NULL),
+	B("Soyo",	"SY-5VD",		0, "http://www.soyo.com/content/Downloads/163/&c=80&p=464&l=English", NULL),
+	B("Soyo",	"SY-7VCA",		1, "http://www.tomshardware.com/reviews/12-socket-370-motherboards,196-15.html", NULL),
+	B("Sun",	"Blade x6250",		1, "http://www.sun.com/servers/blades/x6250/", NULL),
+	B("Sun",	"Fire x4150",		0, "http://www.sun.com/servers/x64/x4150/", NULL),
+	B("Sun",	"Fire x4200",		0, "http://www.sun.com/servers/entry/x4200/", NULL),
+	B("Sun",	"Fire x4540",		0, "http://www.sun.com/servers/x64/x4540/", NULL),
+	B("Sun",	"Fire x4600",		0, "http://www.sun.com/servers/x64/x4600/", NULL),
+	B("Supermicro",	"H8QC8",		1, "http://www.supermicro.com/Aplus/motherboard/Opteron/nforce/H8QC8.cfm", NULL),
+	B("Supermicro",	"X8DTT-F",		1, "http://www.supermicro.com/products/motherboard/QPI/5500/X8DTT-F.cfm", NULL),
+	B("T-Online",	"S-100",		1, "http://wiki.freifunk-hannover.de/T-Online_S_100", NULL),
+	B("Tekram",	"P6Pro-A5",		1, "http://www.motherboard.cz/mb/tekram/P6Pro-A5.htm", NULL),
+	B("Termtek",	"TK-3370 (Rev:2.5B)",	1, NULL, NULL),
+	B("Thomson",	"IP1000",		1, "http://www.settoplinux.org/index.php?title=Thomson_IP1000", NULL),
+	B("TriGem",	"Lomita",		1, "http://www.e4allupgraders.info/dir1/motherboards/socket370/lomita.shtml", NULL),
+	B("Tyan",	"iS5375-1U",		1, "http://www.tyan.com/product_board_detail.aspx?pid=610", NULL),
+	B("Tyan",	"S1846",		1, "http://www.tyan.com/archive/products/html/tsunamiatx.html", NULL),
+	B("Tyan",	"S2466",		1, "http://www.tyan.com/product_board_detail.aspx?pid=461", NULL),
+	B("Tyan",	"S2498 (Tomcat K7M)",	1, "http://www.tyan.com/archive/products/html/tomcatk7m.html", NULL),
+	B("Tyan",	"S2881",		1, "http://www.tyan.com/product_board_detail.aspx?pid=115", NULL),
+	B("Tyan",	"S2882",		1, "http://www.tyan.com/product_board_detail.aspx?pid=121", NULL),
+	B("Tyan",	"S2882-D",		1, "http://www.tyan.com/product_board_detail.aspx?pid=127", NULL),
+	B("Tyan",	"S2891",		1, "http://www.tyan.com/product_board_detail.aspx?pid=144", NULL),
+	B("Tyan",	"S2892",		1, "http://www.tyan.com/product_board_detail.aspx?pid=145", NULL),
+	B("Tyan",	"S2895",		1, "http://www.tyan.com/archive/products/html/thunderk8we.html", NULL),
+	B("Tyan",	"S3095",		1, "http://www.tyan.com/product_board_detail.aspx?pid=181", NULL),
+	B("Tyan",	"S5180",		1, "http://www.tyan.com/product_board_detail.aspx?pid=456", NULL),
+	B("Tyan",	"S5191",		1, "http://www.tyan.com/product_board_detail.aspx?pid=343", NULL),
+	B("Tyan",	"S5197",		1, "http://www.tyan.com/product_board_detail.aspx?pid=349", NULL),
+	B("Tyan",	"S5211",		1, "http://www.tyan.com/product_board_detail.aspx?pid=591", NULL),
+	B("Tyan",	"S5211-1U",		1, "http://www.tyan.com/product_board_detail.aspx?pid=593", NULL),
+	B("Tyan",	"S5220",		1, "http://www.tyan.com/product_board_detail.aspx?pid=597", NULL),
+	B("Tyan",	"S5375",		1, "http://www.tyan.com/product_board_detail.aspx?pid=566", NULL),
+	B("Tyan",	"S5376G2NR/S5376WAG2NR",1, "http://www.tyan.com/product_board_detail.aspx?pid=605", NULL),
+	B("Tyan",	"S5377",		1, "http://www.tyan.com/product_SKU_spec.aspx?ProductType=MB&pid=642&SKU=600000017", NULL),
+	B("Tyan",	"S5382 (Tempest i5000PW)",1, "http://www.tyan.com/product_board_detail.aspx?pid=439", NULL),
+	B("Tyan",	"S5397",		1, "http://www.tyan.com/product_board_detail.aspx?pid=560", NULL),
+	B("VIA",	"EPIA M/MII/...",	1, "http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=202", NULL), /* EPIA-MII link for now */
+	B("VIA",	"EPIA SP",		1, "http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=261", NULL),
+	B("VIA",	"EPIA-CN",		1, "http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=400", NULL),
+	B("VIA",	"EPIA-EX15000G",	1, "http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=450", NULL),
+	B("VIA",	"EPIA-LN",		1, "http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=473", NULL),
+	B("VIA",	"EPIA-M700",		1, "http://via.com.tw/servlet/downloadSvl?motherboard_id=670&download_file_id=3700", NULL),
+	B("VIA",	"EPIA-N/NL",		1, "http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=221", NULL), /* EPIA-N link for now */
+	B("VIA",	"EPIA-NX15000G",	1, "http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=470", NULL),
+	B("VIA",	"NAB74X0",		1, "http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=590", NULL),
+	B("VIA",	"pc2500e",		1, "http://www.via.com.tw/en/initiatives/empowered/pc2500_mainboard/index.jsp", NULL),
+	B("VIA",	"PC3500G",		1, "http://www.via.com.tw/en/initiatives/empowered/pc3500_mainboard/index.jsp", NULL),
+	B("VIA",	"VB700X",		1, "http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=490", NULL),
 #endif
+
 	{},
 };
 
 /* Please keep this list alphabetically ordered by vendor/board. */
-const struct board_info boards_bad[] = {
-	/* Verified non-working boards (for now). */
+const struct board_info laptops_known[] = {
 #if defined(__i386__) || defined(__x86_64__)
-	{ "Abit",		"IS-10", },
-	{ "ASRock",		"K7VT4A+", },
-	{ "ASUS",		"MEW-AM", },
-	{ "ASUS",		"MEW-VM", },
-	{ "ASUS",		"P3B-F", },
-	{ "ASUS",		"P5BV-M", },
-	{ "Biostar",		"M6TBA", },
-	{ "Boser",		"HS-6637", },
-	{ "DFI",		"855GME-MGF", },
-	{ "FIC",		"VA-502", },
-	{ "MSI",		"MS-6178", },
-	{ "MSI",		"MS-7260 (K9N Neo)", },
-	{ "Soyo",		"SY-5VD", },
-	{ "Sun",		"Fire x4150", },
-	{ "Sun",		"Fire x4200", },
-	{ "Sun",		"Fire x4540", },
-	{ "Sun",		"Fire x4600", },
+	B("Acer",	"Aspire 1520",	1, "http://support.acer.com/us/en/acerpanam/notebook/0000/Acer/Aspire1520/Aspire1520nv.shtml", NULL),
+	B("Acer",	"Aspire One",	0, NULL, "http://www.coreboot.org/pipermail/coreboot/2009-May/048041.html"),
+	B("ASUS",	"Eee PC 701 4G",0, "http://www.asus.com/product.aspx?P_ID=h6SPd3tEzLEsrEiS", "It seems the chip (25X40VSIG) is behind some SPI flash translation layer (likely in the EC, the ENE KB3310)."),
+	B("Dell",	"Latitude CPi A366XT",0, "http://www.coreboot.org/Dell_Latitude_CPi_A366XT", "The laptop immediately powers off if you try to hot-swap the chip. It's not yet tested if write/erase would work on this laptop."),
+	B("HP/Compaq",	"nx9010",	0, "http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&cc=us&objectID=c00348514", "Hangs upon '''flashrom -V''' (needs hard power-cycle then)."),
+	B("IBM/Lenovo",	"Thinkpad T40p",0, "http://www.thinkwiki.org/wiki/Category:T40p", NULL),
+	B("IBM/Lenovo",	"240",		0, "http://www.stanford.edu/~bresnan//tp240.html", "Seems to (partially) work at first, but one block/sector cannot be written which then leaves you with a bricked laptop. Maybe this can be investigated and fixed in software later."),
+	B("Lenovo",	"3000 V100 TF05Cxx",1, "http://www5.pc.ibm.com/europe/products.nsf/products?openagent&brand=Lenovo3000Notebook&series=Lenovo+3000+V+Series#viewallmodelstop", NULL),
 #endif
-	{},
-};
 
-/* Please keep this list alphabetically ordered by vendor/board. */
-const struct board_info laptops_ok[] = {
-	/* Verified working laptops. */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Lenovo",		"3000 V100 TF05Cxx", },
-	{ "Acer",               "Aspire 1520", },
-#endif
-	{},
-};
-
-/* Please keep this list alphabetically ordered by vendor/board. */
-const struct board_info laptops_bad[] = {
-	/* Verified non-working laptops (for now). */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Acer",		"Aspire One", },
-	{ "ASUS",		"Eee PC 701 4G", },
-	{ "Dell",		"Latitude CPi A366XT", },
-	{ "HP/Compaq",		"nx9010", },
-	{ "IBM/Lenovo",		"Thinkpad T40p", },
-	{ "IBM/Lenovo",		"240", },
-#endif
 	{},
 };
 #endif
-
diff --git a/print_wiki.c b/print_wiki.c
index d2fd022..bce2634 100644
--- a/print_wiki.c
+++ b/print_wiki.c
@@ -19,26 +19,13 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <time.h>
 #include "flash.h"
 #include "flashchips.h"
 
-#if CONFIG_INTERNAL == 1
-struct board_info_url {
-	const char *vendor;
-	const char *name;
-	const char *url;
-};
-
-struct board_info_notes {
-	const char *vendor;
-	const char *name;
-	const char *note;
-};
-#endif
-
 const char *wiki_header = "= Supported devices =\n\n\
 <div style=\"margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; \
 background-color:#eeeeee; align:right; border:1px solid #aabbcc;\"><small>\n\
@@ -54,12 +41,7 @@
 
 const char *board_th = "{| border=\"0\" style=\"font-size: smaller\" \
 valign=\"top\"\n|- bgcolor=\"#6699dd\"\n! align=\"left\" | Vendor\n\
-! align=\"left\" | Mainboard\n! align=\"left\" | Status\n\n";
-
-const char *board_th2 = "{| border=\"0\" style=\"font-size: smaller\" \
-valign=\"top\"\n|- bgcolor=\"#6699dd\"\n! align=\"left\" | Vendor\n\
-! align=\"left\" | Mainboard\n! align=\"left\" | Required option\n\
-! align=\"left\" | Status\n\n";
+! align=\"left\" | Mainboard\n! align=\"left\" | Required option\n! align=\"left\" | Status\n\n";
 
 const char *board_intro = "\
 \n== Supported mainboards ==\n\n\
@@ -101,292 +83,6 @@
 untested laptops unless you have a means to recover from a flashing that goes \
 wrong (a working backup flash chip and/or good soldering skills).\n</div>\n";
 
-/* Please keep these lists alphabetically ordered by vendor/board. */
-const struct board_info_url boards_url[] = {
-	/* Verified working boards that don't need write-enables. */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Abit",		"AX8",			"http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?DEFTITLE=Y&fMTYPE=Socket%20939&pMODEL_NAME=AX8" },
-	{ "Abit",		"Fatal1ty F-I90HD",	"http://www.abit.com.tw/page/de/motherboard/motherboard_detail.php?pMODEL_NAME=Fatal1ty+F-I90HD&fMTYPE=LGA775" },
-	{ "Advantech",		"PCM-5820", 		"http://www.emacinc.com/sbc_pc_compatible/pcm_5820.htm" },
-	{ "ASI",		"MB-5BLMP",		"http://www.hojerteknik.com/winnet.htm" },
-	{ "ASRock",		"A770CrossFire",	"http://www.asrock.com/mb/overview.asp?Model=A770CrossFire&s=AM2\%2b" },
-	{ "ASRock",		"K8S8X",		"http://www.asrock.com/mb/overview.asp?Model=K8S8X" },
-	{ "ASRock",		"M3A790GXH/128M"	"http://www.asrock.com/MB/overview.asp?Model=M3A790GXH/128M" },
-	{ "ASUS",		"A7N8X Deluxe",		"http://www.asus.com/product.aspx?P_ID=wAsRYm41KTp78MFC" },
-	{ "ASUS",		"A7N8X-E Deluxe",	"http://www.asus.com/product.aspx?P_ID=TmQtPJv4jIxmL9C2" },
-	{ "ASUS",		"A7V133",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/socka/kt133a/a7v133/" },
-	{ "ASUS",		"A7V400-MX",		"http://www.asus.com/product.aspx?P_ID=hORgEHRBDLMfwAwx" },
-	{ "ASUS",		"A7V8X-MX",		"http://www.asus.com/product.aspx?P_ID=SEJOOYqfuQPitx2H" },
-	{ "ASUS",		"A8N-E",		"http://www.asus.com/product.aspx?P_ID=DzbA8hgqchMBOVRz" },
-	{ "ASUS",		"A8NE-FM/S",		"http://www.hardwareschotte.de/hardware/preise/proid_1266090/preis_ASUS+A8NE-FM" },
-	{ "ASUS",		"A8N-SLI",		"http://www.asus.com/product.aspx?P_ID=J9FKa8z2xVId3pDK" },
-	{ "ASUS",		"A8N-SLI Premium",	"http://www.asus.com/product.aspx?P_ID=nbulqxniNmzf0mH1" },
-	{ "ASUS",		"A8V Deluxe",		"http://www.asus.com/product.aspx?P_ID=tvpdgPNCPaABZRVU" },
-	{ "ASUS",		"A8V-E Deluxe",		"http://www.asus.com/product.aspx?P_ID=hQBPIJWEZnnGAZEh" },
-	{ "ASUS",		"A8V-E SE",		"http://www.asus.com/product.aspx?P_ID=VMfiJJRYTHM4gXIi" },
-	{ "ASUS",		"K8V",			"http://www.asus.com/product.aspx?P_ID=fG2KZOWF7v6MRFRm" },
-	{ "ASUS",		"K8V SE Deluxe",	"http://www.asus.com/product.aspx?P_ID=65HeDI8XM1u6Uy6o" },
-	{ "ASUS",		"K8V-X SE",		"http://www.asus.com/product.aspx?P_ID=lzDXlbBVHkdckHVr" },
-	{ "ASUS",		"M2A-MX",		"http://www.asus.com/product.aspx?P_ID=BmaOnPewi1JgltOZ" },
-	{ "ASUS",		"M2A-VM",		"http://www.asus.com/product.aspx?P_ID=St3pWpym8xXpROQS" },
-	{ "ASUS",		"M2N-E",		"http://www.asus.com/product.aspx?P_ID=NFlvt10av3F7ayQ9" },
-	{ "ASUS",		"M2V",			"http://www.asus.com/product.aspx?P_ID=OqYlEDFfF6ZqZGvp" },
-	{ "ASUS",		"M3A78-EM",		"http://www.asus.com/product.aspx?P_ID=KjpYqzmAd9vsTM2D" },
-	{ "ASUS",		"P2B",			"ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b/" },
-	{ "ASUS",		"P2B-D",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-d/" },
-	{ "ASUS",		"P2B-DS",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-ds/" },
-	{ "ASUS",		"P2B-F",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-d/" },
-	{ "ASUS",		"P2L97-S",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440lx/p2l97-s/" },
-	{ "ASUS",		"P5B",			"ftp://ftp.asus.com.tw/pub/ASUS/mb/socket775/P5B/" },
-	{ "ASUS",		"P5B-Deluxe",		"http://www.asus.com/product.aspx?P_ID=bswT66IBSb2rEWNa" },
-	{ "ASUS",		"P5KC",			"http://www.asus.com/product.aspx?P_ID=fFZ8oUIGmLpwNMjj" },
-	{ "ASUS",		"P5L-MX",		"http://www.asus.com/product.aspx?P_ID=X70d3NCzH2DE9vWH" },
-	{ "ASUS",		"P6T Deluxe",		"http://www.asus.com/product.aspx?P_ID=vXixf82co6Q5v0BZ" },
-	{ "ASUS",		"P6T Deluxe V2",	"http://www.asus.com/product.aspx?P_ID=iRlP8RG9han6saZx" },
-	{ "A-Trend",		"ATC-6220",		"http://www.motherboard.cz/mb/atrend/atc6220.htm" },
-	{ "BCOM",		"WinNET100",		"http://www.coreboot.org/BCOM_WINNET100" },
-	{ "DFI",		"Blood-Iron P35 T2RL",	"http://lp.lanparty.com.tw/portal/CM/cmproduct/XX_cmproddetail/XX_WbProdsWindow?itemId=516&downloadFlag=false&action=1" },
-	{ "Elitegroup",		"K7S5A",		"http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=279&CategoryID=1&DetailName=Specification&MenuID=1&LanID=0" },
-	{ "Elitegroup",		"P6VAP-A+",		"http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=117&CategoryID=1&DetailName=Specification&MenuID=1&LanID=0" },
-	{ "GIGABYTE",		"GA-6BXC",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1445" },
-	{ "GIGABYTE",		"GA-6BXDU",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1429" },
-	{ "GIGABYTE",		"GA-6ZMA",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1541" },
-	{ "GIGABYTE",		"GA-965P-DS4",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2288" },
-	{ "GIGABYTE",		"GA-EX58-UD4P",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2986" },
-	{ "GIGABYTE",		"GA-EP35-DS3L",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2778" },
-	{ "GIGABYTE",		"GA-MA69VM-S2",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2500" },
-	{ "GIGABYTE",		"GA-MA790GP-DS4H",	"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2887" },
-	{ "GIGABYTE",		"GA-MA78GPM-DS2H",	"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2859" },
-	{ "GIGABYTE",		"GA-MA770T-UD3P",	"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=3096" },
-	{ "Intel",		"EP80759",		NULL },
-	{ "Jetway",		"J7F4K1G5D-PB",		"http://www.jetway.com.tw/jetway/system/productshow2.asp?id=389&proname=J7F4K1G5D-P" },
-	{ "MSI",		"MS-6153",		"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=336" },
-	{ "MSI",		"MS-6156",		"http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/boards/Motherboards/MicroStar/Ms6156/MS6156.htm" },
-	{ "MSI",		"MS-6330 (K7T Turbo)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=327" },
-	{ "MSI",		"MS-6570 (K7N2)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=519" },
-	{ "MSI",		"MS-7065",		"http://browse.geekbench.ca/geekbench2/view/53114" },
-	{ "MSI",		"MS-7168 (Orion)",	"http://support.packardbell.co.uk/uk/item/index.php?i=spec_orion&pi=platform_honeymoon_istart" },
-	{ "MSI",		"MS-7236 (945PL Neo3)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1173" },
-	{ "MSI",		"MS-7255 (P4M890M)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1082" },
-	{ "MSI",		"MS-7345 (P35 Neo2-FIR)","http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1261" },
-	{ "MSI",		"MS-7312 (K9MM-V)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1104" },
-	{ "MSI",		"MS-7368 (K9AG Neo2-Digital)", "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1241" },
-	{ "MSI",		"MS-7376 (K9A2 Platinum)", "http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=1332" },
-	{ "NEC",		"PowerMate 2000",	"http://support.necam.com/mobilesolutions/hardware/Desktops/pm2000/celeron/" },
-	{ "PC Engines",		"Alix.1c",		"http://pcengines.ch/alix1c.htm" },
-	{ "PC Engines",		"Alix.2c2",		"http://pcengines.ch/alix2c2.htm" },
-	{ "PC Engines",		"Alix.2c3",		"http://pcengines.ch/alix2c3.htm" },
-	{ "PC Engines",		"Alix.3c3",		"http://pcengines.ch/alix3c3.htm" },
-	{ "PC Engines",		"Alix.3d3",		"http://pcengines.ch/alix3d3.htm" },
-	{ "PC Engines",		"WRAP.2E",		"http://pcengines.ch/wrap2e1.htm" },
-	{ "RCA",		"RM4100",		"http://www.settoplinux.org/index.php?title=RCA_RM4100" },
-	{ "Shuttle",		"FD37",			"http://www.shuttle.eu/products/discontinued/barebones/sd37p2/" },
-	{ "Sun",		"Blade x6250",		"http://www.sun.com/servers/blades/x6250/" },
-	{ "Supermicro",		"H8QC8",		"http://www.supermicro.com/Aplus/motherboard/Opteron/nforce/H8QC8.cfm" },
-	{ "Supermicro",		"X8DTT-F",		"http://www.supermicro.com/products/motherboard/QPI/5500/X8DTT-F.cfm" },
-	{ "Tekram",		"P6Pro-A5",		"http://www.motherboard.cz/mb/tekram/P6Pro-A5.htm" },
-	{ "Thomson",		"IP1000",		"http://www.settoplinux.org/index.php?title=Thomson_IP1000" },
-	{ "TriGem",		"Lomita",		"http://www.e4allupgraders.info/dir1/motherboards/socket370/lomita.shtml" },
-	{ "T-Online",		"S-100",		"http://wiki.freifunk-hannover.de/T-Online_S_100" },
-	{ "Tyan",		"iS5375-1U",		"http://www.tyan.com/product_board_detail.aspx?pid=610" },
-	{ "Tyan",		"S1846",		"http://www.tyan.com/archive/products/html/tsunamiatx.html" },
-	{ "Tyan",		"S2466",		"http://www.tyan.com/product_board_detail.aspx?pid=461" },
-	{ "Tyan",		"S2881",		"http://www.tyan.com/product_board_detail.aspx?pid=115" },
-	{ "Tyan",		"S2882",		"http://www.tyan.com/product_board_detail.aspx?pid=121" },
-	{ "Tyan",		"S2882-D",		"http://www.tyan.com/product_board_detail.aspx?pid=127" },
-	{ "Tyan",		"S2891",		"http://www.tyan.com/product_board_detail.aspx?pid=144" },
-	{ "Tyan",		"S2892",		"http://www.tyan.com/product_board_detail.aspx?pid=145" },
-	{ "Tyan",		"S2895",		"http://www.tyan.com/archive/products/html/thunderk8we.html" },
-	{ "Tyan",		"S3095",		"http://www.tyan.com/product_board_detail.aspx?pid=181" },
-	{ "Tyan",		"S5180",		"http://www.tyan.com/product_board_detail.aspx?pid=456" },
-	{ "Tyan",		"S5191",		"http://www.tyan.com/product_board_detail.aspx?pid=343" },
-	{ "Tyan",		"S5197",		"http://www.tyan.com/product_board_detail.aspx?pid=349" },
-	{ "Tyan",		"S5211",		"http://www.tyan.com/product_board_detail.aspx?pid=591" },
-	{ "Tyan",		"S5211-1U",		"http://www.tyan.com/product_board_detail.aspx?pid=593" },
-	{ "Tyan",		"S5220",		"http://www.tyan.com/product_board_detail.aspx?pid=597" },
-	{ "Tyan",		"S5375",		"http://www.tyan.com/product_board_detail.aspx?pid=566" },
-	{ "Tyan",		"S5376G2NR/S5376WAG2NR","http://www.tyan.com/product_board_detail.aspx?pid=605" },
-	{ "Tyan",		"S5377",		"http://www.tyan.com/product_SKU_spec.aspx?ProductType=MB&pid=642&SKU=600000017" },
-	{ "Tyan",		"S5382 (Tempest i5000PW)", "http://www.tyan.com/product_board_detail.aspx?pid=439" },
-	{ "Tyan",		"S5397",		"http://www.tyan.com/product_board_detail.aspx?pid=560" },
-	{ "VIA",		"EPIA-EX15000G",	"http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=450" },
-	{ "VIA",		"EPIA-LN",		"http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=473" },
-	{ "VIA",		"EPIA-M700",		"http://via.com.tw/servlet/downloadSvl?motherboard_id=670&download_file_id=3700" },
-	{ "VIA",		"EPIA-NX15000G",	"http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=470" },
-	{ "VIA",		"NAB74X0",		"http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=590" },
-	{ "VIA",		"pc2500e",		"http://www.via.com.tw/en/initiatives/empowered/pc2500_mainboard/index.jsp" },
-	{ "VIA",		"VB700X",		"http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=490" },
-
-	/* Verified working boards that DO need write-enables. */
-	{ "Abit",		"VT6X4",		"http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?fMTYPE=Slot%201&pMODEL_NAME=VT6X4" },
-	{ "Abit",		"IP35",			"http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?fMTYPE=LGA775&pMODEL_NAME=IP35" },
-	{ "Abit",		"IP35 Pro",		"http://www.abit.com.tw/page/de/motherboard/motherboard_detail.php?fMTYPE=LGA775&pMODEL_NAME=IP35%20Pro" },
-	{ "Abit",               "NF7-S",                "http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?fMTYPE=Socket%20A&pMODEL_NAME=NF7-S"},
-	{ "Acorp",		"6A815EPD",		"http://web.archive.org/web/20021206163652/www.acorp.com.tw/English/default.asp" },
-	{ "agami",		"Aruma",		"http://web.archive.org/web/20080212111524/http://www.agami.com/site/ais-6000-series" },
-	{ "Albatron",		"PM266A Pro",		"http://www.albatron.com.tw/English/Product/MB/pro_detail.asp?rlink=Overview&no=56" }, /* FIXME */
-	{ "AOpen",		"vKM400Am-S",		"http://usa.aopen.com/products_detail.aspx?Auno=824" },
-	{ "Artec Group",	"DBE61",		"http://wiki.thincan.org/DBE61" },
-	{ "Artec Group",	"DBE62",		"http://wiki.thincan.org/DBE62" },
-	{ "ASUS",		"A7V600-X",		"http://www.asus.com/product.aspx?P_ID=L2XYS0rmtCjeOr4k" },
-	{ "ASUS",		"A7V8X",		"http://www.asus.com/product.aspx?P_ID=qfpaGrAy2kLVo0f2" },
-	{ "ASUS",		"A7V8X-MX SE",		"http://www.asus.com/product.aspx?P_ID=1guVBT1qV5oqhHyZ" },
-	{ "ASUS",		"A7V8X-X",		"http://www.asus.com/product.aspx?P_ID=YcXfRrWHZ9RKoVmw" },
-	{ "ASUS",		"M2NBP-VM CSM",		"http://www.asus.com/product.aspx?P_ID=MnOfzTGd2KkwG0rF" },
-	{ "ASUS",		"M2V-MX",		"http://www.asus.com/product.aspx?P_ID=7grf8Ci4yxnqzt3z" },
-	{ "ASUS",		"P4B266",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/sock478/p4b266/" },
-	{ "ASUS",		"P4C800-E Deluxe",	"http://www.asus.com/product.aspx?P_ID=cFuVCr9bXXCckmcK" },
-	{ "ASUS",		"P4B266-LM",		"http://esupport.sony.com/US/perl/swu-list.pl?mdl=PCVRX650" },
-	{ "ASUS",		"P4P800-E Deluxe",	"http://www.asus.com/product.aspx?P_ID=INIJUvLlif7LHp3g" },
-	{ "ASUS",		"P5ND2-SLI Deluxe",	"http://www.asus.com/product.aspx?P_ID=WY7XroDuUImVbgp5" },
-	{ "ASUS",		"P5A",			"ftp://ftp.asus.com.tw/pub/ASUS/mb/sock7/ali/p5a/" },
-	{ "Biostar",		"P4M80-M4",		"http://www.biostar-usa.com/mbdetails.asp?model=p4m80-m4" },
-	{ "Dell",		"PowerEdge 1850",	"http://support.dell.com/support/edocs/systems/pe1850/en/index.htm" },
-	{ "Elitegroup",		"K7S6A",		"http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=77&CategoryID=1&DetailName=Specification&MenuID=52&LanID=0" },
-	{ "Elitegroup",		"K7VTA3",		"http://www.ecs.com.tw/ECSWebSite/Products/ProductsDetail.aspx?detailid=264&CategoryID=1&DetailName=Specification&MenuID=52&LanID=0" },
-	{ "EPoX",		"EP-8K5A2",		"http://www.epox.com/product.asp?ID=EP-8K5A2" },
-	{ "EPoX",		"EP-8RDA3+",		"http://www.epox.com/product.asp?ID=EP-8RDA3plus" },
-	{ "EPoX",		"EP-BX3",		"http://www.epox.com/product.asp?ID=EP-BX3" },
-	{ "GIGABYTE",		"GA-2761GXDK",		"http://www.computerbase.de/news/hardware/mainboards/amd-systeme/2007/mai/gigabyte_dtx-mainboard/" },
-	{ "GIGABYTE",		"GA-7VT600",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1666" },
-	{ "GIGABYTE",		"GA-7ZM",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1366" },
-	{ "GIGABYTE",		"GA-K8N-SLI",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1928" },
-	{ "GIGABYTE",		"GA-M57SLI-S4",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2287" },
-	{ "GIGABYTE",		"GA-M61P-S3",		"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2434" },
-	{ "GIGABYTE",		"GA-MA78G-DS3H",	"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2800" }, /* TODO: Rev 1.x or 2.x? */
-	{ "GIGABYTE",		"GA-MA78GM-S2H",	"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2758" }, /* TODO: Rev. 1.0, 1.1, or 2.x? */
-	{ "GIGABYTE",		"GA-MA790FX-DQ6",	"http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=2690" },
-	{ "HP",			"DL145 G3",		"http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00816835&lang=en&cc=us&taskId=101&prodSeriesId=3219755&prodTypeId=15351" },
-	{ "HP",			"Vectra VL400 PC",	"http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00060658&lang=en&cc=us" },
-	{ "HP",			"Vectra VL420 SFF PC",	"http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00060661&lang=en&cc=us" },
-	{ "IBM",		"x3455",		"http://www-03.ibm.com/systems/x/hardware/rack/x3455/index.html" },
-	{ "Intel",		"D201GLY",		"http://www.intel.com/support/motherboards/desktop/d201gly/index.htm" },
-	{ "IWILL",		"DK8-HTX",		"http://web.archive.org/web/20060507170150/http://www.iwill.net/product_2.asp?p_id=98" },
-	{ "Kontron",		"986LCD-M",		"http://de.kontron.com/products/boards+and+mezzanines/embedded+motherboards/miniitx+motherboards/986lcdmmitx.html" },
-	{ "Mitac",		"6513WU",		"http://web.archive.org/web/20050313054828/http://www.mitac.com/micweb/products/tyan/6513wu/6513wu.htm" },
-	{ "MSI",		"MS-6590 (KT4 Ultra)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=502" },
-	{ "MSI",		"MS-6702E (K8T Neo2-F)","http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=588" },
-	{ "MSI",		"MS-6712 (KT4V)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=505" },
-	{ "MSI",		"MS-7005 (651M-L)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=559" },
-	{ "MSI",		"MS-7046",		"http://www.heimir.de/ms7046/" },
-	{ "MSI",		"MS-7135 (K8N Neo3)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=170" },
-	{ "Shuttle",		"AK31",			"http://www.motherboard.cz/mb/shuttle/AK31.htm" },
-	{ "Shuttle",		"AK38N",		"http://eu.shuttle.com/en/desktopdefault.aspx/tabid-36/558_read-9889/" },
-	{ "Shuttle",		"FN25",			"http://www.shuttle.eu/products/discontinued/barebones/sn25p/?0=" },
-	{ "Soyo",		"SY-7VCA",		"http://www.tomshardware.com/reviews/12-socket-370-motherboards,196-15.html" },
-	{ "Tyan",		"S2498 (Tomcat K7M)",	"http://www.tyan.com/archive/products/html/tomcatk7m.html" },
-	{ "VIA",		"EPIA-CN",		"http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=400" },
-	{ "VIA",		"EPIA M/MII/...",	"http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=202" }, /* EPIA-MII link for now */
-	{ "VIA",		"EPIA-N/NL",		"http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=221" }, /* EPIA-N link for now */
-	{ "VIA",		"EPIA SP",		"http://www.via.com.tw/en/products/embedded/ProductDetail.jsp?productLine=1&motherboard_id=261" },
-	{ "VIA",		"PC3500G",		"http://www.via.com.tw/en/initiatives/empowered/pc3500_mainboard/index.jsp" },
-#endif
- 
-	/* Verified non-working boards (for now). */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Abit",		"IS-10",		"http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?pMODEL_NAME=IS-10&fMTYPE=Socket+478" },
-	{ "ASRock",		"K7VT4A+",		"http://www.asrock.com/mb/overview.asp?Model=K7VT4A%%2b&s=" },
-	{ "ASUS",		"MEW-AM",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/sock370/810/mew-am/" },
-	{ "ASUS",		"MEW-VM",		"http://www.elhvb.com/mboards/OEM/HP/manual/ASUS%20MEW-VM.htm" },
-	{ "ASUS",		"P3B-F",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p3b-f/" },
-	{ "ASUS",		"P5BV-M",		"ftp://ftp.asus.com.tw/pub/ASUS/mb/socket775/P5B-VM/" },
-	{ "Biostar",		"M6TBA",		"ftp://ftp.biostar-usa.com/manuals/M6TBA/" },
-	{ "Boser",		"HS-6637",		"http://www.boser.com.tw/manual/HS-62376637v3.4.pdf" },
-	{ "DFI",		"855GME-MGF",		"http://www.dfi.com.tw/portal/CM/cmproduct/XX_cmproddetail/XX_WbProdsWindow?action=e&downloadType=&windowstate=normal&mode=view&downloadFlag=false&itemId=433" },
-	{ "FIC",		"VA-502",		"ftp://ftp.fic.com.tw/motherboard/manual/socket7/va-502/" },
-	{ "MSI",		"MS-6178",		"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=343" },
-	{ "MSI",		"MS-7260 (K9N Neo)",	"http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=255" },
-	{ "Soyo",		"SY-5VD",		"http://www.soyo.com/content/Downloads/163/&c=80&p=464&l=English" },
-	{ "Sun",		"Fire x4540",		"http://www.sun.com/servers/x64/x4540/" },
-	{ "Sun",		"Fire x4150",		"http://www.sun.com/servers/x64/x4150/" },
-	{ "Sun",		"Fire x4200",		"http://www.sun.com/servers/entry/x4200/" },
-	{ "Sun",		"Fire x4600",		"http://www.sun.com/servers/x64/x4600/" },
-#endif
-
-	/* Verified working laptops. */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Acer",		"Aspire 1520",		"http://support.acer.com/us/en/acerpanam/notebook/0000/Acer/Aspire1520/Aspire1520nv.shtml" },
-	{ "Lenovo",		"3000 V100 TF05Cxx",	"http://www5.pc.ibm.com/europe/products.nsf/products?openagent&brand=Lenovo3000Notebook&series=Lenovo+3000+V+Series#viewallmodelstop" },
-#endif
-
-	/* Verified non-working laptops (for now). */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Acer",		"Aspire One",		NULL },
-	{ "ASUS",		"Eee PC 701 4G",	"http://www.asus.com/product.aspx?P_ID=h6SPd3tEzLEsrEiS" },
-	{ "Dell",		"Latitude CPi A366XT",	"http://www.coreboot.org/Dell_Latitude_CPi_A366XT" },
-	{ "HP/Compaq",		"nx9010",		"http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&cc=us&objectID=c00348514" },
-	{ "IBM/Lenovo",		"Thinkpad T40p",	"http://www.thinkwiki.org/wiki/Category:T40p" },
-	{ "IBM/Lenovo",		"240",			"http://www.stanford.edu/~bresnan//tp240.html" },
-#endif
-
-	{ NULL,			NULL,			0 },
-};
-
-/* Please keep these lists alphabetically ordered by vendor/board. */
-const struct board_info_notes boards_notes[] = {
-	/* Verified working boards that don't need write-enables. */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "ASI",		"MB-5BLMP",		"Used in the IGEL WinNET III thin client." },
-	{ "ASRock",		"K8S8X",		"The Super I/O isn't found on this board. See http://www.flashrom.org/pipermail/flashrom/2009-November/000937.html." },
-	{ "ASUS",		"A8V-E SE",		"See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html." },
-	{ "ASUS",		"M2A-VM",		"See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html." },
-	{ "BCOM",		"WinNET100",		"Used in the IGEL-316 thin client." },
-	{ "GIGABYTE",		"GA-7ZM",		"Works fine if you remove jumper JP9 on the board and disable the flash protection BIOS option." },
-	{ "ASUS",		"M2N-E",		"If the machine doesn't come up again after flashing, try resetting the NVRAM(CMOS). The MAC address of the onboard network card will change to the value stored in the new image, so backup the old address first. See http://www.flashrom.org/pipermail/flashrom/2009-November/000879.html" },
-#endif
-
-	/* Verified working boards that DO need write-enables. */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Acer",		"Aspire One",		"See http://www.coreboot.org/pipermail/coreboot/2009-May/048041.html." },
-#endif
-
-	/* Verified non-working boards (for now). */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "MSI",		"MS-6178",		"Immediately powers off if you try to hot-plug the chip. However, this does '''not''' happen if you use coreboot." },
-	{ "MSI",		"MS-7260 (K9N Neo)",	"Interestingly flashrom does not work when the vendor BIOS is booted, but it ''does'' work flawlessly when the machine is booted with coreboot." },
-#endif
-
-	/* Verified working laptops. */
-	/* None which need comments, yet... */
-
-	/* Verified non-working laptops (for now). */
-#if defined(__i386__) || defined(__x86_64__)
-	{ "Acer",		"Aspire One",		"http://www.coreboot.org/pipermail/coreboot/2009-May/048041.html" },
-	{ "ASUS",		"Eee PC 701 4G",	"It seems the chip (25X40VSIG) is behind some SPI flash translation layer (likely in the EC, the ENE KB3310)." },
-	{ "Dell",		"Latitude CPi A366XT",	"The laptop immediately powers off if you try to hot-swap the chip. It's not yet tested if write/erase would work on this laptop." },
-	{ "HP/Compaq",		"nx9010",		"Hangs upon '''flashrom -V''' (needs hard power-cycle then)." },
-	{ "IBM/Lenovo",		"Thinkpad T40p",	"Seems to (partially) work at first, but one block/sector cannot be written which then leaves you with a bricked laptop. Maybe this can be investigated and fixed in software later." },
-#endif
-
-	{ NULL,			NULL,			0 },
-};
-
-static int url(const char *vendor, const char *board)
-{
-	int i;
-	const struct board_info_url *b = boards_url;
-
-        for (i = 0; b[i].vendor != NULL; i++) {
-		if (!strcmp(vendor, b[i].vendor) && !strcmp(board, b[i].name))
-			return i;
-	}
-
-	return -1;
-}
-
-static int note(const char *vendor, const char *board)
-{
-	int i;
-	const struct board_info_notes *n = boards_notes;
-
-        for (i = 0; n[i].vendor != NULL; i++) {
-		if (!strcmp(vendor, n[i].vendor) && !strcmp(board, n[i].name))
-			return i;
-	}
-
-	return -1;
-}
-
 static void print_supported_chipsets_wiki(int cols)
 {
 	int i, j, enablescount = 0, color = 1;
@@ -421,47 +117,64 @@
 	printf("\n|}\n\n|}\n");
 }
 
-static void wiki_helper(const char *heading, const char *status,
-			int cols, const struct board_info boards[])
+static void wiki_helper(const char *devicetype, int cols,
+			const struct board_info boards[])
 {
-	int i, j, k, c, boardcount = 0, color = 1, num_notes = 0;
-	const struct board_info *b;
-	const struct board_info_url *u = boards_url;
+	int i, j, k = 0, boardcount_good = 0, boardcount_bad = 0, color = 1;
+	int num_notes = 0;
 	char *notes = calloc(1, 1);
 	char tmp[900 + 1];
+	struct board_pciid_enable *b = board_pciid_enables;
 
-	for (b = boards; b->vendor != NULL; b++)
-		boardcount++;
+	for (i = 0; boards[i].vendor != NULL; i++) {
+		if (boards[i].working)
+			boardcount_good++;
+		else
+			boardcount_bad++;
+	}
 
-	printf("\n'''%s'''\n\nTotal amount of boards: '''%d'''\n\n"
+	printf("\n\nTotal amount of supported %s: '''%d'''. "
+	       "Not yet supported (i.e., known-bad): '''%d'''.\n\n"
 	       "{| border=\"0\" valign=\"top\"\n| valign=\"top\"|\n\n%s",
-	       heading, boardcount, board_th);
+	       devicetype, boardcount_good, boardcount_bad, board_th);
 
-        for (i = 0, j = 0, b = boards; b[i].vendor != NULL; i++, j++) {
+	for (i = 0, j = 0; boards[i].vendor != NULL; i++, j++) {
+
 		/* Alternate colors if the vendor changes. */
-		if (i > 0 && strcmp(b[i].vendor, b[i - 1].vendor))
+		if (i > 0 && strcmp(boards[i].vendor, boards[i - 1].vendor))
 			color = !color;
 
-		k = url(b[i].vendor, b[i].name);
-		c = note(b[i].vendor, b[i].name);
+		k = 0;
+		while ((b[k].vendor_name != NULL)
+			&& !strcmp(b[k].vendor_name, boards[i].vendor)
+			&& !strcmp(b[k].board_name, boards[i].name)) {
+			k++;
+		}
 
-		printf("|- bgcolor=\"#%s\"\n| %s || %s%s %s%s ||"
-		       " {{%s}}", (color) ? "eeeeee" : "dddddd", b[i].vendor,
-		       (k != -1 && u[k].url) ? "[" : "",
-		       (k != -1 && u[k].url) ? u[k].url : "",
-		       b[i].name, (k != -1 && u[k].url) ? "]" : "", status);
+		printf("|- bgcolor=\"#%s\"\n| %s || %s%s %s%s || %s%s%s%s "
+		       "|| {{%s}}", (color) ? "eeeeee" : "dddddd",
+		       boards[i].vendor,
+		       boards[i].url ? "[" : "",
+		       boards[i].url ? boards[i].url : "",
+		       boards[i].name,
+		       boards[i].url ? "]" : "",
+		       b[k].lb_vendor ? "-m " : "&mdash;",
+		       b[k].lb_vendor ? b[k].lb_vendor : "",
+		       b[k].lb_vendor ? ":" : "",
+		       b[k].lb_vendor ? b[k].lb_part : "",
+		       (boards[i].working) ? "OK" : "No");
 
-		if (c != -1) {
+		if (boards[i].note) {
 			printf("<sup>%d</sup>\n", num_notes + 1);
 			snprintf((char *)&tmp, 900, "<sup>%d</sup> %s<br />\n",
-				 1 + num_notes++, boards_notes[c].note);
+				 1 + num_notes++, boards[i].note);
 			notes = strcat_realloc(notes, (char *)&tmp);
 		} else {
 			printf("\n");
 		}
 
 		/* Split table in 'cols' columns. */
-		if (j >= (boardcount / cols + 1)) {
+		if (j >= ((boardcount_good + boardcount_bad) / cols + 1)) {
 			printf("\n|}\n\n| valign=\"top\"|\n\n%s", board_th);
 			j = 0;
 		}
@@ -474,58 +187,13 @@
 	free(notes);
 }
 
-static void wiki_helper2(const char *heading, int cols)
-{
-	int i, j, k, boardcount = 0, color = 1;
-	struct board_pciid_enable *b;
-	const struct board_info_url *u = boards_url;
-
-	for (b = board_pciid_enables; b->vendor_name != NULL; b++)
-		boardcount++;
-
-	printf("\n'''%s'''\n\nTotal amount of boards: '''%d'''\n\n"
-	       "{| border=\"0\" valign=\"top\"\n| valign=\"top\"|\n\n%s",
-	       heading, boardcount, board_th2);
-
-	b = board_pciid_enables;
-	for (i = 0, j = 0; b[i].vendor_name != NULL; i++, j++) {
-		/* Alternate colors if the vendor changes. */
-		if (i > 0 && strcmp(b[i].vendor_name, b[i - 1].vendor_name))
-			color = !color;
-
-		k = url(b[i].vendor_name, b[i].board_name);
-
-		printf("|- bgcolor=\"#%s\"\n| %s || %s%s %s%s "
-		       "|| %s%s%s%s || {{%s}}\n", (color) ? "eeeeee" : "dddddd",
-		       b[i].vendor_name, (k != -1 && u[k].url) ? "[" : "",
-		       (k != -1 && u[k].url) ? u[k].url : "", b[i].board_name,
-		       (k != -1 && u[k].url) ? "]" : "",
-		       (b[i].lb_vendor) ? "-m " : "&mdash;",
-		       (b[i].lb_vendor) ? b[i].lb_vendor : "",
-		       (b[i].lb_vendor) ? ":" : "",
-		       (b[i].lb_vendor) ? b[i].lb_part : "",
-		       (b[i].status == OK) ? "OK" : "?3");
-
-		/* Split table in 'cols' columns. */
-		if (j >= (boardcount / cols + 1)) {
-			printf("\n|}\n\n| valign=\"top\"|\n\n%s", board_th2);
-			j = 0;
-		}
-	}
-
-	printf("\n|}\n\n|}\n");
-}
-
 static void print_supported_boards_wiki(void)
 {
 	printf("%s", board_intro);
-	wiki_helper("Known good (worked out of the box)", "OK", 3, boards_ok);
-	wiki_helper2("Known good (with write-enable code in flashrom)", 2);
-	wiki_helper("Not supported (yet)", "No", 3, boards_bad);
+	wiki_helper("boards", 2, boards_known);
 
 	printf("%s", laptop_intro);
-	wiki_helper("Known good (worked out of the box)", "OK", 1, laptops_ok);
-	wiki_helper("Not supported (yet)", "No", 1, laptops_bad);
+	wiki_helper("laptops", 1, laptops_known);
 }
 #endif
 
