Entered remaining CPU family text strings

The table of CPU family text strings was incomplete, missing many
entries, of processors both historical and bleeding-edge. Added the
missing entries, as per Table 23 of DSP0134 3.7.0 spec.

Following the consistent format of whatever spelling and capitalization
the entry had in the spec, but with the dropping of special marketing
characters like (C), (R), (TM).

Tested: My CPU no longer shows up as "Unknown Processor Family".

Change-Id: I499cb516de27bf4adec7d034030c3d9c19c2c833
Signed-off-by: Josh Lehan <krellan@google.com>
diff --git a/include/cpu.hpp b/include/cpu.hpp
index bae8dc0..26579a6 100644
--- a/include/cpu.hpp
+++ b/include/cpu.hpp
@@ -44,16 +44,134 @@
 using association =
     sdbusplus::server::xyz::openbmc_project::association::Definitions;
 
-// Definition follow smbios spec DSP0134 3.0.0
+// This table is up to date as of SMBIOS spec DSP0134 3.7.0
 static const std::map<uint8_t, const char*> familyTable = {
-    {0x1, "Other"},
-    {0x2, "Unknown"},
+    {0x01, "Other"},
+    {0x02, "Unknown"},
+    {0x03, "8086"},
+    {0x04, "80286"},
+    {0x05, "Intel 386 processor"},
+    {0x06, "Intel 486 processor"},
+    {0x07, "8087"},
+    {0x08, "80287"},
+    {0x09, "80387"},
+    {0x0a, "80487"},
+    {0x0b, "Intel Pentium processor"},
+    {0x0c, "Pentium Pro processor"},
+    {0x0d, "Pentium II processor"},
+    {0x0e, "Pentium processor with MMX technology"},
+    {0x0f, "Intel Celeron processor"},
     {0x10, "Pentium II Xeon processor"},
+    {0x11, "Pentium III processor"},
+    {0x12, "M1 Family"},
+    {0x13, "M2 Family"},
+    {0x14, "Intel Celeron M processor"},
+    {0x15, "Intel Pentium 4 HT processor"},
+    {0x16, "Intel Processor"},
+    {0x18, "AMD Duron Processor Family"},
+    {0x19, "K5 Family"},
+    {0x1a, "K6 Family"},
+    {0x1b, "K6-2"},
+    {0x1c, "K6-3"},
+    {0x1d, "AMD Athlon Processor Family"},
+    {0x1e, "AMD29000 Family"},
+    {0x1f, "K6-2+"},
+    {0x20, "Power PC Family"},
+    {0x21, "Power PC 601"},
+    {0x22, "Power PC 603"},
+    {0x23, "Power PC 603+"},
+    {0x24, "Power PC 604"},
+    {0x25, "Power PC 620"},
+    {0x26, "Power PC x704"},
+    {0x27, "Power PC 750"},
+    {0x28, "Intel Core Duo processor"},
+    {0x29, "Intel Core Duo mobile processor"},
+    {0x2a, "Intel Core Solo mobile processor"},
     {0x2b, "Intel Atom processor"},
     {0x2c, "Intel Core M processor"},
     {0x2d, "Intel Core m3 processor"},
     {0x2e, "Intel Core m5 processor"},
     {0x2f, "Intel Core m7 processor"},
+    {0x30, "Alpha Family"},
+    {0x31, "Alpha 21064"},
+    {0x32, "Alpha 21066"},
+    {0x33, "Alpha 21164"},
+    {0x34, "Alpha 21164PC"},
+    {0x35, "Alpha 21164a"},
+    {0x36, "Alpha 21264"},
+    {0x37, "Alpha 21364"},
+    {0x38, "AMD Turion II Ultra Dual-Core Mobile M Processor Family"},
+    {0x39, "AMD Turion II Dual-Core Mobile M Processor Family"},
+    {0x3a, "AMD Athlon II Dual-Core M Processor Family"},
+    {0x3b, "AMD Opteron 6100 Series Processor"},
+    {0x3c, "AMD Opteron 4100 Series Processor"},
+    {0x3d, "AMD Opteron 6200 Series Processor"},
+    {0x3e, "AMD Opteron 4200 Series Processor"},
+    {0x3f, "AMD FX Series Processor"},
+    {0x40, "MIPS Family"},
+    {0x41, "MIPS R4000"},
+    {0x42, "MIPS R4200"},
+    {0x43, "MIPS R4400"},
+    {0x44, "MIPS R4600"},
+    {0x45, "MIPS R10000"},
+    {0x46, "AMD C-Series Processor"},
+    {0x47, "AMD E-Series Processor"},
+    {0x48, "AMD A-Series Processor"},
+    {0x49, "AMD G-Series Processor"},
+    {0x4a, "AMD Z-Series Processor"},
+    {0x4b, "AMD R-Series Processor"},
+    {0x4c, "AMD Opteron 4300 Series Processor"},
+    {0x4d, "AMD Opteron 6300 Series Processor"},
+    {0x4e, "AMD Opteron 3300 Series Processor"},
+    {0x4f, "AMD FirePro Series Processor"},
+    {0x50, "SPARC Family"},
+    {0x51, "SuperSPARC"},
+    {0x52, "microSPARC II"},
+    {0x53, "microSPARC IIep"},
+    {0x54, "UltraSPARC"},
+    {0x55, "UltraSPARC II"},
+    {0x56, "UltraSPARC Iii"},
+    {0x57, "UltraSPARC III"},
+    {0x58, "UltraSPARC IIIi"},
+    {0x60, "68040 Family"},
+    {0x61, "68xxx"},
+    {0x62, "68000"},
+    {0x63, "68010"},
+    {0x64, "68020"},
+    {0x65, "68030"},
+    {0x66, "AMD Athlon X4 Quad-Core Processor Family"},
+    {0x67, "AMD Opteron X1000 Series Processor"},
+    {0x68, "AMD Opteron X2000 Series APU"},
+    {0x69, "AMD Opteron A-Series Processor"},
+    {0x6a, "AMD Opteron X3000 Series APU"},
+    {0x6b, "AMD Zen Processor Family"},
+    {0x70, "Hobbit Family"},
+    {0x78, "Crusoe TM5000 Family"},
+    {0x79, "Crusoe TM3000 Family"},
+    {0x7a, "Efficeon TM8000 Family"},
+    {0x80, "Weitek"},
+    {0x82, "Itanium processor"},
+    {0x83, "AMD Athlon 64 Processor Family"},
+    {0x84, "AMD Opteron Processor Family"},
+    {0x85, "AMD Sempron Processor Family"},
+    {0x86, "AMD Turion 64 Mobile Technology"},
+    {0x87, "Dual-Core AMD Opteron Processor Family"},
+    {0x88, "AMD Athlon 64 X2 Dual-Core Processor Family"},
+    {0x89, "AMD Turion 64 X2 Mobile Technology"},
+    {0x8a, "Quad-Core AMD Opteron Processor Family"},
+    {0x8b, "Third-Generation AMD Opteron Processor Family"},
+    {0x8c, "AMD Phenom FX Quad-Core Processor Family"},
+    {0x8d, "AMD Phenom X4 Quad-Core Processor Family"},
+    {0x8e, "AMD Phenom X2 Dual-Core Processor Family"},
+    {0x8f, "AMD Athlon X2 Dual-Core Processor Family"},
+    {0x90, "PA-RISC Family"},
+    {0x91, "PA-RISC 8500"},
+    {0x92, "PA-RISC 8000"},
+    {0x93, "PA-RISC 7300LC"},
+    {0x94, "PA-RISC 7200"},
+    {0x95, "PA-RISC 7100LC"},
+    {0x96, "PA-RISC 7100"},
+    {0xa0, "V30 Family"},
     {0xa1, "Quad-Core Intel Xeon processor 3200 Series"},
     {0xa2, "Dual-Core Intel Xeon processor 3000 Series"},
     {0xa3, "Quad-Core Intel Xeon processor 5300 Series"},
@@ -70,8 +188,40 @@
     {0xae, "Quad-Core Intel Xeon processor 7400 Series"},
     {0xaf, "Multi-Core Intel Xeon processor 7400 Series"},
     {0xb0, "Pentium III Xeon processor"},
+    {0xb1, "Pentium III Processor with Intel SpeedStep Technology"},
+    {0xb2, "Pentium 4 Processor"},
     {0xb3, "Intel Xeon processor"},
+    {0xb4, "AS400 Family"},
     {0xb5, "Intel Xeon processor MP"},
+    {0xb6, "AMD Athlon XP Processor Family"},
+    {0xb7, "AMD Athlon MP Processor Family"},
+    {0xb8, "Intel Itanium 2 processor"},
+    {0xb9, "Intel Pentium M processor"},
+    {0xba, "Intel Celeron D processor"},
+    {0xbb, "Intel Pentium D processor"},
+    {0xbc, "Intel Pentium Processor Extreme Edition"},
+    {0xbd, "Intel Core Solo Processor"},
+    {0xbf, "Intel Core 2 Duo Processor"},
+    {0xc0, "Intel Core 2 Solo processor"},
+    {0xc1, "Intel Core 2 Extreme processor"},
+    {0xc2, "Intel Core 2 Quad processor"},
+    {0xc3, "Intel Core 2 Extreme mobile processor"},
+    {0xc4, "Intel Core 2 Duo mobile processor"},
+    {0xc5, "Intel Core 2 Solo mobile processor"},
+    {0xc6, "Intel Core i7 processor"},
+    {0xc7, "Dual-Core Intel Celeron processor"},
+    {0xc8, "IBM390 Family"},
+    {0xc9, "G4"},
+    {0xca, "G5"},
+    {0xcb, "ESA/390 G6"},
+    {0xcc, "z/Architecture base"},
+    {0xcd, "Intel Core i5 processor"},
+    {0xce, "Intel Core i3 processor"},
+    {0xcf, "Intel Core i9 processor"},
+    {0xd2, "VIA C7-M Processor Family"},
+    {0xd3, "VIA C7-D Processor Family"},
+    {0xd4, "VIA C7 Processor Family"},
+    {0xd5, "VIA Eden Processor Family"},
     {0xd6, "Multi-Core Intel Xeon processor"},
     {0xd7, "Dual-Core Intel Xeon processor 3xxx Series"},
     {0xd8, "Quad-Core Intel Xeon processor 3xxx Series"},
@@ -82,15 +232,57 @@
     {0xde, "Quad-Core Intel Xeon processor 7xxx Series"},
     {0xdf, "Multi-Core Intel Xeon processor 7xxx Series"},
     {0xe0, "Multi-Core Intel Xeon processor 3400 Series"},
-    {0xfe, "Processor Family 2 Indicator"}
+    {0xe4, "AMD Opteron 3000 Series Processor"},
+    {0xe5, "AMD Sempron II Processor"},
+    {0xe6, "Embedded AMD Opteron Quad-Core Processor Family"},
+    {0xe7, "AMD Phenom Triple-Core Processor Family"},
+    {0xe8, "AMD Turion Ultra Dual-Core Mobile Processor Family"},
+    {0xe9, "AMD Turion Dual-Core Mobile Processor Family"},
+    {0xea, "AMD Athlon Dual-Core Processor Family"},
+    {0xeb, "AMD Sempron SI Processor Family"},
+    {0xec, "AMD Phenom II Processor Family"},
+    {0xed, "AMD Athlon II Processor Family"},
+    {0xee, "Six-core AMD Opteron Processor Family"},
+    {0xef, "AMD Sempron M Processor Family"},
+    {0xfa, "i860"},
+    {0xfb, "i960"},
+    {0xfe, "Processor Family 2 Indicator"}};
 
-};
-
-// Definition follow smbios spec DSP0134 3.1.1
+// This table is up to date as of SMBIOS spec DSP0134 3.7.0
 static const std::map<uint16_t, const char*> family2Table = {
-    {0x100, "ARMv7"}, {0x101, "ARMv8"}, {0x118, "ARM"}, {0x119, "StrongARM"}
-
-};
+    {0x100, "ARMv7"},
+    {0x101, "ARMv8"},
+    {0x102, "ARMv9"},
+    {0x104, "SH-3"},
+    {0x105, "SH-4"},
+    {0x118, "ARM"},
+    {0x119, "StrongARM"},
+    {0x12c, "6x86"},
+    {0x12d, "MediaGX"},
+    {0x12e, "MII"},
+    {0x140, "WinChip"},
+    {0x15e, "DSP"},
+    {0x1f4, "Video Processor"},
+    {0x200, "RISC-V RV32"},
+    {0x201, "RISC-V RV64"},
+    {0x202, "RISC-V RV128"},
+    {0x258, "LoongArch"},
+    {0x259, "Loongson 1 Processor Family"},
+    {0x25a, "Loongson 2 Processor Family"},
+    {0x25b, "Loongson 3 Processor Family"},
+    {0x25c, "Loongson 2K Processor Family"},
+    {0x25d, "Loongson 3A Processor Family"},
+    {0x25e, "Loongson 3B Processor Family"},
+    {0x25f, "Loongson 3C Processor Family"},
+    {0x260, "Loongson 3D Processor Family"},
+    {0x261, "Loongson 3E Processor Family"},
+    {0x262, "Dual-Core Loongson 2K Processor 2xxx Series"},
+    {0x26c, "Quad-Core Loongson 3A Processor 5xxx Series"},
+    {0x26d, "Multi-Core Loongson 3A Processor 5xxx Series"},
+    {0x26e, "Quad-Core Loongson 3B Processor 5xxx Series"},
+    {0x26f, "Multi-Core Loongson 3B Processor 5xxx Series"},
+    {0x270, "Multi-Core Loongson 3C Processor 5xxx Series"},
+    {0x271, "Multi-Core Loongson 3D Processor 5xxx Series"}};
 
 // Definition follow smbios spec DSP0134 3.0.0
 static const std::array<std::optional<processor::Capability>, 16>