PEL: peltool: show hostboot deconfig/guard flags
The deconfig and guard flags in the SRC section are also valid for
hostboot SRCs, so display them in peltool for hostboot PELs.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I3a36d61ced592e0718e016665587444b7e14f964
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()