diff options
author | Rick Ward <rward15@us.ibm.com> | 2018-04-25 08:52:31 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-05-08 09:16:23 -0400 |
commit | 3c2b4bf2adc3e076d7dc9e2876b64b813a799260 (patch) | |
tree | dcd09c08b844f5576ae6b14670c81cd2a05d56ba | |
parent | 261c874fb2ddb5bd80b92be56d0bf38c02ad5876 (diff) | |
download | talos-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.H | 42 | ||||
-rw-r--r-- | src/include/usr/mbox/mbox_queues.H | 1 |
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, |