diff --git a/procedures/phal/reinit_devtree.cpp b/procedures/phal/reinit_devtree.cpp
index 60e6e49..c5ae058 100644
--- a/procedures/phal/reinit_devtree.cpp
+++ b/procedures/phal/reinit_devtree.cpp
@@ -107,6 +107,8 @@
 void reinitDevtree()
 {
     using json = nlohmann::json;
+    using Severity =
+        sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level;
 
     log<level::INFO>("reinitDevtree: started");
 
@@ -213,7 +215,8 @@
         jsonCalloutData["Priority"] = "M";
         jsonCalloutDataList.emplace_back(jsonCalloutData);
         openpower::pel::createErrorPEL(
-            "org.open_power.PHAL.Error.devtreeReinit", jsonCalloutDataList);
+            "org.open_power.PHAL.Error.devtreeReinit", jsonCalloutDataList, {},
+            Severity::Error);
     }
 
     // Step 4: Update devtree r/w file
@@ -252,7 +255,8 @@
         jsonCalloutData["Priority"] = "H";
         jsonCalloutDataList.emplace_back(jsonCalloutData);
         openpower::pel::createErrorPEL(
-            "org.open_power.PHAL.Error.devtreeReinit", jsonCalloutDataList);
+            "org.open_power.PHAL.Error.devtreeReinit", jsonCalloutDataList, {},
+            Severity::Error);
         throw;
     }
 }
diff --git a/procedures/phal/start_host.cpp b/procedures/phal/start_host.cpp
index 01cada9..fc30ecc 100644
--- a/procedures/phal/start_host.cpp
+++ b/procedures/phal/start_host.cpp
@@ -188,6 +188,8 @@
     try
     {
         using json = nlohmann::json;
+        using Severity =
+            sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level;
 
         json jsonCalloutDataList;
         jsonCalloutDataList = json::array();
@@ -197,7 +199,8 @@
         jsonCalloutDataList.emplace_back(jsonCalloutData);
 
         openpower::pel::createErrorPEL("org.open_power.PHAL.Error.Boot",
-                                       jsonCalloutDataList, additionalData);
+                                       jsonCalloutDataList, additionalData,
+                                       Severity::Error);
     }
     catch (const std::exception& e)
     {
diff --git a/procedures/phal/thread_stopall.cpp b/procedures/phal/thread_stopall.cpp
index 983a7ca..8c77690 100644
--- a/procedures/phal/thread_stopall.cpp
+++ b/procedures/phal/thread_stopall.cpp
@@ -137,7 +137,7 @@
         jsonCalloutDataList.emplace_back(jsonCalloutData);
         openpower::pel::createErrorPEL(
             "org.open_power.Processor.Error.SbeChipOpFailure",
-            jsonCalloutDataList, pelAdditionalData);
+            jsonCalloutDataList, pelAdditionalData, Severity::Informational);
         return;
     }
 }
