PEL: Support for CheckstopFlag msg reg field
Similiar to the DeconfigFlag field that was recently added, this one
indicates the PEL is for a hardware checkstop and results in a bit in
SRC hex word 5 being set.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ib05de7471ad3e32f48e7f20a5c611abc119fe82a
diff --git a/test/openpower-pels/registry_test.cpp b/test/openpower-pels/registry_test.cpp
index b33c07e..2f715bb 100644
--- a/test/openpower-pels/registry_test.cpp
+++ b/test/openpower-pels/registry_test.cpp
@@ -86,7 +86,8 @@
"AdditionalDataPropSource": "VOLTAGE"
}
},
- "DeconfigFlag": true
+ "DeconfigFlag": true,
+ "CheckstopFlag": true
},
"Documentation":
@@ -224,6 +225,7 @@
EXPECT_EQ(entry->src.type, 0xBD);
EXPECT_EQ(entry->src.reasonCode, 0x2333);
EXPECT_TRUE(entry->src.deconfigFlag);
+ EXPECT_TRUE(entry->src.checkstopFlag);
auto& hexwords = entry->src.hexwordADFields;
EXPECT_TRUE(hexwords);
@@ -285,6 +287,7 @@
EXPECT_FALSE(entry->src.hexwordADFields);
EXPECT_FALSE(entry->src.symptomID);
EXPECT_FALSE(entry->src.deconfigFlag);
+ EXPECT_FALSE(entry->src.checkstopFlag);
}
TEST_F(RegistryTest, TestBadJSON)
diff --git a/test/openpower-pels/src_test.cpp b/test/openpower-pels/src_test.cpp
index bb1ba7c..d5d3b16 100644
--- a/test/openpower-pels/src_test.cpp
+++ b/test/openpower-pels/src_test.cpp
@@ -463,6 +463,7 @@
entry.src.type = 0xBD;
entry.src.reasonCode = 0xABCD;
entry.src.deconfigFlag = true;
+ entry.src.checkstopFlag = true;
entry.subsystem = 0x42;
entry.callouts = R"(
@@ -522,8 +523,13 @@
SRC src{entry, ad, dataIface};
+ EXPECT_TRUE(
+ src.getErrorStatusFlag(SRC::ErrorStatusFlags::deconfigured));
+ EXPECT_TRUE(src.getErrorStatusFlag(SRC::ErrorStatusFlags::hwCheckstop));
+
const auto& hexwords = src.hexwordData();
- auto mask = static_cast<uint32_t>(SRC::ErrorStatusFlags::deconfigured);
+ auto mask = static_cast<uint32_t>(SRC::ErrorStatusFlags::deconfigured) |
+ static_cast<uint32_t>(SRC::ErrorStatusFlags::hwCheckstop);
EXPECT_EQ(hexwords[5 - 2] & mask, mask);
auto& callouts = src.callouts()->callouts();