summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2017-03-21 12:00:20 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-04-18 14:12:17 -0400
commite9397549d8d9e2b2cd8a2e1d4af6dfa81c0b9ec2 (patch)
tree62c9313872fba730b7551d2b674322c605b407f1 /src/include/usr
parenta72dc7911307c54fbbdf3ae6717d5991dc4a4438 (diff)
downloadblackbird-hostboot-e9397549d8d9e2b2cd8a2e1d4af6dfa81c0b9ec2.tar.gz
blackbird-hostboot-e9397549d8d9e2b2cd8a2e1d4af6dfa81c0b9ec2.zip
SBE message passing - Set FFDC Address command and set HDAT RHB entry
Create space for SBE Communications buffer in HB reserved memory and send Set FFDC Address PSU command to SBE. Change-Id: Ibccdf087d0416edaf6e1e2c5993a10adcddf67fd RTC: 170758 Depends-on: Id14471b1e6f036c278fd5ae1950b942290282c1e Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38251 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/sbeio/sbe_psudd.H43
-rw-r--r--src/include/usr/sbeio/sbeioif.H20
2 files changed, 63 insertions, 0 deletions
diff --git a/src/include/usr/sbeio/sbe_psudd.H b/src/include/usr/sbeio/sbe_psudd.H
index 2ad545f5f..96ff5ece3 100644
--- a/src/include/usr/sbeio/sbe_psudd.H
+++ b/src/include/usr/sbeio/sbe_psudd.H
@@ -99,6 +99,7 @@ class SbePsu
//BYTE 7 options
enum psuGenericMessageCommands
{
+ SBE_PSU_SET_FFDC_ADDRESS = 0x04,
SBE_PSU_GENERIC_MSG_QUIESCE = 0x05,
SBE_CMD_CONTROL_SYSTEM_CONFIG = 0x06
};
@@ -185,6 +186,25 @@ class SbePsu
};
/**
+ * @brief non reserved word enums
+ *
+ * Shows which of the request and response msg registers are
+ * not reserved. Reserved registers do not need to be written
+ * or read.
+ *
+ * This is a 4 bit field:
+ * 0x1 - Reg 0 is non-reserved (read or write this reg)
+ * 0x2 - Reg 1 is non-reserved (read or write this reg)
+ * 0x4 - Reg 2 is non-reserved (read or write this reg)
+ * 0x8 - Reg 3 is non-reserved (read or write this reg)
+ */
+ enum psuSetFFDCAddrNonReservedMsgs
+ {
+ SBE_SET_FFDC_ADDR_REQ_USED_REGS = 0x0F,
+ SBE_SET_FFDC_ADDR_RSP_USED_REGS = 0x01,
+ };
+
+ /**
* @brief Struct for PSU command message format
*
*/
@@ -284,6 +304,19 @@ class SbePsu
uint64_t cd4_PsuQuiesce_MbxReg3reserved;
} PACKED;
+ struct //setFFDCAddress
+ {
+ uint16_t cd7_setFFDCAddr_Reserved;
+ uint16_t cd7_setFFDCAddr_ControlFlags;
+ uint16_t cd7_setFFDCAddr_SeqID;
+ uint8_t cd7_setFFDCAddr_CommandClass;
+ uint8_t cd7_setFFDCAddr_Command;
+ uint32_t cd7_setFFDCAddr_FFDCSize; // mbxReg1 / dataWord2
+ uint32_t cd7_setFFDCAddr_CommSize; // mbxReg1 / dataWord3
+ uint64_t cd7_setFFDCAddr_FFDCAddr; // mbxReg2
+ uint64_t cd7_setFFDCAddr_CommAddr; // mbxReg3
+ } PACKED;
+
psuCommand(uint16_t i_controlFlags, //Mbx Reg 0 input
uint8_t i_commandClass, //Mbx Reg 0 input
@@ -440,6 +473,16 @@ class SbePsu
};
/**
+ * @brief get SBE FFDC buffer size
+ *
+ * @return const size_t Size of SBE FFDC buffer.
+ */
+ const size_t getSbeFFDCBufferSize(void)
+ {
+ return (ffdcPackageSize * PAGESIZE);
+ }
+
+ /**
* @brief perform SBE PSU chip-op
*
* @param[in] i_target Proc target to use for PSU Request
diff --git a/src/include/usr/sbeio/sbeioif.H b/src/include/usr/sbeio/sbeioif.H
index 616c5a4d4..15f310261 100644
--- a/src/include/usr/sbeio/sbeioif.H
+++ b/src/include/usr/sbeio/sbeioif.H
@@ -144,6 +144,26 @@ namespace SBEIO
*/
errlHndl_t sendFifoReset(TARGETING::Target * i_target);
+ /**
+ * @brief Set the FFDC address for the SBE so it is aware of the FFDC buffer
+ * and its size and it is aware of the SBE Communication buffer and
+ * its size
+ *
+ * @param[in] i_sbeffdcSize uint32 Size of SBE FFDC buffer
+ * @param[in] i_sbeCommSize uint32 Size of SBE Communication buffer
+ * @param[in] i_sbeffdcAddr uint64 Physical mainstore address of FFDC buffer
+ * @param[in] i_sbeCommAddr uint64 Physical mainstore address of Comm buffer
+ * @param[in] i_procChip The proc to which you would like to send the info
+ *
+ * @return errlHndl_t Error log handle on failure.
+ *
+ */
+ errlHndl_t sendSetFFDCAddr(const uint32_t i_sbeffdcSize,
+ const uint32_t i_sbeCommSize,
+ const uint64_t i_sbeffdcAddr,
+ const uint64_t i_sbeCommAddr,
+ TARGETING::Target * i_procChip);
+
} //end namespace SBEIO
#endif /* _SBEIOIF_H */
OpenPOWER on IntegriCloud