diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-11-03 15:52:10 -0500 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2017-11-08 16:30:51 -0500 |
commit | a5b5103756c8428077258306a9be85205c836a94 (patch) | |
tree | 8739ae122497f23bdd0b86654e12056ac2924a03 /src/occ_gpe0/firdata/sbe_fifo.h | |
parent | 178a035668bdfab5face1dc682d260ba9318ecae (diff) | |
download | talos-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.h | 45 |
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. |