summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Ward <rward15@us.ibm.com>2018-04-25 08:52:31 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-05-08 09:16:23 -0400
commit3c2b4bf2adc3e076d7dc9e2876b64b813a799260 (patch)
treedcd09c08b844f5576ae6b14670c81cd2a05d56ba
parent261c874fb2ddb5bd80b92be56d0bf38c02ad5876 (diff)
downloadtalos-hostboot-3c2b4bf2adc3e076d7dc9e2876b64b813a799260.tar.gz
talos-hostboot-3c2b4bf2adc3e076d7dc9e2876b64b813a799260.zip
RTC189294 - Centaur Channel Checkstop (Runtime)
I think this is all that's required to define the SCOM interface to FSP. I used a single structure for request/response because I want to use the generic FSP messaging code, and it assumes that the request and response structs are the same (at least in size). Change-Id: I45d3678db1e265cc1ba5108ea6ffbbe9a15bc307 RTC:189294 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57807 Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Alpana Kumari <alpankum@in.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/include/runtime/generic_hbrt_fsp_message.H42
-rw-r--r--src/include/usr/mbox/mbox_queues.H1
2 files changed, 43 insertions, 0 deletions
diff --git a/src/include/runtime/generic_hbrt_fsp_message.H b/src/include/runtime/generic_hbrt_fsp_message.H
index 01c972880..6daff3cc2 100644
--- a/src/include/runtime/generic_hbrt_fsp_message.H
+++ b/src/include/runtime/generic_hbrt_fsp_message.H
@@ -36,6 +36,9 @@
* FSP/HWSV team to send and receive data.
*/
+// Sentinel value for bad SCOM reads
+#define DEADBEEF 0xDEADBEEF
+
/**
* This generates a sequence ID that the GenericFspMboxMessage_t
* consumes.
@@ -64,6 +67,43 @@ struct TargetDeconfigHbrtFspData_t
/**
+ * This struct contains the message-specific data for
+ * MSG_SINGLE_SCOM_OP calls to the FSP.
+ * It shows the format of GenericFspMboxMessage_t.data.
+ */
+struct SingleScomOpHbrtFspData_t
+{
+ uint8_t scom_op; // 0 == read, 1 == write
+ uint32_t huid; // hardware target
+ uint64_t scom_addr;
+ uint64_t scom_data; // SCOM value read by FSP, or
+ // SCOM value to be written by FSP
+} PACKED;
+
+
+/**
+ * This struct contains the message-specific data for
+ * MSG_MULTI_SCOM_OP calls to the FSP.
+ * It shows the format of GenericFspMboxMessage_t.data.
+ */
+struct MultiScomReadHbrtFspData_t
+{
+ uint32_t huid; // hardware target
+ uint8_t scom_num; // number of SCOMs to read
+ uint64_t scom_data; // addresses of SCOMs to read, or
+ // values of SCOMs in FSP response
+ // ** if a SCOM cannot be read, its value **
+ // ** should be returned as DEADBEEF **
+ //
+ // placeholder that can be cast to an array
+ // of values (or addresses)
+ // uint64_t* mydata =
+ // (uint64_t*)&(l_generic_msg.data);
+ // more than 8 bytes of data is possible
+} PACKED;
+
+
+/**
* A useful struct to access the PLID from GenericFspMboxMessage_t.data
* in the case where the FSP is requesting Hostboot to restart a SBE
*/
@@ -147,6 +187,8 @@ struct GenericFspMboxMessage_t
MSG_TOD_BACKUP_RESET_INFORM_PHYP = 0x0002,
MSG_TOD_TOPOLOGY_DATA = 0x0003,
MSG_DECONFIG_TARGET = 0x0004,
+ MSG_SINGLE_SCOM_OP = 0x0005,
+ MSG_MULTI_SCOM_OP = 0x0006,
MSG_ATTR_SYNC_REQUEST = 0x000000A5,
MSG_SBE_ERROR = 0x000000D4,
MSG_SBE_RECOVERY_SUCCESS = 0x000000D5,
diff --git a/src/include/usr/mbox/mbox_queues.H b/src/include/usr/mbox/mbox_queues.H
index df153092c..882aad2b4 100644
--- a/src/include/usr/mbox/mbox_queues.H
+++ b/src/include/usr/mbox/mbox_queues.H
@@ -79,6 +79,7 @@ namespace MBOX
FSP_TOD_MSGQ = 0x8000000E,
FSP_SBE_SYNC_MSGQ_ID = 0x8000000F,
FSP_TARG_DECONFIG_MSGQ = 0x80000010,
+ FSP_SCOM_OPS_MSGQ = 0x80000011,
FSP_LID_MSGQ = FSP_ATTR_SYNC_MSGQ,
OpenPOWER on IntegriCloud