inteltool: Add Intel 4-Series chipset detection

Previously, X4X was incorrectly named because it provides
support for SKUs within XX4X range.  This is renamed.

This patch provides support for all X4X SKUs according to
datasheet Intel 4 Series Chipset Family Specification Update,
namely: Q45, Q43, P45, P43, G45, G43, G41 and B43 (both versions).

Tested on Gigabyte GA-G41M-ES2L

Change-Id: I032265e80d9ca51e2fef29201280832ea3210a0b
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Reviewed-on: http://review.coreboot.org/11245
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
diff --git a/util/inteltool/inteltool.c b/util/inteltool/inteltool.c
index 06dd20f..508b55a 100644
--- a/util/inteltool/inteltool.c
+++ b/util/inteltool/inteltool.c
@@ -61,7 +61,12 @@
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82Q35, "Q35" },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82X38, "X38/X48" },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_32X0, "3200/3210" },
-	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82X4X, "GL40/GS40/GM45/GS45/PM45" },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82XX4X, "GL40/GS40/GM45/GS45/PM45" },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82Q45, "Q45/Q43" },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82G45, "G45/G43/P45/P43" },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82G41, "G41" },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82B43, "B43 (Base)" },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82B43_2, "B43 (Soft)" },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82X58, "X58" },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_I5000P, "Intel i5000P Memory Controller Hub" },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_I5000X, "Intel i5000X Memory Controller Hub" },
diff --git a/util/inteltool/inteltool.h b/util/inteltool/inteltool.h
index 10b69a9..cff0fd9 100644
--- a/util/inteltool/inteltool.h
+++ b/util/inteltool/inteltool.h
@@ -132,7 +132,13 @@
 #define PCI_DEVICE_ID_INTEL_82Q33		0x29d0
 #define PCI_DEVICE_ID_INTEL_82X38 		0x29e0
 #define PCI_DEVICE_ID_INTEL_32X0		0x29f0
-#define PCI_DEVICE_ID_INTEL_82X4X		0x2a40
+#define PCI_DEVICE_ID_INTEL_82XX4X		0x2a40
+#define PCI_DEVICE_ID_INTEL_82Q45		0x2e10
+#define PCI_DEVICE_ID_INTEL_82G45		0x2e20
+#define PCI_DEVICE_ID_INTEL_82G41		0x2e30
+#define PCI_DEVICE_ID_INTEL_82B43		0x2e40
+#define PCI_DEVICE_ID_INTEL_82B43_2		0x2e90
+
 #define PCI_DEVICE_ID_INTEL_82X58		0x3405
 #define PCI_DEVICE_ID_INTEL_SCH_POULSBO	0x8100
 #define PCI_DEVICE_ID_INTEL_ATOM_DXXX	0xa000
diff --git a/util/inteltool/memory.c b/util/inteltool/memory.c
index 6c6a67d..313de5a 100644
--- a/util/inteltool/memory.c
+++ b/util/inteltool/memory.c
@@ -194,7 +194,12 @@
 	case PCI_DEVICE_ID_INTEL_82830M:
 		printf("This northbridge does not have MCHBAR.\n");
 		return 1;
-	case PCI_DEVICE_ID_INTEL_82X4X:
+	case PCI_DEVICE_ID_INTEL_82XX4X:
+	case PCI_DEVICE_ID_INTEL_82Q45:
+	case PCI_DEVICE_ID_INTEL_82G45:
+	case PCI_DEVICE_ID_INTEL_82G41:
+	case PCI_DEVICE_ID_INTEL_82B43:
+	case PCI_DEVICE_ID_INTEL_82B43_2:
 	case PCI_DEVICE_ID_INTEL_82X38:
 	case PCI_DEVICE_ID_INTEL_32X0:
 		mchbar_phys = pci_read_long(nb, 0x48) & 0xfffffffe;
diff --git a/util/inteltool/pcie.c b/util/inteltool/pcie.c
index a3d8270..ebe0877 100644
--- a/util/inteltool/pcie.c
+++ b/util/inteltool/pcie.c
@@ -202,7 +202,12 @@
 	case PCI_DEVICE_ID_INTEL_82Q33:
 	case PCI_DEVICE_ID_INTEL_82X38:
 	case PCI_DEVICE_ID_INTEL_32X0:
-	case PCI_DEVICE_ID_INTEL_82X4X:
+	case PCI_DEVICE_ID_INTEL_82XX4X:
+	case PCI_DEVICE_ID_INTEL_82Q45:
+	case PCI_DEVICE_ID_INTEL_82G45:
+	case PCI_DEVICE_ID_INTEL_82G41:
+	case PCI_DEVICE_ID_INTEL_82B43:
+	case PCI_DEVICE_ID_INTEL_82B43_2:
 	case PCI_DEVICE_ID_INTEL_ATOM_DXXX:
 	case PCI_DEVICE_ID_INTEL_ATOM_NXXX:
 	case PCI_DEVICE_ID_INTEL_CORE_2ND_GEN_D:
@@ -277,7 +282,12 @@
 	case PCI_DEVICE_ID_INTEL_82Q33:
 	case PCI_DEVICE_ID_INTEL_82X38:
 	case PCI_DEVICE_ID_INTEL_32X0:
-	case PCI_DEVICE_ID_INTEL_82X4X:
+	case PCI_DEVICE_ID_INTEL_82XX4X:
+	case PCI_DEVICE_ID_INTEL_82Q45:
+	case PCI_DEVICE_ID_INTEL_82G45:
+	case PCI_DEVICE_ID_INTEL_82G41:
+	case PCI_DEVICE_ID_INTEL_82B43:
+	case PCI_DEVICE_ID_INTEL_82B43_2:
 	case PCI_DEVICE_ID_INTEL_ATOM_DXXX:
 	case PCI_DEVICE_ID_INTEL_ATOM_NXXX:
 		dmibar_phys = pci_read_long(nb, 0x68) & 0xfffffffe;
@@ -406,7 +416,12 @@
 	case PCI_DEVICE_ID_INTEL_82Q33:
 	case PCI_DEVICE_ID_INTEL_82X38:
 	case PCI_DEVICE_ID_INTEL_32X0:
-	case PCI_DEVICE_ID_INTEL_82X4X:
+	case PCI_DEVICE_ID_INTEL_82XX4X:
+	case PCI_DEVICE_ID_INTEL_82Q45:
+	case PCI_DEVICE_ID_INTEL_82G45:
+	case PCI_DEVICE_ID_INTEL_82G41:
+	case PCI_DEVICE_ID_INTEL_82B43:
+	case PCI_DEVICE_ID_INTEL_82B43_2:
 	case PCI_DEVICE_ID_INTEL_ATOM_DXXX:
 	case PCI_DEVICE_ID_INTEL_ATOM_NXXX:
 	case PCI_DEVICE_ID_INTEL_CORE_2ND_GEN_D: