summaryrefslogtreecommitdiffstats
path: root/src/include/usr/targeting
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2019-01-15 10:48:31 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-01-24 13:12:08 -0600
commitcb35695328fbc1cb6764f048a8dbb3e81faba1e9 (patch)
treeea9cce42514a9f000c687545ab5f417842df04af /src/include/usr/targeting
parent9de9d8f7c5b5c73247dc69925a594fcd07ce060c (diff)
downloadtalos-hostboot-cb35695328fbc1cb6764f048a8dbb3e81faba1e9.tar.gz
talos-hostboot-cb35695328fbc1cb6764f048a8dbb3e81faba1e9.zip
Inform PHYP of NVDIMM protection by OCC
The OCC is responsible for detecting the EPOW signal and triggering the save operation on the NVDIMM. Therefore, if the OCC is not running we are unprotected from a poweroff event. PHYP needs to inform the LPARs using the NV (non-volatile) memory of this state so they can behave accordingly. HBRT is responsible for telling PHYP when we get into this state. There are two ways we can detect this state: a) HBRT explicitly puts the PM complex into reset b) PRD detects a specific FIR bit The message should include this data: - what state we are in (protected or unprotected) - which processor is affected Work for this story will include: - Definition of the new message - Creating a utility function to send the message - Calling utility function to send 'unprotected' message inside of all pm reset paths at runtime Change-Id: Ib015d001d47883a247faedabedb0705ba0f1b215 RTC:201181 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68870 Reviewed-by: Christian R. Geddes <crgeddes@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: TSUNG K. YEUNG <tyeung@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/targeting')
-rw-r--r--src/include/usr/targeting/common/util.H16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/include/usr/targeting/common/util.H b/src/include/usr/targeting/common/util.H
index 971408d16..e26e0c795 100644
--- a/src/include/usr/targeting/common/util.H
+++ b/src/include/usr/targeting/common/util.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2018 */
+/* Contributors Listed Below - COPYRIGHT 2012,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -38,6 +38,8 @@ namespace TARGETING
{
class Target;
+typedef Target* TargetHandle_t;
+typedef std::vector<TargetHandle_t> TargetHandleList;
/**
* @brief Macro which indicates whether to translate addresses or not
@@ -172,6 +174,7 @@ bool orderByNodeAndPosition( Target* i_firstProc,
*/
uint8_t is_fused_mode( );
+
/**
* @brief Determine if the given dimm target is an NVDIMM
*
@@ -181,6 +184,15 @@ uint8_t is_fused_mode( );
*/
bool isNVDIMM( TARGETING::Target * i_target );
-}
+/**
+ * @brief Grab list of NVDIMMs under the processor
+ *
+ * @param[in] i_proc : processor under which to search for NVDIMMs
+ *
+ * @return List of DIMM targets that are NVDIMMs
+ */
+TARGETING::TargetHandleList getProcNVDIMMs( TARGETING::Target * i_proc );
+
+} // TARGETING
#endif // __TARGETING_COMMON_UTIL_H
OpenPOWER on IntegriCloud