summaryrefslogtreecommitdiffstats
path: root/sbe/sbefw/sbeSpMsg.H
diff options
context:
space:
mode:
Diffstat (limited to 'sbe/sbefw/sbeSpMsg.H')
-rw-r--r--sbe/sbefw/sbeSpMsg.H47
1 files changed, 46 insertions, 1 deletions
diff --git a/sbe/sbefw/sbeSpMsg.H b/sbe/sbefw/sbeSpMsg.H
index 7d8e3fb1..df2730cb 100644
--- a/sbe/sbefw/sbeSpMsg.H
+++ b/sbe/sbefw/sbeSpMsg.H
@@ -144,7 +144,7 @@ typedef struct sbeResponseFfdc
*
* @return fapiRc
*/
- uint32_t getRc()
+ uint32_t getRc() const
{
return lowFapiRc;
}
@@ -475,5 +475,50 @@ typedef struct
}
}
}sbeCntlInstRegMsgHdr_t;
+/**
+ * @brief Reg access message header
+ */
+typedef struct
+{
+ uint32_t reserved:8;
+ uint32_t coreChiplet:8;
+ uint32_t threadNr:4;
+ uint32_t regType:4;
+ uint32_t numRegs:8;
+
+ /**
+ * @brief checks if it is valid request.
+ *
+ * @return true if valid request, false otherwise
+ */
+ bool isValidRequest() const
+ {
+ return (( SBE_REG_ACCESS_FPR >= regType )
+ &&( SBE_MAX_REG_ACCESS_REGS >= numRegs )
+ &&( SMT4_THREAD3 >= threadNr )
+ &&( SMT4_CORE0_ID <= coreChiplet )
+ &&( SMT4_CORE_ID_MAX >= coreChiplet )) ? true:false;
+ }
+}sbeRegAccessMsgHdr_t;
+
+/**
+ * @brief reg scom package
+ */
+typedef struct
+{
+ uint32_t regNr;
+ uint32_t hiData;
+ uint32_t lowData;
+
+ /**
+ * @brief data for a register.
+ *
+ * @return data.
+ */
+ uint64_t getData() const
+ {
+ return (((uint64_t)hiData << 32 ) | lowData );
+ }
+}sbeRegAccessPackage_t;
#endif // __SBEFW_SBESP_MSG_H
OpenPOWER on IntegriCloud