summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/isteps/istep13list.H5
-rw-r--r--src/include/usr/isteps/istep14list.H6
-rw-r--r--src/include/usr/isteps/istep21list.H5
-rw-r--r--src/include/usr/isteps/nvdimm/nvdimm.H20
-rw-r--r--src/include/usr/vpd/spdenums.H5
5 files changed, 30 insertions, 11 deletions
diff --git a/src/include/usr/isteps/istep13list.H b/src/include/usr/isteps/istep13list.H
index fd0430c6c..d4788913d 100644
--- a/src/include/usr/isteps/istep13list.H
+++ b/src/include/usr/isteps/istep13list.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* Contributors Listed Below - COPYRIGHT 2012,2019 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -296,6 +296,9 @@ const DepModInfo g_istep13Dependancies = {
DEP_LIB(libistep13.so),
DEP_LIB(libisteps_mss.so),
DEP_LIB(libcen.so),
+#ifdef CONFIG_NVDIMM
+ DEP_LIB(libnvdimm.so),
+#endif
NULL
}
};
diff --git a/src/include/usr/isteps/istep14list.H b/src/include/usr/isteps/istep14list.H
index 1a2058167..bf5b00453 100644
--- a/src/include/usr/isteps/istep14list.H
+++ b/src/include/usr/isteps/istep14list.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2018 */
+/* Contributors Listed Below - COPYRIGHT 2012,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -169,7 +169,11 @@ namespace INITSERVICE
{
ISTEPNAME(14,04,"mss_power_cleanup"),
ISTEP_14::call_mss_power_cleanup,
+#ifdef CONFIG_NVDIMM
+ { START_FN, EXT_IMAGE, MPIPL_OP | NORMAL_IPL_OP, true }
+#else
{ START_FN, EXT_IMAGE, NORMAL_IPL_OP, true }
+#endif
},
{
ISTEPNAME(14,05,"proc_setup_bars"),
diff --git a/src/include/usr/isteps/istep21list.H b/src/include/usr/isteps/istep21list.H
index 582ecf292..fabfc4be6 100644
--- a/src/include/usr/isteps/istep21list.H
+++ b/src/include/usr/isteps/istep21list.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2018 */
+/* Contributors Listed Below - COPYRIGHT 2012,2019 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -132,6 +132,9 @@ const DepModInfo g_istep21Dependancies = {
#ifndef CONFIG_FSP_BUILD
DEP_LIB(libnvram.so),
#endif
+#ifdef CONFIG_NVDIMM
+ DEP_LIB(libnvdimm.so),
+#endif
NULL
}
};
diff --git a/src/include/usr/isteps/nvdimm/nvdimm.H b/src/include/usr/isteps/nvdimm/nvdimm.H
index c1df3033e..6f6b46541 100644
--- a/src/include/usr/isteps/nvdimm/nvdimm.H
+++ b/src/include/usr/isteps/nvdimm/nvdimm.H
@@ -29,7 +29,7 @@
namespace NVDIMM
{
-enum
+enum nvdimm_err_status
{
NSTD_VAL_NOPRSV = 0x08, // memory valid, contents not preserved (genesis)
NSTD_VAL_NOPRSV_MASK = 0xF7,
@@ -41,6 +41,7 @@ enum
NSTD_ERR_NOBKUP_MASK = 0xFE,
NSTD_ERR = 0x03, // NSTD_ERR_NOPRSV+NSTD_ERR_NOBKUP
};
+
#ifndef __HOSTBOOT_RUNTIME
/**
* @brief Entry function to NVDIMM management
@@ -76,7 +77,6 @@ errlHndl_t nvdimmEraseNF(TARGETING::Target *i_nvdimm);
*/
void nvdimmSetStatusFlag(TARGETING::Target *i_nvdimm, const uint8_t i_status_flag);
-
#ifdef __HOSTBOOT_RUNTIME
/**
@@ -89,15 +89,16 @@ void nvdimmSetStatusFlag(TARGETING::Target *i_nvdimm, const uint8_t i_status_fla
bool nvdimmInErrorState(TARGETING::Target *i_nvdimm);
/**
- * @brief This function arms the trigger to enable backup in the event
- * of power loss (DDR Reset_n goes low)
+ * @brief This function arms/disarms the trigger based on i_state
*
* @param[in] i_nvdimm - nvdimm target with NV controller
*
+ * @param[in] i_state - true to arm, false to disarm
+ *
* @return errlHndl_t - Null if successful, otherwise a pointer to
* the error log.
*/
-errlHndl_t nvdimmArmResetN(TARGETING::Target *i_nvdimm);
+errlHndl_t nvdimmChangeArmState(TARGETING::Target *i_nvdimm, bool i_state);
/**
* @brief Arms the trigger to enable backup in the event of a power loss
@@ -113,7 +114,6 @@ errlHndl_t nvdimmArmResetN(TARGETING::Target *i_nvdimm);
*/
bool nvdimmArm(TARGETING::TargetHandleList &i_nvdimmTargetList);
-
/**
* @brief NVDIMM protection state
*
@@ -139,6 +139,14 @@ enum nvdimm_protection_t
errlHndl_t notifyNvdimmProtectionChange(TARGETING::Target* i_target,
const nvdimm_protection_t i_state);
#endif
+/**
+ * @brief Entry function to NVDIMM initialization
+ * - Checks for ready state
+ * - Waits for the ongoing backup to complete
+ * - Disarms the trigger for draminit
+ * @param i_target nvdimm target
+ */
+void nvdimm_init(TARGETING::Target *i_nvdimm);
}
diff --git a/src/include/usr/vpd/spdenums.H b/src/include/usr/vpd/spdenums.H
index 9decbe862..bd6418d5e 100644
--- a/src/include/usr/vpd/spdenums.H
+++ b/src/include/usr/vpd/spdenums.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2016 */
+/* Contributors Listed Below - COPYRIGHT 2013,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -142,7 +142,8 @@ enum
MODULE_REVISION_CODE_DDR4 = MODULE_REVISION_CODE,
DRAM_STEPPING = SPD_FIRST_NORM_KEYWORD | 0x57,
MANUFACTURING_SECTION_CRC = SPD_FIRST_NORM_KEYWORD | 0x58,
- SPD_LAST_NORM_KEYWORD = SPD_FIRST_NORM_KEYWORD | 0x58,
+ NVM_INIT_TIME = SPD_FIRST_NORM_KEYWORD | 0x59,
+ SPD_LAST_NORM_KEYWORD = SPD_FIRST_NORM_KEYWORD | 0x59,
// ==============================================================
// Module Specific Keywords (Available for both DDR3 and DDR4 DIMMs)
OpenPOWER on IntegriCloud