diff --git a/extensions/openpower-pels/pel_values.cpp b/extensions/openpower-pels/pel_values.cpp
index b98aebf..17e1d50 100644
--- a/extensions/openpower-pels/pel_values.cpp
+++ b/extensions/openpower-pels/pel_values.cpp
@@ -217,7 +217,7 @@
  *        to their actual names.
  */
 const std::map<std::string, std::string> maintenanceProcedures = {
-    {"bmc_code", "BMCSP01"}};
+    {"bmc_code", "BMC0001"}};
 
 /**
  * @brief Map of the registry names for the symbolic FRUs to their
diff --git a/test/openpower-pels/fru_identity_test.cpp b/test/openpower-pels/fru_identity_test.cpp
index 4408b25..28a8e98 100644
--- a/test/openpower-pels/fru_identity_test.cpp
+++ b/test/openpower-pels/fru_identity_test.cpp
@@ -165,7 +165,7 @@
         EXPECT_EQ(fru.flattenedSize(), 12);
         EXPECT_EQ(fru.type(), 0x4944);
         EXPECT_EQ(fru.failingComponentType(), FRUIdentity::maintenanceProc);
-        EXPECT_EQ(fru.getMaintProc().value(), "BMCSP01");
+        EXPECT_EQ(fru.getMaintProc().value(), "BMC0001");
         EXPECT_FALSE(fru.getPN());
         EXPECT_FALSE(fru.getCCIN());
         EXPECT_FALSE(fru.getSN());
@@ -183,7 +183,7 @@
         EXPECT_EQ(newFRU.flattenedSize(), 12);
         EXPECT_EQ(newFRU.type(), 0x4944);
         EXPECT_EQ(newFRU.failingComponentType(), FRUIdentity::maintenanceProc);
-        EXPECT_EQ(newFRU.getMaintProc().value(), "BMCSP01");
+        EXPECT_EQ(newFRU.getMaintProc().value(), "BMC0001");
         EXPECT_FALSE(newFRU.getPN());
         EXPECT_FALSE(newFRU.getCCIN());
         EXPECT_FALSE(newFRU.getSN());
@@ -204,8 +204,8 @@
 
     {
         // Raw maintenance procedure
-        FRUIdentity fru{"BMCSPXXLONG", CalloutValueType::raw};
-        EXPECT_EQ(fru.getMaintProc().value(), "BMCSPXX");
+        FRUIdentity fru{"BMCXXXXLONG", CalloutValueType::raw};
+        EXPECT_EQ(fru.getMaintProc().value(), "BMCXXXX");
     }
 }
 
diff --git a/test/openpower-pels/pel_manager_test.cpp b/test/openpower-pels/pel_manager_test.cpp
index 32c765c..8221fab 100644
--- a/test/openpower-pels/pel_manager_test.cpp
+++ b/test/openpower-pels/pel_manager_test.cpp
@@ -304,7 +304,7 @@
               "00000000 00000000");
     // Check if resolution property creation is good
     EXPECT_EQ(manager.getResolution(pel),
-              "1. Priority: High, Procedure: BMCSP01\n2. Priority: Medium, PN: "
+              "1. Priority: High, Procedure: BMC0001\n2. Priority: Medium, PN: "
               "SVCDOCS\n");
 
     // Remove it
diff --git a/test/openpower-pels/src_callout_test.cpp b/test/openpower-pels/src_callout_test.cpp
index a5ca1ad..daa2ab6 100644
--- a/test/openpower-pels/src_callout_test.cpp
+++ b/test/openpower-pels/src_callout_test.cpp
@@ -324,7 +324,7 @@
     EXPECT_EQ(callout.locationCodeSize(), 0);
 
     auto& fru = callout.fruIdentity();
-    EXPECT_EQ(fru->getMaintProc().value(), "BMCSP01");
+    EXPECT_EQ(fru->getMaintProc().value(), "BMC0001");
 
     // flatten/unflatten
     std::vector<uint8_t> data;
@@ -348,10 +348,10 @@
 
     // Use raw procedure value
 
-    Callout rawCallout{CalloutPriority::medium, "BMCSPXX",
+    Callout rawCallout{CalloutPriority::medium, "BMCXXXX",
                        CalloutValueType::raw};
     auto& rawFRU = rawCallout.fruIdentity();
-    EXPECT_EQ(rawFRU->getMaintProc().value(), "BMCSPXX");
+    EXPECT_EQ(rawFRU->getMaintProc().value(), "BMCXXXX");
 }
 
 // Create a callout object by passing in the symbolic FRU to add.
diff --git a/test/openpower-pels/src_test.cpp b/test/openpower-pels/src_test.cpp
index 713eed5..af8d04e 100644
--- a/test/openpower-pels/src_test.cpp
+++ b/test/openpower-pels/src_test.cpp
@@ -567,7 +567,7 @@
         EXPECT_FALSE(fru1->getCCIN());
 
         auto& fru2 = callouts[1]->fruIdentity();
-        EXPECT_EQ(fru2->getMaintProc().value(), "BMCSP01");
+        EXPECT_EQ(fru2->getMaintProc().value(), "BMC0001");
         EXPECT_EQ(fru2->failingComponentType(),
                   src::FRUIdentity::maintenanceProc);
         EXPECT_FALSE(fru2->getPN());
