diff options
| author | whs <whs@us.ibm.com> | 2016-03-11 14:48:04 -0600 |
|---|---|---|
| committer | Stephen Cprek <smcprek@us.ibm.com> | 2016-04-21 13:51:55 -0500 |
| commit | aa6d2d071da787fc41f03fd14415864293b503f5 (patch) | |
| tree | bf74caf63bb958c8267f0af03bc57930c4c4892b /src/include | |
| parent | 44130d64dd56990139256d831eba991fac48c51f (diff) | |
| download | blackbird-hostboot-aa6d2d071da787fc41f03fd14415864293b503f5.tar.gz blackbird-hostboot-aa6d2d071da787fc41f03fd14415864293b503f5.zip | |
Create SBE FIFO device driver
Create SBE FIFO device driver and client code for get and put SCOM.
Change-Id: I5b478f4a9a05340a61f8102c21e618f24e85c7ac
RTC: 134179
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22174
Tested-by: Jenkins Server
Reviewed-by: Matt Derksen <v2cibmd@us.ibm.com>
Tested-by: FSP CI Jenkins
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/usr/devicefw/driverif.H | 7 | ||||
| -rw-r--r-- | src/include/usr/sbeio/sbeioif.H | 44 | ||||
| -rw-r--r-- | src/include/usr/sbeio/sbeioreasoncodes.H | 6 |
3 files changed, 55 insertions, 2 deletions
diff --git a/src/include/usr/devicefw/driverif.H b/src/include/usr/devicefw/driverif.H index a148725b5..064a11d28 100644 --- a/src/include/usr/devicefw/driverif.H +++ b/src/include/usr/devicefw/driverif.H @@ -55,6 +55,7 @@ namespace DeviceFW IBSCOM, HOSTI2C, FSI_I2C, + SBEFIFOSCOM, LAST_DRIVER_ACCESS_TYPE }; @@ -199,6 +200,12 @@ namespace DeviceFW #define DEVICE_FSI_I2C_ADDRESS_OFFSET( i_port, i_engine, i_devAddr, i_offset_len, i_offset)\ DeviceFW::FSI_I2C, DEVICE_I2C_PARMS(i_port, i_engine, i_devAddr, i_offset_len, i_offset) + /** Construct the device addressing parameters for the SBE FIFO Scom + * device ops. + * @param[in] i_address - scom address to operate on. + */ + #define DEVICE_SBEFIFOSCOM_ADDRESS(i_address) \ + DeviceFW::SBEFIFOSCOM, static_cast<uint64_t>((i_address)) /** @class InvalidParameterType * @brief Unused type to cause compiler fails for invalid template types. diff --git a/src/include/usr/sbeio/sbeioif.H b/src/include/usr/sbeio/sbeioif.H index 7b8a76d89..3c15c0875 100644 --- a/src/include/usr/sbeio/sbeioif.H +++ b/src/include/usr/sbeio/sbeioif.H @@ -29,7 +29,6 @@ namespace SBEIO { - /** * @brief Start Deadman loop * @@ -48,6 +47,49 @@ namespace SBEIO */ errlHndl_t stopDeadmanLoop( ); + /** + * @brief Get SCOM via SBE FIFO + * + * @param[in] i_target Target to access + * @param[in] i_addr Requested register address + * @param[out] o_data Returned data + * + * @return errlHndl_t Error log handle on failure. + * + */ + errlHndl_t getFifoScom(TARGETING::Target * i_target, + uint64_t i_addr, + uint64_t & o_data); + /** + * @brief Put SCOM via SBE FIFO + * + * @param[in] i_target Target to access + * @param[in] i_addr Requested register address + * @param[in] i_data Data to write + * + * @return errlHndl_t Error log handle on failure. + * + */ + errlHndl_t putFifoScom(TARGETING::Target * i_target, + uint64_t i_addr, + uint64_t i_data); + + /** + * @brief Put SCOM under mask via SBE FIFO + * + * @param[in] i_target Target to access + * @param[in] i_addr Requested register address + * @param[in] i_data Data to write + * @param[in] i_mask SCOM mask + * + * @return errlHndl_t Error log handle on failure. + * + */ + errlHndl_t putFifoScomUnderMask(TARGETING::Target * i_target, + uint64_t i_addr, + uint64_t i_data, + uint64_t i_mask); + } //end namespace SBEIO #endif /* _SBEIOIF_H */ diff --git a/src/include/usr/sbeio/sbeioreasoncodes.H b/src/include/usr/sbeio/sbeioreasoncodes.H index c40d51f35..dec1f6145 100644 --- a/src/include/usr/sbeio/sbeioreasoncodes.H +++ b/src/include/usr/sbeio/sbeioreasoncodes.H @@ -68,7 +68,11 @@ enum sbeioReasonCode SBEIO_FIFO_INVALID_STATUS_DISTANCE = SBEIO_COMP_ID | 0x12, SBEIO_FIFO_RESPONSE_ERROR = SBEIO_COMP_ID | 0x13, SBEIO_FIFO_DOWNSTREAM_TIMEOUT = SBEIO_COMP_ID | 0x14, - + SBEIO_FIFO_INVALID_LENGTH = SBEIO_COMP_ID | 0x15, + SBEIO_FIFO_INVALID_OPERATION = SBEIO_COMP_ID | 0x16, + SBEIO_FIFO_NULL_TARGET = SBEIO_COMP_ID | 0x17, + SBEIO_FIFO_MASTER_TARGET = SBEIO_COMP_ID | 0x18, + SBEIO_FIFO_SENTINEL_TARGET = SBEIO_COMP_ID | 0x19, }; }; // end SBE |

