diff --git a/extensions/openpower-pels/pel_types.hpp b/extensions/openpower-pels/pel_types.hpp
index 1706c98..99ed1cb 100644
--- a/extensions/openpower-pels/pel_types.hpp
+++ b/extensions/openpower-pels/pel_types.hpp
@@ -44,7 +44,8 @@
 enum class SRCType
 {
     bmcError = 0xBD,
-    powerError = 0x11
+    powerError = 0x11,
+    hostbootError = 0xBC
 };
 
 /**
diff --git a/extensions/openpower-pels/src.cpp b/extensions/openpower-pels/src.cpp
index 338c323..d78c07a 100644
--- a/extensions/openpower-pels/src.cpp
+++ b/extensions/openpower-pels/src.cpp
@@ -484,6 +484,17 @@
     return false;
 }
 
+bool SRC::isHostbootSRC() const
+{
+    auto as = asciiString();
+    if (as.length() >= 2)
+    {
+        uint8_t errorType = strtoul(as.substr(0, 2).c_str(), nullptr, 16);
+        return errorType == static_cast<uint8_t>(SRCType::hostbootError);
+    }
+    return false;
+}
+
 std::optional<std::string> SRC::getErrorDetails(message::Registry& registry,
                                                 DetailLevel type,
                                                 bool toCache) const
@@ -741,6 +752,10 @@
                        _hexData[3] &
                        static_cast<uint32_t>(ErrorStatusFlags::terminateFwErr)),
                    1);
+    }
+
+    if (isBMCSRC() || isHostbootSRC())
+    {
         jsonInsert(ps, "Deconfigured",
                    pv::boolString.at(
                        _hexData[3] &
diff --git a/extensions/openpower-pels/src.hpp b/extensions/openpower-pels/src.hpp
index f3ce5cc..e12cab3 100644
--- a/extensions/openpower-pels/src.hpp
+++ b/extensions/openpower-pels/src.hpp
@@ -283,6 +283,13 @@
     bool isBMCSRC() const;
 
     /**
+     * @brief Says if this SRC was created by Hostboot
+     *
+     * @return bool - If created by Hostboot or not
+     */
+    bool isHostbootSRC() const;
+
+    /**
      * @brief Set the terminate bit in hex data word 3.
      */
     void setTerminateBit()
