chipset_enable: Optionally check PCI revision field

We used to match compatible chipset devices by vendor and device ID
only. On some chipsets, e.g. AMD southbridges / SoCs, this is not
enough, though, as the device IDs are rarely updated.

In the case of AMD chipsets, we can identify the chipset with the
revision ID of the SMBus device. So we add that field to the chipset
enable list.

Change-Id: I4021cf8e83c605fde4360c274b39481b1e0ff070
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72573
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/chipset_enable.c b/chipset_enable.c
index 147ce44..0d796db 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -1717,6 +1717,9 @@
 
 #endif
 
+#define REV(r)	true, r
+#define ANY_REV	false, 0x00
+
 #define B_P	(BUS_PARALLEL)
 #define B_PFL	(BUS_NONSPI)
 #define B_PFLS	(BUS_NONSPI | BUS_SPI)
@@ -1730,61 +1733,61 @@
 /* Please keep this list numerically sorted by vendor/device ID. */
 const struct penable chipset_enables[] = {
 #if defined(__i386__) || defined(__x86_64__)
-	{0x1002, 0x4377, B_PFL,  OK,  "ATI", "SB400",				enable_flash_sb400},
-	{0x1002, 0x438d, B_FLS,  OK,  "AMD", "SB600",				enable_flash_sb600},
-	{0x1002, 0x439d, B_FLS,  OK,  "AMD", "SB7x0/SB8x0/SB9x0",		enable_flash_sb600},
-	{0x100b, 0x0510, B_PFL,  NT,  "AMD", "SC1100",				enable_flash_sc1100},
-	{0x1022, 0x2080, B_PFL,  OK,  "AMD", "CS5536",				enable_flash_cs5536},
-	{0x1022, 0x2090, B_PFL,  OK,  "AMD", "CS5536",				enable_flash_cs5536},
-	{0x1022, 0x3000, B_PFL,  OK,  "AMD", "Elan SC520",			get_flashbase_sc520},
-	{0x1022, 0x7440, B_PFL,  OK,  "AMD", "AMD-768",				enable_flash_amd_768_8111},
-	{0x1022, 0x7468, B_PFL,  OK,  "AMD", "AMD-8111",			enable_flash_amd_768_8111},
-	{0x1022, 0x780e, B_FLS,  OK,  "AMD", "FCH",				enable_flash_sb600},
-	{0x1022, 0x790e, B_FLS,  OK,  "AMD", "FP4",				enable_flash_sb600},
-	{0x1039, 0x0406, B_PFL,  NT,  "SiS", "501/5101/5501",			enable_flash_sis501},
-	{0x1039, 0x0496, B_PFL,  NT,  "SiS", "85C496+497",			enable_flash_sis85c496},
-	{0x1039, 0x0530, B_PFL,  OK,  "SiS", "530",				enable_flash_sis530},
-	{0x1039, 0x0540, B_PFL,  NT,  "SiS", "540",				enable_flash_sis540},
-	{0x1039, 0x0620, B_PFL,  NT,  "SiS", "620",				enable_flash_sis530},
-	{0x1039, 0x0630, B_PFL,  OK,  "SiS", "630",				enable_flash_sis540},
-	{0x1039, 0x0635, B_PFL,  NT,  "SiS", "635",				enable_flash_sis540},
-	{0x1039, 0x0640, B_PFL,  NT,  "SiS", "640",				enable_flash_sis540},
-	{0x1039, 0x0645, B_PFL,  NT,  "SiS", "645",				enable_flash_sis540},
-	{0x1039, 0x0646, B_PFL,  OK,  "SiS", "645DX",				enable_flash_sis540},
-	{0x1039, 0x0648, B_PFL,  OK,  "SiS", "648",				enable_flash_sis540},
-	{0x1039, 0x0650, B_PFL,  OK,  "SiS", "650",				enable_flash_sis540},
-	{0x1039, 0x0651, B_PFL,  OK,  "SiS", "651",				enable_flash_sis540},
-	{0x1039, 0x0655, B_PFL,  NT,  "SiS", "655",				enable_flash_sis540},
-	{0x1039, 0x0661, B_PFL,  OK,  "SiS", "661",				enable_flash_sis540},
-	{0x1039, 0x0730, B_PFL,  OK,  "SiS", "730",				enable_flash_sis540},
-	{0x1039, 0x0733, B_PFL,  NT,  "SiS", "733",				enable_flash_sis540},
-	{0x1039, 0x0735, B_PFL,  OK,  "SiS", "735",				enable_flash_sis540},
-	{0x1039, 0x0740, B_PFL,  NT,  "SiS", "740",				enable_flash_sis540},
-	{0x1039, 0x0741, B_PFL,  OK,  "SiS", "741",				enable_flash_sis540},
-	{0x1039, 0x0745, B_PFL,  OK,  "SiS", "745",				enable_flash_sis540},
-	{0x1039, 0x0746, B_PFL,  NT,  "SiS", "746",				enable_flash_sis540},
-	{0x1039, 0x0748, B_PFL,  NT,  "SiS", "748",				enable_flash_sis540},
-	{0x1039, 0x0755, B_PFL,  OK,  "SiS", "755",				enable_flash_sis540},
-	{0x1039, 0x5511, B_PFL,  NT,  "SiS", "5511",				enable_flash_sis5511},
-	{0x1039, 0x5571, B_PFL,  NT,  "SiS", "5571",				enable_flash_sis530},
-	{0x1039, 0x5591, B_PFL,  NT,  "SiS", "5591/5592",			enable_flash_sis530},
-	{0x1039, 0x5596, B_PFL,  NT,  "SiS", "5596",				enable_flash_sis5511},
-	{0x1039, 0x5597, B_PFL,  NT,  "SiS", "5597/5598/5581/5120",		enable_flash_sis530},
-	{0x1039, 0x5600, B_PFL,  NT,  "SiS", "600",				enable_flash_sis530},
-	{0x1078, 0x0100, B_P,    OK,  "AMD", "CS5530(A)",			enable_flash_cs5530},
-	{0x10b9, 0x1533, B_PFL,  OK,  "ALi", "M1533",				enable_flash_ali_m1533},
-	{0x10de, 0x0030, B_PFL,  OK,  "NVIDIA", "nForce4/MCP4",			enable_flash_nvidia_nforce2},
-	{0x10de, 0x0050, B_PFL,  OK,  "NVIDIA", "CK804",			enable_flash_ck804}, /* LPC */
-	{0x10de, 0x0051, B_PFL,  OK,  "NVIDIA", "CK804",			enable_flash_ck804}, /* Pro */
-	{0x10de, 0x0060, B_PFL,  OK,  "NVIDIA", "NForce2",			enable_flash_nvidia_nforce2},
-	{0x10de, 0x00e0, B_PFL,  OK,  "NVIDIA", "NForce3",			enable_flash_nvidia_nforce2},
+	{0x1002, 0x4377,   ANY_REV, B_PFL,  OK,  "ATI", "SB400",			enable_flash_sb400},
+	{0x1002, 0x438d,   ANY_REV, B_FLS,  OK,  "AMD", "SB600",			enable_flash_sb600},
+	{0x1002, 0x439d,   ANY_REV, B_FLS,  OK,  "AMD", "SB7x0/SB8x0/SB9x0",		enable_flash_sb600},
+	{0x100b, 0x0510,   ANY_REV, B_PFL,  NT,  "AMD", "SC1100",			enable_flash_sc1100},
+	{0x1022, 0x2080,   ANY_REV, B_PFL,  OK,  "AMD", "CS5536",			enable_flash_cs5536},
+	{0x1022, 0x2090,   ANY_REV, B_PFL,  OK,  "AMD", "CS5536",			enable_flash_cs5536},
+	{0x1022, 0x3000,   ANY_REV, B_PFL,  OK,  "AMD", "Elan SC520",			get_flashbase_sc520},
+	{0x1022, 0x7440,   ANY_REV, B_PFL,  OK,  "AMD", "AMD-768",			enable_flash_amd_768_8111},
+	{0x1022, 0x7468,   ANY_REV, B_PFL,  OK,  "AMD", "AMD-8111",			enable_flash_amd_768_8111},
+	{0x1022, 0x780e,   ANY_REV, B_FLS,  OK,  "AMD", "FCH",				enable_flash_sb600},
+	{0x1022, 0x790e,   ANY_REV, B_FLS,  OK,  "AMD", "FP4",				enable_flash_sb600},
+	{0x1039, 0x0406,   ANY_REV, B_PFL,  NT,  "SiS", "501/5101/5501",		enable_flash_sis501},
+	{0x1039, 0x0496,   ANY_REV, B_PFL,  NT,  "SiS", "85C496+497",			enable_flash_sis85c496},
+	{0x1039, 0x0530,   ANY_REV, B_PFL,  OK,  "SiS", "530",				enable_flash_sis530},
+	{0x1039, 0x0540,   ANY_REV, B_PFL,  NT,  "SiS", "540",				enable_flash_sis540},
+	{0x1039, 0x0620,   ANY_REV, B_PFL,  NT,  "SiS", "620",				enable_flash_sis530},
+	{0x1039, 0x0630,   ANY_REV, B_PFL,  OK,  "SiS", "630",				enable_flash_sis540},
+	{0x1039, 0x0635,   ANY_REV, B_PFL,  NT,  "SiS", "635",				enable_flash_sis540},
+	{0x1039, 0x0640,   ANY_REV, B_PFL,  NT,  "SiS", "640",				enable_flash_sis540},
+	{0x1039, 0x0645,   ANY_REV, B_PFL,  NT,  "SiS", "645",				enable_flash_sis540},
+	{0x1039, 0x0646,   ANY_REV, B_PFL,  OK,  "SiS", "645DX",			enable_flash_sis540},
+	{0x1039, 0x0648,   ANY_REV, B_PFL,  OK,  "SiS", "648",				enable_flash_sis540},
+	{0x1039, 0x0650,   ANY_REV, B_PFL,  OK,  "SiS", "650",				enable_flash_sis540},
+	{0x1039, 0x0651,   ANY_REV, B_PFL,  OK,  "SiS", "651",				enable_flash_sis540},
+	{0x1039, 0x0655,   ANY_REV, B_PFL,  NT,  "SiS", "655",				enable_flash_sis540},
+	{0x1039, 0x0661,   ANY_REV, B_PFL,  OK,  "SiS", "661",				enable_flash_sis540},
+	{0x1039, 0x0730,   ANY_REV, B_PFL,  OK,  "SiS", "730",				enable_flash_sis540},
+	{0x1039, 0x0733,   ANY_REV, B_PFL,  NT,  "SiS", "733",				enable_flash_sis540},
+	{0x1039, 0x0735,   ANY_REV, B_PFL,  OK,  "SiS", "735",				enable_flash_sis540},
+	{0x1039, 0x0740,   ANY_REV, B_PFL,  NT,  "SiS", "740",				enable_flash_sis540},
+	{0x1039, 0x0741,   ANY_REV, B_PFL,  OK,  "SiS", "741",				enable_flash_sis540},
+	{0x1039, 0x0745,   ANY_REV, B_PFL,  OK,  "SiS", "745",				enable_flash_sis540},
+	{0x1039, 0x0746,   ANY_REV, B_PFL,  NT,  "SiS", "746",				enable_flash_sis540},
+	{0x1039, 0x0748,   ANY_REV, B_PFL,  NT,  "SiS", "748",				enable_flash_sis540},
+	{0x1039, 0x0755,   ANY_REV, B_PFL,  OK,  "SiS", "755",				enable_flash_sis540},
+	{0x1039, 0x5511,   ANY_REV, B_PFL,  NT,  "SiS", "5511",				enable_flash_sis5511},
+	{0x1039, 0x5571,   ANY_REV, B_PFL,  NT,  "SiS", "5571",				enable_flash_sis530},
+	{0x1039, 0x5591,   ANY_REV, B_PFL,  NT,  "SiS", "5591/5592",			enable_flash_sis530},
+	{0x1039, 0x5596,   ANY_REV, B_PFL,  NT,  "SiS", "5596",				enable_flash_sis5511},
+	{0x1039, 0x5597,   ANY_REV, B_PFL,  NT,  "SiS", "5597/5598/5581/5120",		enable_flash_sis530},
+	{0x1039, 0x5600,   ANY_REV, B_PFL,  NT,  "SiS", "600",				enable_flash_sis530},
+	{0x1078, 0x0100,   ANY_REV, B_P,    OK,  "AMD", "CS5530(A)",			enable_flash_cs5530},
+	{0x10b9, 0x1533,   ANY_REV, B_PFL,  OK,  "ALi", "M1533",			enable_flash_ali_m1533},
+	{0x10de, 0x0030,   ANY_REV, B_PFL,  OK,  "NVIDIA", "nForce4/MCP4",		enable_flash_nvidia_nforce2},
+	{0x10de, 0x0050,   ANY_REV, B_PFL,  OK,  "NVIDIA", "CK804",			enable_flash_ck804}, /* LPC */
+	{0x10de, 0x0051,   ANY_REV, B_PFL,  OK,  "NVIDIA", "CK804",			enable_flash_ck804}, /* Pro */
+	{0x10de, 0x0060,   ANY_REV, B_PFL,  OK,  "NVIDIA", "NForce2",			enable_flash_nvidia_nforce2},
+	{0x10de, 0x00e0,   ANY_REV, B_PFL,  OK,  "NVIDIA", "NForce3",			enable_flash_nvidia_nforce2},
 	/* Slave, should not be here, to fix known bug for A01. */
-	{0x10de, 0x00d3, B_PFL,  OK,  "NVIDIA", "CK804",			enable_flash_ck804},
-	{0x10de, 0x0260, B_PFL,  OK,  "NVIDIA", "MCP51",			enable_flash_ck804},
-	{0x10de, 0x0261, B_PFL,  OK,  "NVIDIA", "MCP51",			enable_flash_ck804},
-	{0x10de, 0x0262, B_PFL,  NT,  "NVIDIA", "MCP51",			enable_flash_ck804},
-	{0x10de, 0x0263, B_PFL,  NT,  "NVIDIA", "MCP51",			enable_flash_ck804},
-	{0x10de, 0x0360, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* M57SLI*/
+	{0x10de, 0x00d3,   ANY_REV, B_PFL,  OK,  "NVIDIA", "CK804",			enable_flash_ck804},
+	{0x10de, 0x0260,   ANY_REV, B_PFL,  OK,  "NVIDIA", "MCP51",			enable_flash_ck804},
+	{0x10de, 0x0261,   ANY_REV, B_PFL,  OK,  "NVIDIA", "MCP51",			enable_flash_ck804},
+	{0x10de, 0x0262,   ANY_REV, B_PFL,  NT,  "NVIDIA", "MCP51",			enable_flash_ck804},
+	{0x10de, 0x0263,   ANY_REV, B_PFL,  NT,  "NVIDIA", "MCP51",			enable_flash_ck804},
+	{0x10de, 0x0360,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* M57SLI*/
 	/* 10de:0361 is present in Tyan S2915 OEM systems, but not connected to
 	 * the flash chip. Instead, 10de:0364 is connected to the flash chip.
 	 * Until we have PCI device class matching or some fallback mechanism,
@@ -1792,352 +1795,352 @@
 	 * dual-MCP55 boards.
 	 */
 #if 0
-	{0x10de, 0x0361, B_L,    NT,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
+	{0x10de, 0x0361,   ANY_REV, B_L,    NT,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
 #endif
-	{0x10de, 0x0362, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
-	{0x10de, 0x0363, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
-	{0x10de, 0x0364, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
-	{0x10de, 0x0365, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
-	{0x10de, 0x0366, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
-	{0x10de, 0x0367, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* Pro */
-	{0x10de, 0x03e0, B_LS,   OK,  "NVIDIA", "MCP61",			enable_flash_mcp6x_7x},
-	{0x10de, 0x03e1, B_LS,   OK,  "NVIDIA", "MCP61",			enable_flash_mcp6x_7x},
-	{0x10de, 0x03e3, B_LS,   NT,  "NVIDIA", "MCP61",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0440, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0441, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0442, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0443, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0548, B_LS,   OK,  "NVIDIA", "MCP67",			enable_flash_mcp6x_7x},
-	{0x10de, 0x075c, B_LS,   OK,  "NVIDIA", "MCP78S",			enable_flash_mcp6x_7x},
-	{0x10de, 0x075d, B_LS,   OK,  "NVIDIA", "MCP78S",			enable_flash_mcp6x_7x},
-	{0x10de, 0x07d7, B_LS,   OK,  "NVIDIA", "MCP73",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0aac, B_LS,   OK,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0aad, B_LS,   NT,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0aae, B_LS,   NT,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0aaf, B_LS,   NT,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
-	{0x10de, 0x0d80, B_LS,   NT,  "NVIDIA", "MCP89",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0362,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
+	{0x10de, 0x0363,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
+	{0x10de, 0x0364,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
+	{0x10de, 0x0365,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
+	{0x10de, 0x0366,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* LPC */
+	{0x10de, 0x0367,   ANY_REV, B_L,    OK,  "NVIDIA", "MCP55",			enable_flash_mcp55}, /* Pro */
+	{0x10de, 0x03e0,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP61",			enable_flash_mcp6x_7x},
+	{0x10de, 0x03e1,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP61",			enable_flash_mcp6x_7x},
+	{0x10de, 0x03e3,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP61",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0440,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0441,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0442,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0443,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP65",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0548,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP67",			enable_flash_mcp6x_7x},
+	{0x10de, 0x075c,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP78S",			enable_flash_mcp6x_7x},
+	{0x10de, 0x075d,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP78S",			enable_flash_mcp6x_7x},
+	{0x10de, 0x07d7,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP73",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0aac,   ANY_REV, B_LS,   OK,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0aad,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0aae,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0aaf,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP79",			enable_flash_mcp6x_7x},
+	{0x10de, 0x0d80,   ANY_REV, B_LS,   NT,  "NVIDIA", "MCP89",			enable_flash_mcp6x_7x},
 	/* VIA northbridges */
-	{0x1106, 0x0585, B_PFLS, NT,  "VIA", "VT82C585VPX",			via_no_byte_merge},
-	{0x1106, 0x0595, B_PFLS, NT,  "VIA", "VT82C595",			via_no_byte_merge},
-	{0x1106, 0x0597, B_PFLS, NT,  "VIA", "VT82C597",			via_no_byte_merge},
-	{0x1106, 0x0601, B_PFLS, NT,  "VIA", "VT8601/VT8601A",			via_no_byte_merge},
-	{0x1106, 0x0691, B_PFLS, OK,  "VIA", "VT82C69x",			via_no_byte_merge},
-	{0x1106, 0x8601, B_PFLS, NT,  "VIA", "VT8601T",				via_no_byte_merge},
+	{0x1106, 0x0585,   ANY_REV, B_PFLS, NT,  "VIA", "VT82C585VPX",			via_no_byte_merge},
+	{0x1106, 0x0595,   ANY_REV, B_PFLS, NT,  "VIA", "VT82C595",			via_no_byte_merge},
+	{0x1106, 0x0597,   ANY_REV, B_PFLS, NT,  "VIA", "VT82C597",			via_no_byte_merge},
+	{0x1106, 0x0601,   ANY_REV, B_PFLS, NT,  "VIA", "VT8601/VT8601A",		via_no_byte_merge},
+	{0x1106, 0x0691,   ANY_REV, B_PFLS, OK,  "VIA", "VT82C69x",			via_no_byte_merge},
+	{0x1106, 0x8601,   ANY_REV, B_PFLS, NT,  "VIA", "VT8601T",			via_no_byte_merge},
 	/* VIA southbridges */
-	{0x1106, 0x0586, B_PFL,  OK,  "VIA", "VT82C586A/B",			enable_flash_vt82c586},
-	{0x1106, 0x0596, B_PFL,  OK,  "VIA", "VT82C596",			enable_flash_vt82c596},
-	{0x1106, 0x0686, B_PFL,  OK,  "VIA", "VT82C686A/B",			enable_flash_vt82c596},
-	{0x1106, 0x3074, B_FL,   OK,  "VIA", "VT8233",				enable_flash_vt823x},
-	{0x1106, 0x3147, B_FL,   OK,  "VIA", "VT8233A",				enable_flash_vt823x},
-	{0x1106, 0x3177, B_FL,   OK,  "VIA", "VT8235",				enable_flash_vt823x},
-	{0x1106, 0x3227, B_FL,   OK,  "VIA", "VT8237(R)",			enable_flash_vt823x},
-	{0x1106, 0x3287, B_FL,   OK,  "VIA", "VT8251",				enable_flash_vt823x},
-	{0x1106, 0x3337, B_FL,   OK,  "VIA", "VT8237A",				enable_flash_vt823x},
-	{0x1106, 0x3372, B_LS,   OK,  "VIA", "VT8237S",				enable_flash_vt8237s_spi},
-	{0x1106, 0x8231, B_FL,   NT,  "VIA", "VT8231",				enable_flash_vt823x},
-	{0x1106, 0x8324, B_FL,   OK,  "VIA", "CX700",				enable_flash_vt823x},
-	{0x1106, 0x8353, B_FLS,  NT,  "VIA", "VX800/VX820",			enable_flash_vt_vx},
-	{0x1106, 0x8409, B_FLS,  OK,  "VIA", "VX855/VX875",			enable_flash_vt_vx},
-	{0x1106, 0x8410, B_FLS,  OK,  "VIA", "VX900",				enable_flash_vt_vx},
-	{0x1166, 0x0200, B_P,    OK,  "Broadcom", "OSB4",			enable_flash_osb4},
-	{0x1166, 0x0205, B_PFL,  OK,  "Broadcom", "HT-1000",			enable_flash_ht1000},
-	{0x17f3, 0x6030, B_PFL,  OK,  "RDC", "R8610/R3210",			enable_flash_rdc_r8610},
-	{0x8086, 0x0c60, B_FS,   NT,  "Intel", "S12x0",				enable_flash_s12x0},
-	{0x8086, 0x0f1c, B_FS,   OK,  "Intel", "Bay Trail",			enable_flash_silvermont},
-	{0x8086, 0x0f1d, B_FS,   NT,  "Intel", "Bay Trail",			enable_flash_silvermont},
-	{0x8086, 0x0f1e, B_FS,   NT,  "Intel", "Bay Trail",			enable_flash_silvermont},
-	{0x8086, 0x0f1f, B_FS,   NT,  "Intel", "Bay Trail",			enable_flash_silvermont},
-	{0x8086, 0x122e, B_P,    OK,  "Intel", "PIIX",				enable_flash_piix4},
-	{0x8086, 0x1234, B_P,    NT,  "Intel", "MPIIX",				enable_flash_piix4},
-	{0x8086, 0x1c44, B_FS,   DEP, "Intel", "Z68",				enable_flash_pch6},
-	{0x8086, 0x1c46, B_FS,   DEP, "Intel", "P67",				enable_flash_pch6},
-	{0x8086, 0x1c47, B_FS,   NT,  "Intel", "UM67",				enable_flash_pch6},
-	{0x8086, 0x1c49, B_FS,   DEP, "Intel", "HM65",				enable_flash_pch6},
-	{0x8086, 0x1c4a, B_FS,   DEP, "Intel", "H67",				enable_flash_pch6},
-	{0x8086, 0x1c4b, B_FS,   NT,  "Intel", "HM67",				enable_flash_pch6},
-	{0x8086, 0x1c4c, B_FS,   NT,  "Intel", "Q65",				enable_flash_pch6},
-	{0x8086, 0x1c4d, B_FS,   DEP, "Intel", "QS67",				enable_flash_pch6},
-	{0x8086, 0x1c4e, B_FS,   DEP, "Intel", "Q67",				enable_flash_pch6},
-	{0x8086, 0x1c4f, B_FS,   DEP, "Intel", "QM67",				enable_flash_pch6},
-	{0x8086, 0x1c50, B_FS,   NT,  "Intel", "B65",				enable_flash_pch6},
-	{0x8086, 0x1c52, B_FS,   NT,  "Intel", "C202",				enable_flash_pch6},
-	{0x8086, 0x1c54, B_FS,   DEP, "Intel", "C204",				enable_flash_pch6},
-	{0x8086, 0x1c56, B_FS,   NT,  "Intel", "C206",				enable_flash_pch6},
-	{0x8086, 0x1c5c, B_FS,   DEP, "Intel", "H61",				enable_flash_pch6},
-	{0x8086, 0x1d40, B_FS,   DEP, "Intel", "C60x/X79",			enable_flash_pch6},
-	{0x8086, 0x1d41, B_FS,   DEP, "Intel", "C60x/X79",			enable_flash_pch6},
-	{0x8086, 0x1e41, B_FS,   DEP, "Intel", "Desktop Sample",		enable_flash_pch7},
-	{0x8086, 0x1e42, B_FS,   DEP, "Intel", "Mobile Sample",			enable_flash_pch7},
-	{0x8086, 0x1e43, B_FS,   DEP, "Intel", "SFF Sample",			enable_flash_pch7},
-	{0x8086, 0x1e44, B_FS,   DEP, "Intel", "Z77",				enable_flash_pch7},
-	{0x8086, 0x1e46, B_FS,   NT,  "Intel", "Z75",				enable_flash_pch7},
-	{0x8086, 0x1e47, B_FS,   DEP, "Intel", "Q77",				enable_flash_pch7},
-	{0x8086, 0x1e48, B_FS,   DEP, "Intel", "Q75",				enable_flash_pch7},
-	{0x8086, 0x1e49, B_FS,   DEP, "Intel", "B75",				enable_flash_pch7},
-	{0x8086, 0x1e4a, B_FS,   DEP, "Intel", "H77",				enable_flash_pch7},
-	{0x8086, 0x1e53, B_FS,   DEP, "Intel", "C216",				enable_flash_pch7},
-	{0x8086, 0x1e55, B_FS,   DEP, "Intel", "QM77",				enable_flash_pch7},
-	{0x8086, 0x1e56, B_FS,   DEP, "Intel", "QS77",				enable_flash_pch7},
-	{0x8086, 0x1e57, B_FS,   DEP, "Intel", "HM77",				enable_flash_pch7},
-	{0x8086, 0x1e58, B_FS,   NT,  "Intel", "UM77",				enable_flash_pch7},
-	{0x8086, 0x1e59, B_FS,   DEP, "Intel", "HM76",				enable_flash_pch7},
-	{0x8086, 0x1e5d, B_FS,   DEP, "Intel", "HM75",				enable_flash_pch7},
-	{0x8086, 0x1e5e, B_FS,   NT,  "Intel", "HM70",				enable_flash_pch7},
-	{0x8086, 0x1e5f, B_FS,   DEP, "Intel", "NM70",				enable_flash_pch7},
-	{0x8086, 0x1f38, B_FS,   DEP, "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
-	{0x8086, 0x1f39, B_FS,   NT,  "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
-	{0x8086, 0x1f3a, B_FS,   NT,  "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
-	{0x8086, 0x1f3b, B_FS,   NT,  "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
-	{0x8086, 0x229c, B_FS,   OK,  "Intel", "Braswell",			enable_flash_silvermont},
-	{0x8086, 0x2310, B_FS,   NT,  "Intel", "DH89xxCC (Cave Creek)",		enable_flash_pch7},
-	{0x8086, 0x2390, B_FS,   NT,  "Intel", "Coleto Creek",			enable_flash_pch7},
-	{0x8086, 0x2410, B_FL,   OK,  "Intel", "ICH",				enable_flash_ich0},
-	{0x8086, 0x2420, B_FL,   OK,  "Intel", "ICH0",				enable_flash_ich0},
-	{0x8086, 0x2440, B_FL,   OK,  "Intel", "ICH2",				enable_flash_ich2345},
-	{0x8086, 0x244c, B_FL,   OK,  "Intel", "ICH2-M",			enable_flash_ich2345},
-	{0x8086, 0x2450, B_FL,   NT,  "Intel", "C-ICH",				enable_flash_ich2345},
-	{0x8086, 0x2480, B_FL,   OK,  "Intel", "ICH3-S",			enable_flash_ich2345},
-	{0x8086, 0x248c, B_FL,   OK,  "Intel", "ICH3-M",			enable_flash_ich2345},
-	{0x8086, 0x24c0, B_FL,   OK,  "Intel", "ICH4/ICH4-L",			enable_flash_ich2345},
-	{0x8086, 0x24cc, B_FL,   OK,  "Intel", "ICH4-M",			enable_flash_ich2345},
-	{0x8086, 0x24d0, B_FL,   OK,  "Intel", "ICH5/ICH5R",			enable_flash_ich2345},
-	{0x8086, 0x25a1, B_FL,   OK,  "Intel", "6300ESB",			enable_flash_ich2345},
-	{0x8086, 0x2640, B_FL,   OK,  "Intel", "ICH6/ICH6R",			enable_flash_ich6},
-	{0x8086, 0x2641, B_FL,   OK,  "Intel", "ICH6-M",			enable_flash_ich6},
-	{0x8086, 0x2642, B_FL,   NT,  "Intel", "ICH6W/ICH6RW",			enable_flash_ich6},
-	{0x8086, 0x2670, B_FL,   OK,  "Intel", "631xESB/632xESB/3100",		enable_flash_ich6},
-	{0x8086, 0x27b0, B_FS,   OK,  "Intel", "ICH7DH",			enable_flash_ich7},
-	{0x8086, 0x27b8, B_FS,   OK,  "Intel", "ICH7/ICH7R",			enable_flash_ich7},
-	{0x8086, 0x27b9, B_FS,   OK,  "Intel", "ICH7M",				enable_flash_ich7},
-	{0x8086, 0x27bc, B_FS,   OK,  "Intel", "NM10",				enable_flash_ich7},
-	{0x8086, 0x27bd, B_FS,   OK,  "Intel", "ICH7MDH",			enable_flash_ich7},
-	{0x8086, 0x2810, B_FS,   DEP, "Intel", "ICH8/ICH8R",			enable_flash_ich8},
-	{0x8086, 0x2811, B_FS,   DEP, "Intel", "ICH8M-E",			enable_flash_ich8},
-	{0x8086, 0x2812, B_FS,   DEP, "Intel", "ICH8DH",			enable_flash_ich8},
-	{0x8086, 0x2814, B_FS,   DEP, "Intel", "ICH8DO",			enable_flash_ich8},
-	{0x8086, 0x2815, B_FS,   DEP, "Intel", "ICH8M",				enable_flash_ich8},
-	{0x8086, 0x2910, B_FS,   DEP, "Intel", "ICH9 Eng. Sample",		enable_flash_ich9},
-	{0x8086, 0x2912, B_FS,   DEP, "Intel", "ICH9DH",			enable_flash_ich9},
-	{0x8086, 0x2914, B_FS,   DEP, "Intel", "ICH9DO",			enable_flash_ich9},
-	{0x8086, 0x2916, B_FS,   DEP, "Intel", "ICH9R",				enable_flash_ich9},
-	{0x8086, 0x2917, B_FS,   DEP, "Intel", "ICH9M-E",			enable_flash_ich9},
-	{0x8086, 0x2918, B_FS,   DEP, "Intel", "ICH9",				enable_flash_ich9},
-	{0x8086, 0x2919, B_FS,   DEP, "Intel", "ICH9M",				enable_flash_ich9},
-	{0x8086, 0x3a10, B_FS,   NT,  "Intel", "ICH10R Eng. Sample",		enable_flash_ich10},
-	{0x8086, 0x3a14, B_FS,   DEP, "Intel", "ICH10DO",			enable_flash_ich10},
-	{0x8086, 0x3a16, B_FS,   DEP, "Intel", "ICH10R",			enable_flash_ich10},
-	{0x8086, 0x3a18, B_FS,   DEP, "Intel", "ICH10",				enable_flash_ich10},
-	{0x8086, 0x3a1a, B_FS,   DEP, "Intel", "ICH10D",			enable_flash_ich10},
-	{0x8086, 0x3a1e, B_FS,   NT,  "Intel", "ICH10 Eng. Sample",		enable_flash_ich10},
-	{0x8086, 0x3b00, B_FS,   NT,  "Intel", "3400 Desktop",			enable_flash_pch5},
-	{0x8086, 0x3b01, B_FS,   NT,  "Intel", "3400 Mobile",			enable_flash_pch5},
-	{0x8086, 0x3b02, B_FS,   NT,  "Intel", "P55",				enable_flash_pch5},
-	{0x8086, 0x3b03, B_FS,   DEP, "Intel", "PM55",				enable_flash_pch5},
-	{0x8086, 0x3b06, B_FS,   DEP, "Intel", "H55",				enable_flash_pch5},
-	{0x8086, 0x3b07, B_FS,   DEP, "Intel", "QM57",				enable_flash_pch5},
-	{0x8086, 0x3b08, B_FS,   NT,  "Intel", "H57",				enable_flash_pch5},
-	{0x8086, 0x3b09, B_FS,   DEP, "Intel", "HM55",				enable_flash_pch5},
-	{0x8086, 0x3b0a, B_FS,   NT,  "Intel", "Q57",				enable_flash_pch5},
-	{0x8086, 0x3b0b, B_FS,   NT,  "Intel", "HM57",				enable_flash_pch5},
-	{0x8086, 0x3b0d, B_FS,   NT,  "Intel", "3400 Mobile SFF",		enable_flash_pch5},
-	{0x8086, 0x3b0e, B_FS,   NT,  "Intel", "B55",				enable_flash_pch5},
-	{0x8086, 0x3b0f, B_FS,   DEP, "Intel", "QS57",				enable_flash_pch5},
-	{0x8086, 0x3b12, B_FS,   NT,  "Intel", "3400",				enable_flash_pch5},
-	{0x8086, 0x3b14, B_FS,   DEP, "Intel", "3420",				enable_flash_pch5},
-	{0x8086, 0x3b16, B_FS,   NT,  "Intel", "3450",				enable_flash_pch5},
-	{0x8086, 0x3b1e, B_FS,   NT,  "Intel", "B55",				enable_flash_pch5},
-	{0x8086, 0x5031, B_FS,   OK,  "Intel", "EP80579",			enable_flash_ich7},
-	{0x8086, 0x7000, B_P,    OK,  "Intel", "PIIX3",				enable_flash_piix4},
-	{0x8086, 0x7110, B_P,    OK,  "Intel", "PIIX4/4E/4M",			enable_flash_piix4},
-	{0x8086, 0x7198, B_P,    OK,  "Intel", "440MX",				enable_flash_piix4},
-	{0x8086, 0x8119, B_FL,   OK,  "Intel", "SCH Poulsbo",			enable_flash_poulsbo},
-	{0x8086, 0x8186, B_FS,   OK,  "Intel", "Atom E6xx(T) (Tunnel Creek)",	enable_flash_tunnelcreek},
-	{0x8086, 0x8c40, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c41, B_FS,   NT,  "Intel", "Lynx Point Mobile Eng. Sample",	enable_flash_pch8},
-	{0x8086, 0x8c42, B_FS,   NT,  "Intel", "Lynx Point Desktop Eng. Sample",enable_flash_pch8},
-	{0x8086, 0x8c43, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c44, B_FS,   DEP, "Intel", "Z87",				enable_flash_pch8},
-	{0x8086, 0x8c45, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c46, B_FS,   NT,  "Intel", "Z85",				enable_flash_pch8},
-	{0x8086, 0x8c47, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c48, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c49, B_FS,   NT,  "Intel", "HM86",				enable_flash_pch8},
-	{0x8086, 0x8c4a, B_FS,   DEP, "Intel", "H87",				enable_flash_pch8},
-	{0x8086, 0x8c4b, B_FS,   DEP, "Intel", "HM87",				enable_flash_pch8},
-	{0x8086, 0x8c4c, B_FS,   NT,  "Intel", "Q85",				enable_flash_pch8},
-	{0x8086, 0x8c4d, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c4e, B_FS,   NT,  "Intel", "Q87",				enable_flash_pch8},
-	{0x8086, 0x8c4f, B_FS,   NT,  "Intel", "QM87",				enable_flash_pch8},
-	{0x8086, 0x8c50, B_FS,   DEP, "Intel", "B85",				enable_flash_pch8},
-	{0x8086, 0x8c51, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c52, B_FS,   NT,  "Intel", "C222",				enable_flash_pch8},
-	{0x8086, 0x8c53, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c54, B_FS,   DEP, "Intel", "C224",				enable_flash_pch8},
-	{0x8086, 0x8c55, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c56, B_FS,   NT,  "Intel", "C226",				enable_flash_pch8},
-	{0x8086, 0x8c57, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c58, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c59, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c5a, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c5b, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c5c, B_FS,   DEP, "Intel", "H81",				enable_flash_pch8},
-	{0x8086, 0x8c5d, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c5e, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8c5f, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
-	{0x8086, 0x8cc1, B_FS,   NT,  "Intel", "9 Series",			enable_flash_pch9},
-	{0x8086, 0x8cc2, B_FS,   NT,  "Intel", "9 Series Engineering Sample",	enable_flash_pch9},
-	{0x8086, 0x8cc3, B_FS,   NT,  "Intel", "9 Series",			enable_flash_pch9},
-	{0x8086, 0x8cc4, B_FS,   DEP, "Intel", "Z97",				enable_flash_pch9},
-	{0x8086, 0x8cc6, B_FS,   NT,  "Intel", "H97",				enable_flash_pch9},
-	{0x8086, 0x8d40, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d41, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d42, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d43, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d44, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d45, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d46, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d47, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d48, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d49, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d4a, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d4b, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d4c, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d4d, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d4e, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d4f, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d50, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d51, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d52, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d53, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d54, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d55, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d56, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d57, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d58, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d59, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d5a, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d5b, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d5c, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d5d, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d5e, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x8d5f, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",		enable_flash_pch8_wb},
-	{0x8086, 0x9c41, B_FS,   NT,  "Intel", "Lynx Point LP Eng. Sample",	enable_flash_pch8_lp},
-	{0x8086, 0x9c43, B_FS,   NT,  "Intel", "Lynx Point LP Premium",		enable_flash_pch8_lp},
-	{0x8086, 0x9c45, B_FS,   NT,  "Intel", "Lynx Point LP Mainstream",	enable_flash_pch8_lp},
-	{0x8086, 0x9c47, B_FS,   NT,  "Intel", "Lynx Point LP Value",		enable_flash_pch8_lp},
-	{0x8086, 0x9cc1, B_FS,   NT,  "Intel", "Haswell U Sample",		enable_flash_pch9_lp},
-	{0x8086, 0x9cc2, B_FS,   NT,  "Intel", "Broadwell U Sample",		enable_flash_pch9_lp},
-	{0x8086, 0x9cc3, B_FS,   DEP, "Intel", "Broadwell U Premium",		enable_flash_pch9_lp},
-	{0x8086, 0x9cc5, B_FS,   DEP, "Intel", "Broadwell U Base",		enable_flash_pch9_lp},
-	{0x8086, 0x9cc6, B_FS,   NT,  "Intel", "Broadwell Y Sample",		enable_flash_pch9_lp},
-	{0x8086, 0x9cc7, B_FS,   NT,  "Intel", "Broadwell Y Premium",		enable_flash_pch9_lp},
-	{0x8086, 0x9cc9, B_FS,   NT,  "Intel", "Broadwell Y Base",		enable_flash_pch9_lp},
-	{0x8086, 0x9ccb, B_FS,   NT,  "Intel", "Broadwell H",			enable_flash_pch9},
-	{0x8086, 0x9d41, B_S,    NT,  "Intel", "Skylake / Kaby Lake Sample",	enable_flash_pch100},
-	{0x8086, 0x9d43, B_S,    NT,  "Intel", "Skylake U Base",		enable_flash_pch100},
-	{0x8086, 0x9d46, B_S,    NT,  "Intel", "Skylake Y Premium",		enable_flash_pch100},
-	{0x8086, 0x9d48, B_S,    DEP, "Intel", "Skylake U Premium",		enable_flash_pch100},
-	{0x8086, 0x9d4b, B_S,    NT,  "Intel", "Kaby Lake Y w/ iHDCP2.2 Prem.",	enable_flash_pch100},
-	{0x8086, 0x9d4e, B_S,    DEP, "Intel", "Kaby Lake U w/ iHDCP2.2 Prem.",	enable_flash_pch100},
-	{0x8086, 0x9d50, B_S,    NT,  "Intel", "Kaby Lake U w/ iHDCP2.2 Base",	enable_flash_pch100},
-	{0x8086, 0x9d51, B_S,    NT,  "Intel", "Kabe Lake w/ iHDCP2.2 Sample",	enable_flash_pch100},
-	{0x8086, 0x9d53, B_S,    NT,  "Intel", "Kaby Lake U Base",		enable_flash_pch100},
-	{0x8086, 0x9d56, B_S,    NT,  "Intel", "Kaby Lake Y Premium",		enable_flash_pch100},
-	{0x8086, 0x9d58, B_S,    NT,  "Intel", "Kaby Lake U Premium",		enable_flash_pch100},
-	{0x8086, 0x9d84, B_S,    DEP, "Intel", "Cannon Lake U Premium",		enable_flash_pch300},
-	{0x8086, 0x0284, B_S,    DEP, "Intel", "Comet Lake U Premium",		enable_flash_pch300},
-	{0x8086, 0x0285, B_S,    DEP, "Intel", "Comet Lake U Base",		enable_flash_pch300},
-	{0x8086, 0xa082, B_S,    DEP, "Intel", "Tiger Lake U Premium",		enable_flash_pch500},
-	{0x8086, 0xa141, B_S,    NT,  "Intel", "Sunrise Point Desktop Sample",	enable_flash_pch100},
-	{0x8086, 0xa142, B_S,    NT,  "Intel", "Sunrise Point Unknown Sample",	enable_flash_pch100},
-	{0x8086, 0xa143, B_S,    DEP, "Intel", "H110",				enable_flash_pch100},
-	{0x8086, 0xa144, B_S,    NT,  "Intel", "H170",				enable_flash_pch100},
-	{0x8086, 0xa145, B_S,    NT,  "Intel", "Z170",				enable_flash_pch100},
-	{0x8086, 0xa146, B_S,    NT,  "Intel", "Q170",				enable_flash_pch100},
-	{0x8086, 0xa147, B_S,    NT,  "Intel", "Q150",				enable_flash_pch100},
-	{0x8086, 0xa148, B_S,    NT,  "Intel", "B150",				enable_flash_pch100},
-	{0x8086, 0xa149, B_S,    NT,  "Intel", "C236",				enable_flash_pch100},
-	{0x8086, 0xa14a, B_S,    NT,  "Intel", "C232",				enable_flash_pch100},
-	{0x8086, 0xa14b, B_S,    NT,  "Intel", "Sunrise Point Server Sample",	enable_flash_pch100},
-	{0x8086, 0xa14d, B_S,    NT,  "Intel", "QM170",				enable_flash_pch100},
-	{0x8086, 0xa14e, B_S,    NT,  "Intel", "HM170",				enable_flash_pch100},
-	{0x8086, 0xa150, B_S,    DEP, "Intel", "CM236",				enable_flash_pch100},
-	{0x8086, 0xa151, B_S,    NT,  "Intel", "QMS180",			enable_flash_pch100},
-	{0x8086, 0xa152, B_S,    NT,  "Intel", "HM175",				enable_flash_pch100},
-	{0x8086, 0xa153, B_S,    NT,  "Intel", "QM175",				enable_flash_pch100},
-	{0x8086, 0xa154, B_S,    NT,  "Intel", "CM238",				enable_flash_pch100},
-	{0x8086, 0xa155, B_S,    NT,  "Intel", "QMU185",			enable_flash_pch100},
-	{0x8086, 0xa1a4, B_S,    DEP, "Intel", "C620 Series Chipset (QS/PRQ)",  enable_flash_c620},
-	{0x8086, 0xa1c0, B_S,    NT,  "Intel", "C620 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c1, B_S,    NT,  "Intel", "C621 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c2, B_S,    NT,  "Intel", "C622 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c3, B_S,    NT,  "Intel", "C624 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c4, B_S,    NT,  "Intel", "C625 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c5, B_S,    NT,  "Intel", "C626 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c6, B_S,    NT,  "Intel", "C627 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c7, B_S,    NT,  "Intel", "C628 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c8, B_S,    NT,  "Intel", "C620 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1c9, B_S,    NT,  "Intel", "C620 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1ca, B_S,    NT,  "Intel", "C629 Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1cb, B_S,    NT,  "Intel", "C621A Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1cc, B_S,    NT,  "Intel", "C627A Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa1cd, B_S,    NT,  "Intel", "C629A Series Chipset (QS/PRQ)",	enable_flash_c620},
-	{0x8086, 0xa240, B_S,    NT,  "Intel", "C620 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa241, B_S,    NT,  "Intel", "C620 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa242, B_S,    NT,  "Intel", "C624 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa243, B_S,    NT,  "Intel", "C627 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa244, B_S,    NT,  "Intel", "C621 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa245, B_S,    NT,  "Intel", "C627 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa246, B_S,    NT,  "Intel", "C628 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa247, B_S,    NT,  "Intel", "C620 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa248, B_S,    NT,  "Intel", "C620 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0xa249, B_S,    NT,  "Intel", "C620 Series Chipset Supersku",	enable_flash_c620},
-	{0x8086, 0x1bca, B_S,    NT,  "Intel", "Emmitsburg Chipset SKU",	enable_flash_c620},
-	{0x8086, 0xa2c4, B_S,    NT,  "Intel", "H270",				enable_flash_pch100},
-	{0x8086, 0xa2c5, B_S,    NT,  "Intel", "Z270",				enable_flash_pch100},
-	{0x8086, 0xa2c6, B_S,    NT,  "Intel", "Q270",				enable_flash_pch100},
-	{0x8086, 0xa2c7, B_S,    NT,  "Intel", "Q250",				enable_flash_pch100},
-	{0x8086, 0xa2c8, B_S,    NT,  "Intel", "B250",				enable_flash_pch100},
-	{0x8086, 0xa2c9, B_S,    NT,  "Intel", "Z370",				enable_flash_pch100},
-	{0x8086, 0xa2ca, B_S,    DEP, "Intel", "H310C",				enable_flash_pch100},
-	{0x8086, 0xa2cc, B_S,    DEP, "Intel", "B365",				enable_flash_pch100},
-	{0x8086, 0xa2d2, B_S,    NT,  "Intel", "X299",				enable_flash_pch100},
-	{0x8086, 0x5ae8, B_S,    DEP, "Intel", "Apollo Lake",			enable_flash_apl},
-	{0x8086, 0x5af0, B_S,    DEP, "Intel", "Apollo Lake",			enable_flash_apl},
-	{0x8086, 0x3197, B_S,    NT,  "Intel", "Gemini Lake",			enable_flash_glk},
-	{0x8086, 0x31e8, B_S,    DEP, "Intel", "Gemini Lake",			enable_flash_glk},
-	{0x8086, 0x4b24, B_S,    DEP, "Intel", "Elkhart Lake",			enable_flash_mcc},
-	{0x8086, 0xa303, B_S,    NT,  "Intel", "H310",				enable_flash_pch300},
-	{0x8086, 0xa304, B_S,    NT,  "Intel", "H370",				enable_flash_pch300},
-	{0x8086, 0xa305, B_S,    DEP, "Intel", "Z390",				enable_flash_pch300},
-	{0x8086, 0xa306, B_S,    NT,  "Intel", "Q370",				enable_flash_pch300},
-	{0x8086, 0xa308, B_S,    NT,  "Intel", "B360",				enable_flash_pch300},
-	{0x8086, 0xa309, B_S,    DEP, "Intel", "C246",				enable_flash_pch300},
-	{0x8086, 0xa30a, B_S,    NT,  "Intel", "C242",				enable_flash_pch300},
-	{0x8086, 0xa30c, B_S,    NT,  "Intel", "QM370",				enable_flash_pch300},
-	{0x8086, 0xa30d, B_S,    NT,  "Intel", "HM370",				enable_flash_pch300},
-	{0x8086, 0xa30e, B_S,    DEP, "Intel", "CM246",				enable_flash_pch300},
-	{0x8086, 0x3482, B_S,    DEP, "Intel", "Ice Lake U Premium",		enable_flash_pch300},
-	{0x8086, 0x0684, B_S,    NT,  "Intel", "H470",				enable_flash_pch300},
-	{0x8086, 0x0685, B_S,    NT,  "Intel", "Z490",				enable_flash_pch300},
-	{0x8086, 0x0687, B_S,    NT,  "Intel", "Q470",				enable_flash_pch300},
-	{0x8086, 0x068c, B_S,    NT,  "Intel", "QM480",				enable_flash_pch300},
-	{0x8086, 0x068d, B_S,    NT,  "Intel", "HM470",				enable_flash_pch300},
-	{0x8086, 0x068e, B_S,    NT,  "Intel", "WM490",				enable_flash_pch300},
-	{0x8086, 0x0697, B_S,    NT,  "Intel", "W480",				enable_flash_pch300},
-	{0x8086, 0x4da4, B_S,    NT,  "Intel", "Jasper Lake",			enable_flash_pch300},
-	{0x8086, 0x4384, B_S,    NT,  "Intel", "Q570",				enable_flash_pch500},
-	{0x8086, 0x4385, B_S,    NT,  "Intel", "Z590",				enable_flash_pch500},
-	{0x8086, 0x4386, B_S,    NT,  "Intel", "H570",				enable_flash_pch500},
-	{0x8086, 0x4387, B_S,    NT,  "Intel", "B560",				enable_flash_pch500},
-	{0x8086, 0x4388, B_S,    NT,  "Intel", "H510",				enable_flash_pch500},
-	{0x8086, 0x438f, B_S,    NT,  "Intel", "W580",				enable_flash_pch500},
-	{0x8086, 0x4389, B_S,    NT,  "Intel", "WM590",				enable_flash_pch500},
-	{0x8086, 0x438a, B_S,    NT,  "Intel", "QM580",				enable_flash_pch500},
-	{0x8086, 0x438b, B_S,    DEP, "Intel", "HM570",				enable_flash_pch500},
-	{0x8086, 0x51a4, B_S,    DEP, "Intel", "Alder Lake-P",			enable_flash_pch500},
-	{0x8086, 0x54a4, B_S,    DEP, "Intel", "Alder Lake-N",			enable_flash_pch500},
-	{0x8086, 0x7aa4, B_S,    NT,  "Intel", "Alder Lake-S",			enable_flash_pch500},
+	{0x1106, 0x0586,   ANY_REV, B_PFL,  OK,  "VIA", "VT82C586A/B",			enable_flash_vt82c586},
+	{0x1106, 0x0596,   ANY_REV, B_PFL,  OK,  "VIA", "VT82C596",			enable_flash_vt82c596},
+	{0x1106, 0x0686,   ANY_REV, B_PFL,  OK,  "VIA", "VT82C686A/B",			enable_flash_vt82c596},
+	{0x1106, 0x3074,   ANY_REV, B_FL,   OK,  "VIA", "VT8233",			enable_flash_vt823x},
+	{0x1106, 0x3147,   ANY_REV, B_FL,   OK,  "VIA", "VT8233A",			enable_flash_vt823x},
+	{0x1106, 0x3177,   ANY_REV, B_FL,   OK,  "VIA", "VT8235",			enable_flash_vt823x},
+	{0x1106, 0x3227,   ANY_REV, B_FL,   OK,  "VIA", "VT8237(R)",			enable_flash_vt823x},
+	{0x1106, 0x3287,   ANY_REV, B_FL,   OK,  "VIA", "VT8251",			enable_flash_vt823x},
+	{0x1106, 0x3337,   ANY_REV, B_FL,   OK,  "VIA", "VT8237A",			enable_flash_vt823x},
+	{0x1106, 0x3372,   ANY_REV, B_LS,   OK,  "VIA", "VT8237S",			enable_flash_vt8237s_spi},
+	{0x1106, 0x8231,   ANY_REV, B_FL,   NT,  "VIA", "VT8231",			enable_flash_vt823x},
+	{0x1106, 0x8324,   ANY_REV, B_FL,   OK,  "VIA", "CX700",			enable_flash_vt823x},
+	{0x1106, 0x8353,   ANY_REV, B_FLS,  NT,  "VIA", "VX800/VX820",			enable_flash_vt_vx},
+	{0x1106, 0x8409,   ANY_REV, B_FLS,  OK,  "VIA", "VX855/VX875",			enable_flash_vt_vx},
+	{0x1106, 0x8410,   ANY_REV, B_FLS,  OK,  "VIA", "VX900",			enable_flash_vt_vx},
+	{0x1166, 0x0200,   ANY_REV, B_P,    OK,  "Broadcom", "OSB4",			enable_flash_osb4},
+	{0x1166, 0x0205,   ANY_REV, B_PFL,  OK,  "Broadcom", "HT-1000",			enable_flash_ht1000},
+	{0x17f3, 0x6030,   ANY_REV, B_PFL,  OK,  "RDC", "R8610/R3210",			enable_flash_rdc_r8610},
+	{0x8086, 0x0c60,   ANY_REV, B_FS,   NT,  "Intel", "S12x0",			enable_flash_s12x0},
+	{0x8086, 0x0f1c,   ANY_REV, B_FS,   OK,  "Intel", "Bay Trail",			enable_flash_silvermont},
+	{0x8086, 0x0f1d,   ANY_REV, B_FS,   NT,  "Intel", "Bay Trail",			enable_flash_silvermont},
+	{0x8086, 0x0f1e,   ANY_REV, B_FS,   NT,  "Intel", "Bay Trail",			enable_flash_silvermont},
+	{0x8086, 0x0f1f,   ANY_REV, B_FS,   NT,  "Intel", "Bay Trail",			enable_flash_silvermont},
+	{0x8086, 0x122e,   ANY_REV, B_P,    OK,  "Intel", "PIIX",			enable_flash_piix4},
+	{0x8086, 0x1234,   ANY_REV, B_P,    NT,  "Intel", "MPIIX",			enable_flash_piix4},
+	{0x8086, 0x1c44,   ANY_REV, B_FS,   DEP, "Intel", "Z68",			enable_flash_pch6},
+	{0x8086, 0x1c46,   ANY_REV, B_FS,   DEP, "Intel", "P67",			enable_flash_pch6},
+	{0x8086, 0x1c47,   ANY_REV, B_FS,   NT,  "Intel", "UM67",			enable_flash_pch6},
+	{0x8086, 0x1c49,   ANY_REV, B_FS,   DEP, "Intel", "HM65",			enable_flash_pch6},
+	{0x8086, 0x1c4a,   ANY_REV, B_FS,   DEP, "Intel", "H67",			enable_flash_pch6},
+	{0x8086, 0x1c4b,   ANY_REV, B_FS,   NT,  "Intel", "HM67",			enable_flash_pch6},
+	{0x8086, 0x1c4c,   ANY_REV, B_FS,   NT,  "Intel", "Q65",			enable_flash_pch6},
+	{0x8086, 0x1c4d,   ANY_REV, B_FS,   DEP, "Intel", "QS67",			enable_flash_pch6},
+	{0x8086, 0x1c4e,   ANY_REV, B_FS,   DEP, "Intel", "Q67",			enable_flash_pch6},
+	{0x8086, 0x1c4f,   ANY_REV, B_FS,   DEP, "Intel", "QM67",			enable_flash_pch6},
+	{0x8086, 0x1c50,   ANY_REV, B_FS,   NT,  "Intel", "B65",			enable_flash_pch6},
+	{0x8086, 0x1c52,   ANY_REV, B_FS,   NT,  "Intel", "C202",			enable_flash_pch6},
+	{0x8086, 0x1c54,   ANY_REV, B_FS,   DEP, "Intel", "C204",			enable_flash_pch6},
+	{0x8086, 0x1c56,   ANY_REV, B_FS,   NT,  "Intel", "C206",			enable_flash_pch6},
+	{0x8086, 0x1c5c,   ANY_REV, B_FS,   DEP, "Intel", "H61",			enable_flash_pch6},
+	{0x8086, 0x1d40,   ANY_REV, B_FS,   DEP, "Intel", "C60x/X79",			enable_flash_pch6},
+	{0x8086, 0x1d41,   ANY_REV, B_FS,   DEP, "Intel", "C60x/X79",			enable_flash_pch6},
+	{0x8086, 0x1e41,   ANY_REV, B_FS,   DEP, "Intel", "Desktop Sample",		enable_flash_pch7},
+	{0x8086, 0x1e42,   ANY_REV, B_FS,   DEP, "Intel", "Mobile Sample",		enable_flash_pch7},
+	{0x8086, 0x1e43,   ANY_REV, B_FS,   DEP, "Intel", "SFF Sample",			enable_flash_pch7},
+	{0x8086, 0x1e44,   ANY_REV, B_FS,   DEP, "Intel", "Z77",			enable_flash_pch7},
+	{0x8086, 0x1e46,   ANY_REV, B_FS,   NT,  "Intel", "Z75",			enable_flash_pch7},
+	{0x8086, 0x1e47,   ANY_REV, B_FS,   DEP, "Intel", "Q77",			enable_flash_pch7},
+	{0x8086, 0x1e48,   ANY_REV, B_FS,   DEP, "Intel", "Q75",			enable_flash_pch7},
+	{0x8086, 0x1e49,   ANY_REV, B_FS,   DEP, "Intel", "B75",			enable_flash_pch7},
+	{0x8086, 0x1e4a,   ANY_REV, B_FS,   DEP, "Intel", "H77",			enable_flash_pch7},
+	{0x8086, 0x1e53,   ANY_REV, B_FS,   DEP, "Intel", "C216",			enable_flash_pch7},
+	{0x8086, 0x1e55,   ANY_REV, B_FS,   DEP, "Intel", "QM77",			enable_flash_pch7},
+	{0x8086, 0x1e56,   ANY_REV, B_FS,   DEP, "Intel", "QS77",			enable_flash_pch7},
+	{0x8086, 0x1e57,   ANY_REV, B_FS,   DEP, "Intel", "HM77",			enable_flash_pch7},
+	{0x8086, 0x1e58,   ANY_REV, B_FS,   NT,  "Intel", "UM77",			enable_flash_pch7},
+	{0x8086, 0x1e59,   ANY_REV, B_FS,   DEP, "Intel", "HM76",			enable_flash_pch7},
+	{0x8086, 0x1e5d,   ANY_REV, B_FS,   DEP, "Intel", "HM75",			enable_flash_pch7},
+	{0x8086, 0x1e5e,   ANY_REV, B_FS,   NT,  "Intel", "HM70",			enable_flash_pch7},
+	{0x8086, 0x1e5f,   ANY_REV, B_FS,   DEP, "Intel", "NM70",			enable_flash_pch7},
+	{0x8086, 0x1f38,   ANY_REV, B_FS,   DEP, "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
+	{0x8086, 0x1f39,   ANY_REV, B_FS,   NT,  "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
+	{0x8086, 0x1f3a,   ANY_REV, B_FS,   NT,  "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
+	{0x8086, 0x1f3b,   ANY_REV, B_FS,   NT,  "Intel", "Avoton/Rangeley",		enable_flash_silvermont},
+	{0x8086, 0x229c,   ANY_REV, B_FS,   OK,  "Intel", "Braswell",			enable_flash_silvermont},
+	{0x8086, 0x2310,   ANY_REV, B_FS,   NT,  "Intel", "DH89xxCC (Cave Creek)",	enable_flash_pch7},
+	{0x8086, 0x2390,   ANY_REV, B_FS,   NT,  "Intel", "Coleto Creek",		enable_flash_pch7},
+	{0x8086, 0x2410,   ANY_REV, B_FL,   OK,  "Intel", "ICH",			enable_flash_ich0},
+	{0x8086, 0x2420,   ANY_REV, B_FL,   OK,  "Intel", "ICH0",			enable_flash_ich0},
+	{0x8086, 0x2440,   ANY_REV, B_FL,   OK,  "Intel", "ICH2",			enable_flash_ich2345},
+	{0x8086, 0x244c,   ANY_REV, B_FL,   OK,  "Intel", "ICH2-M",			enable_flash_ich2345},
+	{0x8086, 0x2450,   ANY_REV, B_FL,   NT,  "Intel", "C-ICH",			enable_flash_ich2345},
+	{0x8086, 0x2480,   ANY_REV, B_FL,   OK,  "Intel", "ICH3-S",			enable_flash_ich2345},
+	{0x8086, 0x248c,   ANY_REV, B_FL,   OK,  "Intel", "ICH3-M",			enable_flash_ich2345},
+	{0x8086, 0x24c0,   ANY_REV, B_FL,   OK,  "Intel", "ICH4/ICH4-L",		enable_flash_ich2345},
+	{0x8086, 0x24cc,   ANY_REV, B_FL,   OK,  "Intel", "ICH4-M",			enable_flash_ich2345},
+	{0x8086, 0x24d0,   ANY_REV, B_FL,   OK,  "Intel", "ICH5/ICH5R",			enable_flash_ich2345},
+	{0x8086, 0x25a1,   ANY_REV, B_FL,   OK,  "Intel", "6300ESB",			enable_flash_ich2345},
+	{0x8086, 0x2640,   ANY_REV, B_FL,   OK,  "Intel", "ICH6/ICH6R",			enable_flash_ich6},
+	{0x8086, 0x2641,   ANY_REV, B_FL,   OK,  "Intel", "ICH6-M",			enable_flash_ich6},
+	{0x8086, 0x2642,   ANY_REV, B_FL,   NT,  "Intel", "ICH6W/ICH6RW",		enable_flash_ich6},
+	{0x8086, 0x2670,   ANY_REV, B_FL,   OK,  "Intel", "631xESB/632xESB/3100",	enable_flash_ich6},
+	{0x8086, 0x27b0,   ANY_REV, B_FS,   OK,  "Intel", "ICH7DH",			enable_flash_ich7},
+	{0x8086, 0x27b8,   ANY_REV, B_FS,   OK,  "Intel", "ICH7/ICH7R",			enable_flash_ich7},
+	{0x8086, 0x27b9,   ANY_REV, B_FS,   OK,  "Intel", "ICH7M",			enable_flash_ich7},
+	{0x8086, 0x27bc,   ANY_REV, B_FS,   OK,  "Intel", "NM10",			enable_flash_ich7},
+	{0x8086, 0x27bd,   ANY_REV, B_FS,   OK,  "Intel", "ICH7MDH",			enable_flash_ich7},
+	{0x8086, 0x2810,   ANY_REV, B_FS,   DEP, "Intel", "ICH8/ICH8R",			enable_flash_ich8},
+	{0x8086, 0x2811,   ANY_REV, B_FS,   DEP, "Intel", "ICH8M-E",			enable_flash_ich8},
+	{0x8086, 0x2812,   ANY_REV, B_FS,   DEP, "Intel", "ICH8DH",			enable_flash_ich8},
+	{0x8086, 0x2814,   ANY_REV, B_FS,   DEP, "Intel", "ICH8DO",			enable_flash_ich8},
+	{0x8086, 0x2815,   ANY_REV, B_FS,   DEP, "Intel", "ICH8M",			enable_flash_ich8},
+	{0x8086, 0x2910,   ANY_REV, B_FS,   DEP, "Intel", "ICH9 Eng. Sample",		enable_flash_ich9},
+	{0x8086, 0x2912,   ANY_REV, B_FS,   DEP, "Intel", "ICH9DH",			enable_flash_ich9},
+	{0x8086, 0x2914,   ANY_REV, B_FS,   DEP, "Intel", "ICH9DO",			enable_flash_ich9},
+	{0x8086, 0x2916,   ANY_REV, B_FS,   DEP, "Intel", "ICH9R",			enable_flash_ich9},
+	{0x8086, 0x2917,   ANY_REV, B_FS,   DEP, "Intel", "ICH9M-E",			enable_flash_ich9},
+	{0x8086, 0x2918,   ANY_REV, B_FS,   DEP, "Intel", "ICH9",			enable_flash_ich9},
+	{0x8086, 0x2919,   ANY_REV, B_FS,   DEP, "Intel", "ICH9M",			enable_flash_ich9},
+	{0x8086, 0x3a10,   ANY_REV, B_FS,   NT,  "Intel", "ICH10R Eng. Sample",		enable_flash_ich10},
+	{0x8086, 0x3a14,   ANY_REV, B_FS,   DEP, "Intel", "ICH10DO",			enable_flash_ich10},
+	{0x8086, 0x3a16,   ANY_REV, B_FS,   DEP, "Intel", "ICH10R",			enable_flash_ich10},
+	{0x8086, 0x3a18,   ANY_REV, B_FS,   DEP, "Intel", "ICH10",			enable_flash_ich10},
+	{0x8086, 0x3a1a,   ANY_REV, B_FS,   DEP, "Intel", "ICH10D",			enable_flash_ich10},
+	{0x8086, 0x3a1e,   ANY_REV, B_FS,   NT,  "Intel", "ICH10 Eng. Sample",		enable_flash_ich10},
+	{0x8086, 0x3b00,   ANY_REV, B_FS,   NT,  "Intel", "3400 Desktop",		enable_flash_pch5},
+	{0x8086, 0x3b01,   ANY_REV, B_FS,   NT,  "Intel", "3400 Mobile",		enable_flash_pch5},
+	{0x8086, 0x3b02,   ANY_REV, B_FS,   NT,  "Intel", "P55",			enable_flash_pch5},
+	{0x8086, 0x3b03,   ANY_REV, B_FS,   DEP, "Intel", "PM55",			enable_flash_pch5},
+	{0x8086, 0x3b06,   ANY_REV, B_FS,   DEP, "Intel", "H55",			enable_flash_pch5},
+	{0x8086, 0x3b07,   ANY_REV, B_FS,   DEP, "Intel", "QM57",			enable_flash_pch5},
+	{0x8086, 0x3b08,   ANY_REV, B_FS,   NT,  "Intel", "H57",			enable_flash_pch5},
+	{0x8086, 0x3b09,   ANY_REV, B_FS,   DEP, "Intel", "HM55",			enable_flash_pch5},
+	{0x8086, 0x3b0a,   ANY_REV, B_FS,   NT,  "Intel", "Q57",			enable_flash_pch5},
+	{0x8086, 0x3b0b,   ANY_REV, B_FS,   NT,  "Intel", "HM57",			enable_flash_pch5},
+	{0x8086, 0x3b0d,   ANY_REV, B_FS,   NT,  "Intel", "3400 Mobile SFF",		enable_flash_pch5},
+	{0x8086, 0x3b0e,   ANY_REV, B_FS,   NT,  "Intel", "B55",			enable_flash_pch5},
+	{0x8086, 0x3b0f,   ANY_REV, B_FS,   DEP, "Intel", "QS57",			enable_flash_pch5},
+	{0x8086, 0x3b12,   ANY_REV, B_FS,   NT,  "Intel", "3400",			enable_flash_pch5},
+	{0x8086, 0x3b14,   ANY_REV, B_FS,   DEP, "Intel", "3420",			enable_flash_pch5},
+	{0x8086, 0x3b16,   ANY_REV, B_FS,   NT,  "Intel", "3450",			enable_flash_pch5},
+	{0x8086, 0x3b1e,   ANY_REV, B_FS,   NT,  "Intel", "B55",			enable_flash_pch5},
+	{0x8086, 0x5031,   ANY_REV, B_FS,   OK,  "Intel", "EP80579",			enable_flash_ich7},
+	{0x8086, 0x7000,   ANY_REV, B_P,    OK,  "Intel", "PIIX3",			enable_flash_piix4},
+	{0x8086, 0x7110,   ANY_REV, B_P,    OK,  "Intel", "PIIX4/4E/4M",		enable_flash_piix4},
+	{0x8086, 0x7198,   ANY_REV, B_P,    OK,  "Intel", "440MX",			enable_flash_piix4},
+	{0x8086, 0x8119,   ANY_REV, B_FL,   OK,  "Intel", "SCH Poulsbo",		enable_flash_poulsbo},
+	{0x8086, 0x8186,   ANY_REV, B_FS,   OK,  "Intel", "Atom E6xx(T) (Tunnel Creek)",enable_flash_tunnelcreek},
+	{0x8086, 0x8c40,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c41,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point Mobile ES",	enable_flash_pch8},
+	{0x8086, 0x8c42,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point Desktop ES",	enable_flash_pch8},
+	{0x8086, 0x8c43,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c44,   ANY_REV, B_FS,   DEP, "Intel", "Z87",			enable_flash_pch8},
+	{0x8086, 0x8c45,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c46,   ANY_REV, B_FS,   NT,  "Intel", "Z85",			enable_flash_pch8},
+	{0x8086, 0x8c47,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c48,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c49,   ANY_REV, B_FS,   NT,  "Intel", "HM86",			enable_flash_pch8},
+	{0x8086, 0x8c4a,   ANY_REV, B_FS,   DEP, "Intel", "H87",			enable_flash_pch8},
+	{0x8086, 0x8c4b,   ANY_REV, B_FS,   DEP, "Intel", "HM87",			enable_flash_pch8},
+	{0x8086, 0x8c4c,   ANY_REV, B_FS,   NT,  "Intel", "Q85",			enable_flash_pch8},
+	{0x8086, 0x8c4d,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c4e,   ANY_REV, B_FS,   NT,  "Intel", "Q87",			enable_flash_pch8},
+	{0x8086, 0x8c4f,   ANY_REV, B_FS,   NT,  "Intel", "QM87",			enable_flash_pch8},
+	{0x8086, 0x8c50,   ANY_REV, B_FS,   DEP, "Intel", "B85",			enable_flash_pch8},
+	{0x8086, 0x8c51,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c52,   ANY_REV, B_FS,   NT,  "Intel", "C222",			enable_flash_pch8},
+	{0x8086, 0x8c53,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c54,   ANY_REV, B_FS,   DEP, "Intel", "C224",			enable_flash_pch8},
+	{0x8086, 0x8c55,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c56,   ANY_REV, B_FS,   NT,  "Intel", "C226",			enable_flash_pch8},
+	{0x8086, 0x8c57,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c58,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c59,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c5a,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c5b,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c5c,   ANY_REV, B_FS,   DEP, "Intel", "H81",			enable_flash_pch8},
+	{0x8086, 0x8c5d,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c5e,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8c5f,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point",			enable_flash_pch8},
+	{0x8086, 0x8cc1,   ANY_REV, B_FS,   NT,  "Intel", "9 Series",			enable_flash_pch9},
+	{0x8086, 0x8cc2,   ANY_REV, B_FS,   NT,  "Intel", "9 Series Engineering Sample",enable_flash_pch9},
+	{0x8086, 0x8cc3,   ANY_REV, B_FS,   NT,  "Intel", "9 Series",			enable_flash_pch9},
+	{0x8086, 0x8cc4,   ANY_REV, B_FS,   DEP, "Intel", "Z97",			enable_flash_pch9},
+	{0x8086, 0x8cc6,   ANY_REV, B_FS,   NT,  "Intel", "H97",			enable_flash_pch9},
+	{0x8086, 0x8d40,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d41,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d42,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d43,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d44,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d45,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d46,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d47,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d48,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d49,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d4a,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d4b,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d4c,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d4d,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d4e,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d4f,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d50,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d51,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d52,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d53,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d54,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d55,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d56,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d57,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d58,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d59,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d5a,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d5b,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d5c,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d5d,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d5e,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x8d5f,   ANY_REV, B_FS,   NT,  "Intel", "C610/X99 (Wellsburg)",	enable_flash_pch8_wb},
+	{0x8086, 0x9c41,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point LP Eng. Sample",	enable_flash_pch8_lp},
+	{0x8086, 0x9c43,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point LP Premium",	enable_flash_pch8_lp},
+	{0x8086, 0x9c45,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point LP Mainstream",	enable_flash_pch8_lp},
+	{0x8086, 0x9c47,   ANY_REV, B_FS,   NT,  "Intel", "Lynx Point LP Value",	enable_flash_pch8_lp},
+	{0x8086, 0x9cc1,   ANY_REV, B_FS,   NT,  "Intel", "Haswell U Sample",		enable_flash_pch9_lp},
+	{0x8086, 0x9cc2,   ANY_REV, B_FS,   NT,  "Intel", "Broadwell U Sample",		enable_flash_pch9_lp},
+	{0x8086, 0x9cc3,   ANY_REV, B_FS,   DEP, "Intel", "Broadwell U Premium",	enable_flash_pch9_lp},
+	{0x8086, 0x9cc5,   ANY_REV, B_FS,   DEP, "Intel", "Broadwell U Base",		enable_flash_pch9_lp},
+	{0x8086, 0x9cc6,   ANY_REV, B_FS,   NT,  "Intel", "Broadwell Y Sample",		enable_flash_pch9_lp},
+	{0x8086, 0x9cc7,   ANY_REV, B_FS,   NT,  "Intel", "Broadwell Y Premium",	enable_flash_pch9_lp},
+	{0x8086, 0x9cc9,   ANY_REV, B_FS,   NT,  "Intel", "Broadwell Y Base",		enable_flash_pch9_lp},
+	{0x8086, 0x9ccb,   ANY_REV, B_FS,   NT,  "Intel", "Broadwell H",		enable_flash_pch9},
+	{0x8086, 0x9d41,   ANY_REV, B_S,    NT,  "Intel", "Skylake / Kaby Lake Sample",	enable_flash_pch100},
+	{0x8086, 0x9d43,   ANY_REV, B_S,    NT,  "Intel", "Skylake U Base",		enable_flash_pch100},
+	{0x8086, 0x9d46,   ANY_REV, B_S,    NT,  "Intel", "Skylake Y Premium",		enable_flash_pch100},
+	{0x8086, 0x9d48,   ANY_REV, B_S,    DEP, "Intel", "Skylake U Premium",		enable_flash_pch100},
+	{0x8086, 0x9d4b,   ANY_REV, B_S,    NT,  "Intel", "Kaby Lake Y w/ iHDCP2.2 Prem.", enable_flash_pch100},
+	{0x8086, 0x9d4e,   ANY_REV, B_S,    DEP, "Intel", "Kaby Lake U w/ iHDCP2.2 Prem.", enable_flash_pch100},
+	{0x8086, 0x9d50,   ANY_REV, B_S,    NT,  "Intel", "Kaby Lake U w/ iHDCP2.2 Base", enable_flash_pch100},
+	{0x8086, 0x9d51,   ANY_REV, B_S,    NT,  "Intel", "Kabe Lake w/ iHDCP2.2 Sample", enable_flash_pch100},
+	{0x8086, 0x9d53,   ANY_REV, B_S,    NT,  "Intel", "Kaby Lake U Base",		enable_flash_pch100},
+	{0x8086, 0x9d56,   ANY_REV, B_S,    NT,  "Intel", "Kaby Lake Y Premium",	enable_flash_pch100},
+	{0x8086, 0x9d58,   ANY_REV, B_S,    NT,  "Intel", "Kaby Lake U Premium",	enable_flash_pch100},
+	{0x8086, 0x9d84,   ANY_REV, B_S,    DEP, "Intel", "Cannon Lake U Premium",	enable_flash_pch300},
+	{0x8086, 0x0284,   ANY_REV, B_S,    DEP, "Intel", "Comet Lake U Premium",	enable_flash_pch300},
+	{0x8086, 0x0285,   ANY_REV, B_S,    DEP, "Intel", "Comet Lake U Base",		enable_flash_pch300},
+	{0x8086, 0xa082,   ANY_REV, B_S,    DEP, "Intel", "Tiger Lake U Premium",	enable_flash_pch500},
+	{0x8086, 0xa141,   ANY_REV, B_S,    NT,  "Intel", "Sunrise Point Desktop Sample", enable_flash_pch100},
+	{0x8086, 0xa142,   ANY_REV, B_S,    NT,  "Intel", "Sunrise Point Unknown Sample", enable_flash_pch100},
+	{0x8086, 0xa143,   ANY_REV, B_S,    DEP, "Intel", "H110",			enable_flash_pch100},
+	{0x8086, 0xa144,   ANY_REV, B_S,    NT,  "Intel", "H170",			enable_flash_pch100},
+	{0x8086, 0xa145,   ANY_REV, B_S,    NT,  "Intel", "Z170",			enable_flash_pch100},
+	{0x8086, 0xa146,   ANY_REV, B_S,    NT,  "Intel", "Q170",			enable_flash_pch100},
+	{0x8086, 0xa147,   ANY_REV, B_S,    NT,  "Intel", "Q150",			enable_flash_pch100},
+	{0x8086, 0xa148,   ANY_REV, B_S,    NT,  "Intel", "B150",			enable_flash_pch100},
+	{0x8086, 0xa149,   ANY_REV, B_S,    NT,  "Intel", "C236",			enable_flash_pch100},
+	{0x8086, 0xa14a,   ANY_REV, B_S,    NT,  "Intel", "C232",			enable_flash_pch100},
+	{0x8086, 0xa14b,   ANY_REV, B_S,    NT,  "Intel", "Sunrise Point Server Sample",enable_flash_pch100},
+	{0x8086, 0xa14d,   ANY_REV, B_S,    NT,  "Intel", "QM170",			enable_flash_pch100},
+	{0x8086, 0xa14e,   ANY_REV, B_S,    NT,  "Intel", "HM170",			enable_flash_pch100},
+	{0x8086, 0xa150,   ANY_REV, B_S,    DEP, "Intel", "CM236",			enable_flash_pch100},
+	{0x8086, 0xa151,   ANY_REV, B_S,    NT,  "Intel", "QMS180",			enable_flash_pch100},
+	{0x8086, 0xa152,   ANY_REV, B_S,    NT,  "Intel", "HM175",			enable_flash_pch100},
+	{0x8086, 0xa153,   ANY_REV, B_S,    NT,  "Intel", "QM175",			enable_flash_pch100},
+	{0x8086, 0xa154,   ANY_REV, B_S,    NT,  "Intel", "CM238",			enable_flash_pch100},
+	{0x8086, 0xa155,   ANY_REV, B_S,    NT,  "Intel", "QMU185",			enable_flash_pch100},
+	{0x8086, 0xa1a4,   ANY_REV, B_S,    DEP, "Intel", "C620 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c0,   ANY_REV, B_S,    NT,  "Intel", "C620 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c1,   ANY_REV, B_S,    NT,  "Intel", "C621 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c2,   ANY_REV, B_S,    NT,  "Intel", "C622 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c3,   ANY_REV, B_S,    NT,  "Intel", "C624 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c4,   ANY_REV, B_S,    NT,  "Intel", "C625 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c5,   ANY_REV, B_S,    NT,  "Intel", "C626 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c6,   ANY_REV, B_S,    NT,  "Intel", "C627 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c7,   ANY_REV, B_S,    NT,  "Intel", "C628 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c8,   ANY_REV, B_S,    NT,  "Intel", "C620 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1c9,   ANY_REV, B_S,    NT,  "Intel", "C620 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1ca,   ANY_REV, B_S,    NT,  "Intel", "C629 Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1cb,   ANY_REV, B_S,    NT,  "Intel", "C621A Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1cc,   ANY_REV, B_S,    NT,  "Intel", "C627A Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa1cd,   ANY_REV, B_S,    NT,  "Intel", "C629A Series (QS/PRQ)",	enable_flash_c620},
+	{0x8086, 0xa240,   ANY_REV, B_S,    NT,  "Intel", "C620 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa241,   ANY_REV, B_S,    NT,  "Intel", "C620 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa242,   ANY_REV, B_S,    NT,  "Intel", "C624 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa243,   ANY_REV, B_S,    NT,  "Intel", "C627 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa244,   ANY_REV, B_S,    NT,  "Intel", "C621 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa245,   ANY_REV, B_S,    NT,  "Intel", "C627 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa246,   ANY_REV, B_S,    NT,  "Intel", "C628 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa247,   ANY_REV, B_S,    NT,  "Intel", "C620 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa248,   ANY_REV, B_S,    NT,  "Intel", "C620 Series Supersku",	enable_flash_c620},
+	{0x8086, 0xa249,   ANY_REV, B_S,    NT,  "Intel", "C620 Series Supersku",	enable_flash_c620},
+	{0x8086, 0x1bca,   ANY_REV, B_S,    NT,  "Intel", "Emmitsburg SKU",		enable_flash_c620},
+	{0x8086, 0xa2c4,   ANY_REV, B_S,    NT,  "Intel", "H270",			enable_flash_pch100},
+	{0x8086, 0xa2c5,   ANY_REV, B_S,    NT,  "Intel", "Z270",			enable_flash_pch100},
+	{0x8086, 0xa2c6,   ANY_REV, B_S,    NT,  "Intel", "Q270",			enable_flash_pch100},
+	{0x8086, 0xa2c7,   ANY_REV, B_S,    NT,  "Intel", "Q250",			enable_flash_pch100},
+	{0x8086, 0xa2c8,   ANY_REV, B_S,    NT,  "Intel", "B250",			enable_flash_pch100},
+	{0x8086, 0xa2c9,   ANY_REV, B_S,    NT,  "Intel", "Z370",			enable_flash_pch100},
+	{0x8086, 0xa2ca,   ANY_REV, B_S,    DEP, "Intel", "H310C",			enable_flash_pch100},
+	{0x8086, 0xa2cc,   ANY_REV, B_S,    DEP, "Intel", "B365",			enable_flash_pch100},
+	{0x8086, 0xa2d2,   ANY_REV, B_S,    NT,  "Intel", "X299",			enable_flash_pch100},
+	{0x8086, 0x5ae8,   ANY_REV, B_S,    DEP, "Intel", "Apollo Lake",		enable_flash_apl},
+	{0x8086, 0x5af0,   ANY_REV, B_S,    DEP, "Intel", "Apollo Lake",		enable_flash_apl},
+	{0x8086, 0x3197,   ANY_REV, B_S,    NT,  "Intel", "Gemini Lake",		enable_flash_glk},
+	{0x8086, 0x31e8,   ANY_REV, B_S,    DEP, "Intel", "Gemini Lake",		enable_flash_glk},
+	{0x8086, 0x4b24,   ANY_REV, B_S,    DEP, "Intel", "Elkhart Lake",		enable_flash_mcc},
+	{0x8086, 0xa303,   ANY_REV, B_S,    NT,  "Intel", "H310",			enable_flash_pch300},
+	{0x8086, 0xa304,   ANY_REV, B_S,    NT,  "Intel", "H370",			enable_flash_pch300},
+	{0x8086, 0xa305,   ANY_REV, B_S,    DEP, "Intel", "Z390",			enable_flash_pch300},
+	{0x8086, 0xa306,   ANY_REV, B_S,    NT,  "Intel", "Q370",			enable_flash_pch300},
+	{0x8086, 0xa308,   ANY_REV, B_S,    NT,  "Intel", "B360",			enable_flash_pch300},
+	{0x8086, 0xa309,   ANY_REV, B_S,    DEP, "Intel", "C246",			enable_flash_pch300},
+	{0x8086, 0xa30a,   ANY_REV, B_S,    NT,  "Intel", "C242",			enable_flash_pch300},
+	{0x8086, 0xa30c,   ANY_REV, B_S,    NT,  "Intel", "QM370",			enable_flash_pch300},
+	{0x8086, 0xa30d,   ANY_REV, B_S,    NT,  "Intel", "HM370",			enable_flash_pch300},
+	{0x8086, 0xa30e,   ANY_REV, B_S,    DEP, "Intel", "CM246",			enable_flash_pch300},
+	{0x8086, 0x3482,   ANY_REV, B_S,    DEP, "Intel", "Ice Lake U Premium",		enable_flash_pch300},
+	{0x8086, 0x0684,   ANY_REV, B_S,    NT,  "Intel", "H470",			enable_flash_pch300},
+	{0x8086, 0x0685,   ANY_REV, B_S,    NT,  "Intel", "Z490",			enable_flash_pch300},
+	{0x8086, 0x0687,   ANY_REV, B_S,    NT,  "Intel", "Q470",			enable_flash_pch300},
+	{0x8086, 0x068c,   ANY_REV, B_S,    NT,  "Intel", "QM480",			enable_flash_pch300},
+	{0x8086, 0x068d,   ANY_REV, B_S,    NT,  "Intel", "HM470",			enable_flash_pch300},
+	{0x8086, 0x068e,   ANY_REV, B_S,    NT,  "Intel", "WM490",			enable_flash_pch300},
+	{0x8086, 0x0697,   ANY_REV, B_S,    NT,  "Intel", "W480",			enable_flash_pch300},
+	{0x8086, 0x4da4,   ANY_REV, B_S,    NT,  "Intel", "Jasper Lake",		enable_flash_pch300},
+	{0x8086, 0x4384,   ANY_REV, B_S,    NT,  "Intel", "Q570",			enable_flash_pch500},
+	{0x8086, 0x4385,   ANY_REV, B_S,    NT,  "Intel", "Z590",			enable_flash_pch500},
+	{0x8086, 0x4386,   ANY_REV, B_S,    NT,  "Intel", "H570",			enable_flash_pch500},
+	{0x8086, 0x4387,   ANY_REV, B_S,    NT,  "Intel", "B560",			enable_flash_pch500},
+	{0x8086, 0x4388,   ANY_REV, B_S,    NT,  "Intel", "H510",			enable_flash_pch500},
+	{0x8086, 0x438f,   ANY_REV, B_S,    NT,  "Intel", "W580",			enable_flash_pch500},
+	{0x8086, 0x4389,   ANY_REV, B_S,    NT,  "Intel", "WM590",			enable_flash_pch500},
+	{0x8086, 0x438a,   ANY_REV, B_S,    NT,  "Intel", "QM580",			enable_flash_pch500},
+	{0x8086, 0x438b,   ANY_REV, B_S,    DEP, "Intel", "HM570",			enable_flash_pch500},
+	{0x8086, 0x51a4,   ANY_REV, B_S,    DEP, "Intel", "Alder Lake-P",		enable_flash_pch500},
+	{0x8086, 0x54a4,   ANY_REV, B_S,    DEP, "Intel", "Alder Lake-N",		enable_flash_pch500},
+	{0x8086, 0x7aa4,   ANY_REV, B_S,    NT,  "Intel", "Alder Lake-S",		enable_flash_pch500},
 #endif
 	{0},
 };
@@ -2154,6 +2157,11 @@
 				   chipset_enables[i].device_id);
 		if (!dev)
 			continue;
+		if (chipset_enables[i].match_revision) {
+			const uint8_t rev_id = pci_read_word(dev, PCI_REVISION_ID);
+			if (rev_id != chipset_enables[i].revision_id)
+				continue;
+		}
 		if (ret != -2) {
 			msg_pwarn("Warning: unexpected second chipset match: "
 				    "\"%s %s\"\n"