PEL: Add support for raw symbolic FRUs and procs

Allow the FRUIdentity and Callout objects to take the raw maintenance
procedure and symbolic FRU names as opposed to just the PEL message
registry names.  This will allow the values to come from sources
besides the registry, such as the device tree used by PHAL.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I4171fb7128ae1b1b5e3e635f7f95b7f7df7c6638
diff --git a/test/openpower-pels/src_callout_test.cpp b/test/openpower-pels/src_callout_test.cpp
index 74c396c..fa93111 100644
--- a/test/openpower-pels/src_callout_test.cpp
+++ b/test/openpower-pels/src_callout_test.cpp
@@ -317,6 +317,13 @@
 
     auto& newFRU = newCallout.fruIdentity();
     EXPECT_EQ(newFRU->getMaintProc().value(), fru->getMaintProc().value());
+
+    // Use raw procedure value
+
+    Callout rawCallout{CalloutPriority::medium, "BMCSPXX",
+                       CalloutValueType::raw};
+    auto& rawFRU = rawCallout.fruIdentity();
+    EXPECT_EQ(rawFRU->getMaintProc().value(), "BMCSPXX");
 }
 
 // Create a callout object by passing in the symbolic FRU to add.
@@ -384,4 +391,16 @@
                   FRUIdentity::symbolicFRUTrustedLocCode);
         EXPECT_EQ(fru->getPN().value(), "SVCDOCS");
     }
+
+    // symbolic FRU with raw FRU value
+    {
+        {
+            Callout callout{CalloutPriority::high, "SYMBFRU",
+                            CalloutValueType::raw, "", false};
+
+            auto& fru = callout.fruIdentity();
+
+            EXPECT_EQ(fru->getPN().value(), "SYMBFRU");
+        }
+    }
 }