Add SMP link support for Bonnell

Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I69e9cec0e050fa207254d11ba3596858ed767432
diff --git a/util/data/meson.build b/util/data/meson.build
index 8be4402..41aa185 100644
--- a/util/data/meson.build
+++ b/util/data/meson.build
@@ -1,6 +1,7 @@
 # Install the data files
 
 data_files = files(
+    'peer-targets-bonnell.json',
     'peer-targets-everest.json',
     'peer-targets-rainier-2u.json',
     'peer-targets-rainier-4u.json',
diff --git a/util/data/peer-targets-bonnell.json b/util/data/peer-targets-bonnell.json
new file mode 100644
index 0000000..ff07ff3
--- /dev/null
+++ b/util/data/peer-targets-bonnell.json
@@ -0,0 +1,53 @@
+{
+    "/proc0/pib/perv24/pauc0/iohs0": "",
+    "/proc0/pib/perv25/pauc0/iohs1": "",
+    "/proc0/pib/perv26/pauc1/iohs0": "/proc1/pib/perv25/pauc0/iohs1",
+    "/proc0/pib/perv27/pauc1/iohs1": "",
+    "/proc0/pib/perv28/pauc2/iohs0": "",
+    "/proc0/pib/perv29/pauc2/iohs1": "",
+    "/proc0/pib/perv30/pauc3/iohs0": "/proc1/pib/perv28/pauc2/iohs0",
+    "/proc0/pib/perv31/pauc3/iohs1": "",
+
+    "/proc1/pib/perv24/pauc0/iohs0": "",
+    "/proc1/pib/perv25/pauc0/iohs1": "/proc0/pib/perv26/pauc1/iohs0",
+    "/proc1/pib/perv26/pauc1/iohs0": "",
+    "/proc1/pib/perv27/pauc1/iohs1": "",
+    "/proc1/pib/perv28/pauc2/iohs0": "/proc0/pib/perv30/pauc3/iohs0",
+    "/proc1/pib/perv29/pauc2/iohs1": "",
+    "/proc1/pib/perv30/pauc3/iohs0": "",
+    "/proc1/pib/perv31/pauc3/iohs1": "",
+
+    "/proc0/pib/perv24/pauc0/iohs0/smpgroup0": "",
+    "/proc0/pib/perv24/pauc0/iohs0/smpgroup1": "",
+    "/proc0/pib/perv25/pauc0/iohs1/smpgroup0": "",
+    "/proc0/pib/perv25/pauc0/iohs1/smpgroup1": "",
+    "/proc0/pib/perv26/pauc1/iohs0/smpgroup0": "/proc1/pib/perv25/pauc0/iohs1/smpgroup0",
+    "/proc0/pib/perv26/pauc1/iohs0/smpgroup1": "/proc1/pib/perv25/pauc0/iohs1/smpgroup1",
+    "/proc0/pib/perv27/pauc1/iohs1/smpgroup0": "",
+    "/proc0/pib/perv27/pauc1/iohs1/smpgroup1": "",
+    "/proc0/pib/perv28/pauc2/iohs0/smpgroup0": "",
+    "/proc0/pib/perv28/pauc2/iohs0/smpgroup1": "",
+    "/proc0/pib/perv29/pauc2/iohs1/smpgroup0": "",
+    "/proc0/pib/perv29/pauc2/iohs1/smpgroup1": "",
+    "/proc0/pib/perv30/pauc3/iohs0/smpgroup0": "/proc1/pib/perv28/pauc2/iohs0/smpgroup0",
+    "/proc0/pib/perv30/pauc3/iohs0/smpgroup1": "/proc1/pib/perv28/pauc2/iohs0/smpgroup1",
+    "/proc0/pib/perv31/pauc3/iohs1/smpgroup0": "",
+    "/proc0/pib/perv31/pauc3/iohs1/smpgroup1": "",
+
+    "/proc1/pib/perv24/pauc0/iohs0/smpgroup0": "",
+    "/proc1/pib/perv24/pauc0/iohs0/smpgroup1": "",
+    "/proc1/pib/perv25/pauc0/iohs1/smpgroup0": "/proc0/pib/perv26/pauc1/iohs0/smpgroup0",
+    "/proc1/pib/perv25/pauc0/iohs1/smpgroup1": "/proc0/pib/perv26/pauc1/iohs0/smpgroup1",
+    "/proc1/pib/perv26/pauc1/iohs0/smpgroup0": "",
+    "/proc1/pib/perv26/pauc1/iohs0/smpgroup1": "",
+    "/proc1/pib/perv27/pauc1/iohs1/smpgroup0": "",
+    "/proc1/pib/perv27/pauc1/iohs1/smpgroup1": "",
+    "/proc1/pib/perv28/pauc2/iohs0/smpgroup0": "/proc0/pib/perv30/pauc3/iohs0/smpgroup0",
+    "/proc1/pib/perv28/pauc2/iohs0/smpgroup1": "/proc0/pib/perv30/pauc3/iohs0/smpgroup1",
+    "/proc1/pib/perv29/pauc2/iohs1/smpgroup0": "",
+    "/proc1/pib/perv29/pauc2/iohs1/smpgroup1": "",
+    "/proc1/pib/perv30/pauc3/iohs0/smpgroup0": "",
+    "/proc1/pib/perv30/pauc3/iohs0/smpgroup1": "",
+    "/proc1/pib/perv31/pauc3/iohs1/smpgroup0": "",
+    "/proc1/pib/perv31/pauc3/iohs1/smpgroup1": ""
+}
diff --git a/util/dbus.cpp b/util/dbus.cpp
index e0fcd5c..bfb5197 100644
--- a/util/dbus.cpp
+++ b/util/dbus.cpp
@@ -424,6 +424,7 @@
             // RAINIER_1S4U == 0x50001002
             // RAINIER_1S2U == 0x50001003
             // EVEREST      == 0x50003000
+            // BONNELL      == 0x50004000
             try
             {
                 // Format the vector into a single hex string to compare to.
@@ -437,6 +438,7 @@
                     {"0x50001002", MachineType::Rainier_1S4U},
                     {"0x50001003", MachineType::Rainier_1S2U},
                     {"0x50003000", MachineType::Everest},
+                    {"0x50004000", MachineType::Bonnell},
                 };
 
                 machineType = typeMap.at(hexId);
diff --git a/util/dbus.hpp b/util/dbus.hpp
index 1bf0d44..32d1b9c 100644
--- a/util/dbus.hpp
+++ b/util/dbus.hpp
@@ -141,6 +141,7 @@
     Rainier_1S4U,
     Rainier_1S2U,
     Everest,
+    Bonnell,
 };
 
 /**
diff --git a/util/pdbg.cpp b/util/pdbg.cpp
index 2734885..b499d83 100644
--- a/util/pdbg.cpp
+++ b/util/pdbg.cpp
@@ -261,6 +261,11 @@
             filePath = fs::path{PACKAGE_DIR
                                 "util-data/peer-targets-everest.json"};
             break;
+        // Bonnell
+        case util::dbus::MachineType::Bonnell:
+            filePath = fs::path{PACKAGE_DIR
+                                "util-data/peer-targets-bonnell.json"};
+            break;
         default:
             trace::err("Invalid machine type found %d",
                        static_cast<uint8_t>(machineType));