diff --git a/extensions/phal/phal_error.cpp b/extensions/phal/phal_error.cpp
index 9f08f5b..8d0d65e 100644
--- a/extensions/phal/phal_error.cpp
+++ b/extensions/phal/phal_error.cpp
@@ -9,7 +9,6 @@
 #include <attributes_info.H>
 #include <fmt/format.h>
 #include <libekb.H>
-#include <libipl.H>
 
 #include <nlohmann/json.hpp>
 #include <phosphor-logging/elog.hpp>
@@ -257,9 +256,26 @@
     return it->second;
 }
 
-void processBootErrorCallback(bool status)
+void processIplErrorCallback(const ipl_error_info& errInfo)
 {
-    log<level::INFO>("processBootCallback ", entry("STATUS=%d", status));
+    log<level::INFO>(
+        fmt::format("processIplErrorCallback: Error type(%x) \n", errInfo.type)
+            .c_str());
+
+    if (errInfo.type == IPL_NO_ERR)
+    {
+        // reset trace log and exit
+        reset();
+        return;
+    }
+    // TODO: Keeping the existing behaviour now
+    // Handle errors based on special reason codes once support is available
+    processBootError(false);
+}
+
+void processBootError(bool status)
+{
+    log<level::INFO>("processBootError ", entry("STATUS=%d", status));
     try
     {
         // return If no failure during hwp execution
@@ -520,7 +536,7 @@
     ipl_set_logfunc(detail::processLogTraceCallback, NULL);
 
     // add callback for ipl failures
-    ipl_set_error_callback_func(detail::processBootErrorCallback);
+    ipl_set_error_callback_func(detail::processIplErrorCallback);
 }
 
 } // namespace pel
diff --git a/extensions/phal/phal_error.hpp b/extensions/phal/phal_error.hpp
index b132b8f..746b733 100644
--- a/extensions/phal/phal_error.hpp
+++ b/extensions/phal/phal_error.hpp
@@ -1,6 +1,9 @@
 #pragma once
 
+#include <libipl.H>
+
 #include <cstdarg>
+
 namespace openpower
 {
 namespace pel
@@ -23,6 +26,16 @@
 void processLogTraceCallback(void* private_data, const char* fmt, va_list ap);
 
 /**
+ * @brief Process ipl failure/success status
+ *
+ * If status is success log traces are cleared else used in the
+ * creation of failure
+ *
+ * @param[in] errInfo - Error info structure
+ */
+void processIplErrorCallback(const ipl_error_info& errInfo);
+
+/**
  * @brief Process boot failure/success status
  *
  * If status is success log traces are cleared else used in the
@@ -30,12 +43,13 @@
  *
  * @param[in] status - Boot execution status
  */
-void processBootErrorCallback(bool status);
+void processBootError(bool status);
 
 /**
  * @brief Reset trace log list
  */
 void reset();
+
 } // namespace detail
 
 /**
