summaryrefslogtreecommitdiffstats
path: root/src/occ_gpe0/firdata/sbe_fifo.h
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2017-11-03 15:52:10 -0500
committerMartha Broyles <mbroyles@us.ibm.com>2017-11-08 16:30:51 -0500
commita5b5103756c8428077258306a9be85205c836a94 (patch)
tree8739ae122497f23bdd0b86654e12056ac2924a03 /src/occ_gpe0/firdata/sbe_fifo.h
parent178a035668bdfab5face1dc682d260ba9318ecae (diff)
downloadtalos-occ-a5b5103756c8428077258306a9be85205c836a94.tar.gz
talos-occ-a5b5103756c8428077258306a9be85205c836a94.zip
FIRDATA: fix error handling for SCOMs via SBE FIFO
Change-Id: I31f13780de325ecc66b733b0571c9801b615d851 CQ: SW406544 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49072 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/occ_gpe0/firdata/sbe_fifo.h')
-rw-r--r--src/occ_gpe0/firdata/sbe_fifo.h45
1 files changed, 17 insertions, 28 deletions
diff --git a/src/occ_gpe0/firdata/sbe_fifo.h b/src/occ_gpe0/firdata/sbe_fifo.h
index 193039a..83d293a 100644
--- a/src/occ_gpe0/firdata/sbe_fifo.h
+++ b/src/occ_gpe0/firdata/sbe_fifo.h
@@ -54,55 +54,44 @@
#define SBE_PRI_OPERATION_SUCCESSFUL 0x00
#define SBE_SEC_OPERATION_SUCCESSFUL 0x00
-struct statusHeader
+typedef union
+{
+ struct
+ {
+ uint8_t class;
+ uint8_t type;
+ } PACKED s;
+
+ uint16_t u;
+
+} FifoCmd_t;
+
+typedef struct
{
uint16_t magic; //set to 0xC0DE
- uint8_t commandClass;
- uint8_t command;
+ FifoCmd_t command;
uint16_t primaryStatus;
uint16_t secondaryStatus;
-} PACKED;
-struct ffdc_struct
-{
- const void* ptr;
- uint32_t size;
-};
+} PACKED FifoRespStatus_t;
struct fifoPutScomRequest
{
uint32_t wordCnt;
uint16_t reserved;
- uint8_t commandClass;
- uint8_t command;
+ FifoCmd_t command;
uint64_t address;
uint64_t data;
} PACKED;
-struct fifoPutScomResponse
-{
- struct statusHeader status;
- struct ffdc_struct ffdc; //ffdc data
- uint32_t status_distance; //distance to status
-} PACKED;
-
struct fifoGetScomRequest
{
uint32_t wordCnt;
uint16_t reserved;
- uint8_t commandClass;
- uint8_t command;
+ FifoCmd_t command;
uint64_t address;
} PACKED;
-struct fifoGetScomResponse
-{
- uint64_t data; //Data (0..31) + (32..63)
- struct statusHeader status;
- struct ffdc_struct ffdc; //ffdc data
- uint32_t status_distance; // distance to status
-} PACKED;
-
/** @brief Performs a write SCOM operation using SBE FIFO
* @param i_target The SCOM target.
* @param i_addr 64-bit SCOM address.
OpenPOWER on IntegriCloud