diff --git a/extensions/openpower-pels/registry.cpp b/extensions/openpower-pels/registry.cpp
index aeba998..a96f661 100644
--- a/extensions/openpower-pels/registry.cpp
+++ b/extensions/openpower-pels/registry.cpp
@@ -195,6 +195,11 @@
     return src["DeconfigFlag"].get<bool>();
 }
 
+bool getSRCCheckstopFlag(const nlohmann::json& src)
+{
+    return src["CheckstopFlag"].get<bool>();
+}
+
 std::optional<std::map<SRC::WordNum, SRC::AdditionalDataField>>
     getSRCHexwordFields(const nlohmann::json& src, const std::string& name)
 {
@@ -745,6 +750,11 @@
                 entry.src.deconfigFlag = helper::getSRCDeconfigFlag(src);
             }
 
+            if (src.contains("CheckstopFlag"))
+            {
+                entry.src.checkstopFlag = helper::getSRCCheckstopFlag(src);
+            }
+
             auto& doc = (*e)["Documentation"];
             entry.doc.message = doc["Message"];
             entry.doc.description = doc["Description"];
diff --git a/extensions/openpower-pels/registry.hpp b/extensions/openpower-pels/registry.hpp
index e72fafb..cd39b3f 100644
--- a/extensions/openpower-pels/registry.hpp
+++ b/extensions/openpower-pels/registry.hpp
@@ -110,7 +110,12 @@
      */
     bool deconfigFlag;
 
-    SRC() : type(0), reasonCode(0), deconfigFlag(false) {}
+    /**
+     * @brief If the checkstop flag should be set in hex word 5
+     */
+    bool checkstopFlag;
+
+    SRC() : type(0), reasonCode(0), deconfigFlag(false), checkstopFlag(false) {}
 };
 
 struct AppCapture
diff --git a/extensions/openpower-pels/registry/README.md b/extensions/openpower-pels/registry/README.md
index f914bfc..05a35e9 100644
--- a/extensions/openpower-pels/registry/README.md
+++ b/extensions/openpower-pels/registry/README.md
@@ -253,6 +253,15 @@
 "DeconfigFlag": true
 ```
 
+### SRC Checkstop Flag
+
+This is used to indicate the PEL is for a hardware checkstop, and causes bit 0
+in hex word 5 of the SRC to be set.
+
+```json
+"CheckstopFlag": true
+```
+
 ### Documentation Fields
 
 The documentation fields are used by PEL parsers to display a human readable
diff --git a/extensions/openpower-pels/registry/message_registry.json b/extensions/openpower-pels/registry/message_registry.json
index c2b3e91..6c2e807 100644
--- a/extensions/openpower-pels/registry/message_registry.json
+++ b/extensions/openpower-pels/registry/message_registry.json
@@ -1677,6 +1677,7 @@
             "SRC": {
                 "ReasonCode": "0xE510",
                 "SymptomIDFields": ["SRCWord6", "SRCWord7", "SRCWord8"],
+                "CheckstopFlag": true,
                 "Words6To9": {
                     "6": {
                         "AdditionalDataPropSource": "SRC6"
diff --git a/extensions/openpower-pels/registry/schema/schema.json b/extensions/openpower-pels/registry/schema/schema.json
index 11885e5..4c548e5 100644
--- a/extensions/openpower-pels/registry/schema/schema.json
+++ b/extensions/openpower-pels/registry/schema/schema.json
@@ -102,7 +102,9 @@
 
                 "Words6To9": { "$ref": "#/definitions/srcWords6To9" },
 
-                "DeconfigFlag": { "$ref": "#/definitions/deconfigFlag" }
+                "DeconfigFlag": { "$ref": "#/definitions/deconfigFlag" },
+
+                "CheckstopFlag": { "$ref": "#/definitions/checkstopFlag" }
             },
 
             "required": ["ReasonCode", "Words6To9"],
@@ -139,6 +141,11 @@
             "type": "boolean"
         },
 
+        "checkstopFlag": {
+            "description": "Indicates the SRC is for a hardware checkstop.",
+            "type": "boolean"
+        },
+
         "docNotes": {
             "description": "Any notes/comments about the error. An array of strings for manual line wrapping. Optional.",
             "type": "array",
diff --git a/extensions/openpower-pels/src.cpp b/extensions/openpower-pels/src.cpp
index d78c07a..00ea0b8 100644
--- a/extensions/openpower-pels/src.cpp
+++ b/extensions/openpower-pels/src.cpp
@@ -350,6 +350,11 @@
     setBMCPosition();
     setMotherboardCCIN(dataIface);
 
+    if (regEntry.src.checkstopFlag)
+    {
+        setErrorStatusFlag(ErrorStatusFlags::hwCheckstop);
+    }
+
     if (regEntry.src.deconfigFlag)
     {
         setErrorStatusFlag(ErrorStatusFlags::deconfigured);
diff --git a/extensions/openpower-pels/src.hpp b/extensions/openpower-pels/src.hpp
index bc73fa2..a09f286 100644
--- a/extensions/openpower-pels/src.hpp
+++ b/extensions/openpower-pels/src.hpp
@@ -62,8 +62,9 @@
      * @brief Enums for the error status bits in hex word 5
      *        of BMC SRCs.
      */
-    enum class ErrorStatusFlags
+    enum class ErrorStatusFlags : uint32_t
     {
+        hwCheckstop = 0x80000000,
         terminateFwErr = 0x20000000,
         deconfigured = 0x02000000,
         guarded = 0x01000000
